diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f342ccb162..5a8913bc45b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -182,8 +182,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Setup linker" uses: ./.github/actions/setup-linker @@ -219,8 +217,6 @@ jobs: steps: - name: Checkout uses: actions/checkout@v6 - with: - submodules: recursive - name: Setup linker uses: ./.github/actions/setup-linker @@ -263,8 +259,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Setup linker" uses: ./.github/actions/setup-linker @@ -287,7 +281,11 @@ jobs: - name: "Install: Foundry" uses: foundry-rs/foundry-toolchain@v1 with: - version: v1.7.0 + version: v1.7.1 + + - name: Install dependencies + run: forge soldeer install + working-directory: ./ethexe/contracts - name: "Show: Versioning" run: | @@ -339,8 +337,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Setup linker" uses: ./.github/actions/setup-linker @@ -540,8 +536,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Setup linker" uses: ./.github/actions/setup-linker diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 0b44f15cbee..8571e16eddb 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -47,8 +47,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - with: - submodules: recursive - name: typos-action uses: crate-ci/typos@master @@ -57,8 +55,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Rust toolchain" uses: ./.github/actions/install-rust @@ -74,12 +70,16 @@ jobs: - name: "Install: Foundry" uses: foundry-rs/foundry-toolchain@v1 with: - version: v1.7.0 + version: v1.7.1 + + - name: Install dependencies + run: forge soldeer install + working-directory: ./ethexe/contracts - name: "Install: Node.js" uses: actions/setup-node@v6 with: - node-version: 22.x + node-version: 24.x - name: "Show: Versioning" run: forge --version @@ -88,7 +88,7 @@ jobs: run: | npm cache clean --force - # version from ethexe/contracts/lib/openzeppelin-foundry-upgrades/src/internal/Versions.sol + # version from ethereum/dependencies/openzeppelin-foundry-upgrades-0.4.0/src/internal/Versions.sol npx @openzeppelin/upgrades-core@^1.37.0 forge fmt --check @@ -148,8 +148,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Setup linker" uses: ./.github/actions/setup-linker @@ -177,8 +175,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Setup linker" uses: ./.github/actions/setup-linker @@ -228,8 +224,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Setup linker" uses: ./.github/actions/setup-linker diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b19f170cca..c50e3f325cd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,7 +48,6 @@ jobs: uses: actions/checkout@v6 with: ref: ${{ github.event.inputs.tag_name }} - submodules: recursive - name: "Environment: Rust toolchain" uses: ./.github/actions/install-rust diff --git a/.github/workflows/test-measurements.yaml b/.github/workflows/test-measurements.yaml index 9c69938e0bd..57f58a66d88 100644 --- a/.github/workflows/test-measurements.yaml +++ b/.github/workflows/test-measurements.yaml @@ -19,8 +19,6 @@ jobs: steps: - name: "ACTIONS: Checkout" uses: actions/checkout@v6 - with: - submodules: recursive - name: "Install: Set cargo path" run: echo "/tmp/cargo/bin" >> $GITHUB_PATH diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 824dd31f5b7..00000000000 --- a/.gitmodules +++ /dev/null @@ -1,28 +0,0 @@ -[submodule "ethexe/contracts/lib/forge-std"] - path = ethexe/contracts/lib/forge-std - url = https://github.com/foundry-rs/forge-std - branch = "v1" -[submodule "ethexe/contracts/lib/openzeppelin-contracts"] - path = ethexe/contracts/lib/openzeppelin-contracts - url = https://github.com/OpenZeppelin/openzeppelin-contracts - branch = "release-v5.4" -[submodule "ethexe/contracts/lib/openzeppelin-contracts-upgradeable"] - path = ethexe/contracts/lib/openzeppelin-contracts-upgradeable - url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable - branch = "release-v5.4" -[submodule "ethexe/contracts/lib/openzeppelin-foundry-upgrades"] - path = ethexe/contracts/lib/openzeppelin-foundry-upgrades - url = https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades - branch = "main" -[submodule "ethexe/contracts/lib/symbiotic-core"] - path = ethexe/contracts/lib/symbiotic-core - url = https://github.com/gear-tech/symbiotic-core - branch = "gear-main" -[submodule "ethexe/contracts/lib/symbiotic-rewards"] - path = ethexe/contracts/lib/symbiotic-rewards - url = https://github.com/gear-tech/symbiotic-rewards - branch = "gear-main" -[submodule "ethexe/contracts/lib/frost-secp256k1-evm"] - path = ethexe/contracts/lib/frost-secp256k1-evm - url = https://github.com/StackOverflowExcept1on/frost-secp256k1-evm - branch = "master" diff --git a/Cargo.lock b/Cargo.lock index 2131ffffc7e..c42d6b7237d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5533,6 +5533,7 @@ dependencies = [ "ethexe-rpc", "ethexe-runtime-common", "ethexe-service", + "futures", "gear-workspace-hack", "gprimitives", "gsigner", @@ -5558,6 +5559,7 @@ dependencies = [ "alloy-primitives", "anyhow", "auto_impl", + "binary-merkle-tree", "derive_more 2.1.1", "gear-core", "gear-workspace-hack", @@ -5575,6 +5577,8 @@ dependencies = [ "serde_json", "sha3", "sp-core", + "sp-io", + "sp-runtime", "tap", ] @@ -5670,6 +5674,7 @@ dependencies = [ "alloy", "anyhow", "async-trait", + "binary-merkle-tree", "ethexe-common", "futures", "gear-core", @@ -5682,6 +5687,7 @@ dependencies = [ "nonempty 0.12.0", "rand 0.8.5", "serde", + "sp-runtime", "tokio", "tracing", ] @@ -5908,6 +5914,7 @@ name = "ethexe-rpc" version = "1.10.0" dependencies = [ "anyhow", + "binary-merkle-tree", "dashmap 5.5.3", "ethexe-common", "ethexe-db", @@ -5927,6 +5934,7 @@ dependencies = [ "scopeguard", "serde", "sp-core", + "sp-runtime", "thiserror 2.0.17", "tokio", "tower 0.4.13", @@ -5999,6 +6007,7 @@ dependencies = [ "anyhow", "async-broadcast", "async-trait", + "binary-merkle-tree", "demo-async", "demo-async-init", "demo-delayed-sender-ethexe", @@ -6021,6 +6030,7 @@ dependencies = [ "ethexe-prometheus", "ethexe-rpc", "ethexe-runtime-common", + "ethexe-sdk", "ethexe-service-utils", "futures", "gear-core", @@ -6032,6 +6042,7 @@ dependencies = [ "log", "ntest", "parity-scale-codec", + "sp-runtime", "tempfile", "tokio", "tracing", diff --git a/Makefile b/Makefile index 4b96f7e495e..152af4aa9bc 100644 --- a/Makefile +++ b/Makefile @@ -9,15 +9,13 @@ ethexe-pre-commit-no-contracts: fmt clippy-gear # Building ethexe contracts .PHONY: ethexe-contracts-deps-check ethexe-contracts-deps-check: - @ echo " > Checking ethexe contract submodules are locked" && \ - status="$$(git submodule status --recursive -- ethexe/contracts/lib)" && \ - if printf '%s\n' "$$status" | grep -E '^[+-U]' >/dev/null; then \ - printf '%s\n' "$$status"; \ - echo "ethexe contract submodules must be initialized and checked out at the pinned revisions"; \ - exit 1; \ + @ echo " > Checking ethexe contracts dependencies" && \ + if [ ! -d "./ethexe/contracts/dependencies" ]; then \ + echo "Dependencies folder not found. Installing..." && \ + (cd ./ethexe/contracts && forge soldeer install); \ + else \ + echo "Dependencies folder already exists."; \ fi - @ echo " > Checking ethexe contract submodules are clean" && \ - (cd ethexe/contracts/lib && git submodule foreach --recursive 'git diff --quiet && git diff --cached --quiet || { echo "$$sm_path has uncommitted changes"; exit 1; }') >/dev/null @ echo " > Checking ethexe ethereum ABI artifacts are present" && \ for artifact in \ BatchMulticall \ @@ -59,18 +57,18 @@ ethexe-contracts-lock-artifacts: @ echo " > Locking DemoCaller artifact" && cp ./ethexe/contracts/out/DemoCaller.sol/DemoCaller.json ./ethexe/ethereum/abi @ echo " > Locking Gear artifact" && cp ./ethexe/contracts/out/Gear.sol/Gear.json ./ethexe/ethereum/abi @ echo " > Locking Symbiotic core artifacts" && \ - cp ./ethexe/contracts/lib/symbiotic-core/out/DelegatorFactory.sol/DelegatorFactory.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-core/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-core/out/NetworkRegistry.sol/NetworkRegistry.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-core/out/OperatorRegistry.sol/OperatorRegistry.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-core/out/OptInService.sol/OptInService.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-core/out/SlasherFactory.sol/SlasherFactory.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-core/out/Vault.sol/Vault.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-core/out/VaultFactory.sol/VaultFactory.json ./ethexe/ethereum/abi + cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/DelegatorFactory.sol/DelegatorFactory.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/NetworkMiddlewareService.sol/NetworkMiddlewareService.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/NetworkRegistry.sol/NetworkRegistry.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/OperatorRegistry.sol/OperatorRegistry.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/OptInService.sol/OptInService.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/SlasherFactory.sol/SlasherFactory.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/Vault.sol/Vault.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-core-main/out/VaultFactory.sol/VaultFactory.json ./ethexe/ethereum/abi @ echo " > Locking Symbiotic rewards artifacts" && \ - cp ./ethexe/contracts/lib/symbiotic-rewards/out/DefaultOperatorRewards.sol/DefaultOperatorRewards.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-rewards/out/DefaultStakerRewards.sol/DefaultStakerRewards.json ./ethexe/ethereum/abi && \ - cp ./ethexe/contracts/lib/symbiotic-rewards/out/DefaultStakerRewardsFactory.sol/DefaultStakerRewardsFactory.json ./ethexe/ethereum/abi + cp ./ethexe/contracts/dependencies/symbiotic-rewards-main/out/DefaultOperatorRewards.sol/DefaultOperatorRewards.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-rewards-main/out/DefaultStakerRewards.sol/DefaultStakerRewards.json ./ethexe/ethereum/abi && \ + cp ./ethexe/contracts/dependencies/symbiotic-rewards-main/out/DefaultStakerRewardsFactory.sol/DefaultStakerRewardsFactory.json ./ethexe/ethereum/abi .PHONY: ethexe-contracts-pre-commit ethexe-contracts-pre-commit: ethexe-contracts-deps-check diff --git a/ethexe/cli/Cargo.toml b/ethexe/cli/Cargo.toml index 185e256c3b6..d1de6d1f951 100644 --- a/ethexe/cli/Cargo.toml +++ b/ethexe/cli/Cargo.toml @@ -36,6 +36,7 @@ ethexe-processor.workspace = true ethexe-runtime-common.workspace = true ethexe-db.workspace = true gprimitives = { workspace = true, features = ["std"] } +futures.workspace = true anyhow.workspace = true alloy-chains.workspace = true diff --git a/ethexe/cli/src/commands/tx.rs b/ethexe/cli/src/commands/tx.rs index b5b880837ad..36280264c86 100644 --- a/ethexe/cli/src/commands/tx.rs +++ b/ethexe/cli/src/commands/tx.rs @@ -20,14 +20,17 @@ use alloy_chains::NamedChain; use anyhow::{Context, Result, anyhow, bail, ensure}; use clap::{Parser, Subcommand}; use ethexe_common::{ - Address, BlockHeader, SimpleBlockData, + Address, BlockHeader, OutgoingAction, SimpleBlockData, + events::mirror::StateChangedEvent, + gear::ValueClaim, gear_core::{ids::prelude::CodeIdExt, limited::LimitedVec, rpc::ReplyInfo}, injected::{ AddressedInjectedTransaction, InjectedTransaction, MAX_INJECTED_TX_PAYLOAD_SIZE, Receipt, }, }; -use ethexe_ethereum::{Ethereum, EthereumBuilder, mirror::ClaimInfo, router::CodeValidationResult}; -use ethexe_rpc::{InjectedClient, ProgramClient}; +use ethexe_ethereum::{Ethereum, EthereumBuilder, mirror::Mirror, router::CodeValidationResult}; +use ethexe_rpc::{InjectedClient, ProgramClient, Proof}; +use futures::StreamExt; use gprimitives::{ActorId, CodeId, H160, H256, MessageId, U256}; use gsigner::secp256k1::{Secp256k1SignerExt, Signer}; use jsonrpsee::ws_client::WsClientBuilder; @@ -166,7 +169,7 @@ struct SendReplyResult { payload_hex: String, raw_value: u128, formatted_value: String, - claim_info: Option, + value_claim: Option, } /// JSON-serializable result returned by `tx claim-value`. @@ -183,7 +186,7 @@ struct ClaimValueResult { actor_id: H160, claimed_id: MessageId, - claim_info: Option, + value_claim: Option, } /// JSON-serializable result returned by `tx transfer-locked-value-to-inheritor`. @@ -326,7 +329,9 @@ impl TxCommand { rpc_url: Some(rpc_url), injected: true, .. - } = &self.command + } + | TxSubcommand::SendReply { rpc_url, .. } + | TxSubcommand::ClaimValue { rpc_url, .. } = &self.command { eprintln!("WS RPC: {rpc_url}"); } @@ -1279,6 +1284,7 @@ impl TxCommand { send_message_result?; } TxSubcommand::SendReply { + rpc_url, mirror, replied_to, payload, @@ -1347,27 +1353,36 @@ impl TxCommand { eprintln!("Reply successfully sent!"); - let claim_info = if watch { + let value_claim = if watch { eprintln!("Waiting for value to be claimed..."); - let claim_info = mirror.wait_for_value_claim(replied_to).await?; - let ClaimInfo { + // TODO: consider crate like gsdk but for Vara.eth to avoid direct RPC calls + let ws_client: jsonrpsee::ws_client::WsClient = WsClientBuilder::new() + .build(rpc_url) + .await + .with_context(|| "failed to create ws client for Vara.eth RPC")?; + + let (_, value_claim) = Self::wait_for_value_claim(&mirror, ws_client, replied_to) + .await + .with_context(|| "failed to wait for value claim")?; + + let ValueClaim { message_id, - actor_id, + destination, value, - } = &claim_info; + } = &value_claim; - let actor_id = actor_id.to_address_lossy(); + let destination = destination.to_address_lossy(); let raw_value = *value; let formatted_value = FormattedValue::::new(raw_value); - eprintln!("Claim info:"); + eprintln!("Value claim:"); eprintln!(" Message id: {message_id}"); - eprintln!(" Actor id: {actor_id:?}"); + eprintln!(" Destination: {destination:?}"); eprintln!(" Value: {formatted_value} ({raw_value} wei)"); - Some(claim_info) + Some(value_claim) } else { eprintln!( "To wait for the value to be claimed, run this command with `--watch` flag" @@ -1390,7 +1405,7 @@ impl TxCommand { payload_hex, raw_value, formatted_value: formatted_value.to_string(), - claim_info, + value_claim, }) })() .await; @@ -1406,6 +1421,7 @@ impl TxCommand { send_reply_result?; } TxSubcommand::ClaimValue { + rpc_url, mirror, claimed_id, watch, @@ -1466,27 +1482,35 @@ impl TxCommand { eprintln!("Value claim successfully requested!"); eprintln!(); - let claim_info = if watch { + let value_claim = if watch { eprintln!("Waiting for value to be claimed..."); - let claim_info = mirror.wait_for_value_claim(claimed_id).await?; - let ClaimInfo { + // TODO: consider crate like gsdk but for Vara.eth to avoid direct RPC calls + let ws_client: jsonrpsee::ws_client::WsClient = WsClientBuilder::new() + .build(rpc_url) + .await + .with_context(|| "failed to create ws client for Vara.eth RPC")?; + + let (_, value_claim) = Self::wait_for_value_claim(&mirror, ws_client, claimed_id) + .await + .with_context(|| "failed to wait for value claim")?; + let ValueClaim { message_id, - actor_id, + destination, value, - } = &claim_info; + } = &value_claim; - let actor_id = actor_id.to_address_lossy(); + let destination = destination.to_address_lossy(); let raw_value = *value; let formatted_value = FormattedValue::::new(raw_value); eprintln!("Claim info:"); eprintln!(" Message id: {message_id}"); - eprintln!(" Actor id: {actor_id:?}"); + eprintln!(" Destination: {destination:?}"); eprintln!(" Value: {formatted_value} ({raw_value} wei)"); - Some(claim_info) + Some(value_claim) } else { eprintln!( "To wait for the value to be claimed, run this command with `--watch` flag" @@ -1505,7 +1529,7 @@ impl TxCommand { total_fee_wei: fee.total_fee_wei, actor_id, claimed_id, - claim_info, + value_claim, }) })() .await; @@ -1615,6 +1639,48 @@ impl TxCommand { Ok(()) } + + // TODO #5111: it will be removed in future + async fn wait_for_value_claim( + mirror: &Mirror, + ws_client: jsonrpsee::ws_client::WsClient, + message_id: MessageId, + ) -> Result<(H256, ValueClaim)> { + let mut stream = mirror + .query() + .events() + .state_changed() + .subscribe() + .await + .with_context(|| "failed to subscribe to state changed events of mirror")?; + + while let Some(result) = stream.next().await { + if let Ok((StateChangedEvent { state_hash }, _)) = result + && let Ok(Proof { + total_leaves, + leaf_index, + outgoing_action, + proof, + }) = ws_client + .read_outgoing_action_merkle_proof(state_hash, message_id) + .await + { + let OutgoingAction::ValueClaim(value_claim) = outgoing_action.clone(); + let receipt = mirror + .process_outgoing_action( + state_hash, + total_leaves, + leaf_index, + outgoing_action, + proof, + ) + .await?; + return Ok((receipt, value_claim)); + } + } + + Err(anyhow!("Failed to wait for value claimed")) + } } /// Builds an explorer URL for a transaction hash when the chain is recognized. @@ -1847,6 +1913,9 @@ pub enum TxSubcommand { }, /// Send reply to mirror program on Ethereum. SendReply { + /// RPC URL of Vara.eth node. Example: ws://127.0.0.1:9944. + #[arg(short, long)] + rpc_url: String, /// Mirror address. #[arg()] mirror: Address, @@ -1868,6 +1937,9 @@ pub enum TxSubcommand { }, /// Claim value from mirror program on Ethereum. ClaimValue { + /// RPC URL of Vara.eth node. Example: ws://127.0.0.1:9944. + #[arg(short, long)] + rpc_url: String, /// Mirror address. #[arg()] mirror: Address, diff --git a/ethexe/common/Cargo.toml b/ethexe/common/Cargo.toml index 14f66af76f3..4d630b7ec6b 100644 --- a/ethexe/common/Cargo.toml +++ b/ethexe/common/Cargo.toml @@ -10,8 +10,13 @@ homepage.workspace = true repository.workspace = true rust-version.workspace = true +[package.metadata.cargo-shear] +# we need it for applying `disable_allocator` feature +ignored = ["sp-io"] + [dependencies] alloy-primitives = { workspace = true, features = ["serde"] } +binary-merkle-tree.workspace = true gear-core.workspace = true sp-core.workspace = true gprimitives.workspace = true @@ -19,6 +24,8 @@ parity-scale-codec.workspace = true scale-info = { workspace = true, features = ["derive"] } hex.workspace = true serde = { workspace = true, optional = true } +sp-runtime.workspace = true +sp-io = { workspace = true, features = ["disable_allocator"] } derive_more.workspace = true anyhow.workspace = true auto_impl.workspace = true diff --git a/ethexe/common/src/db.rs b/ethexe/common/src/db.rs index cb50920e126..9afb51b252c 100644 --- a/ethexe/common/src/db.rs +++ b/ethexe/common/src/db.rs @@ -4,8 +4,8 @@ //! Common db types and traits. use crate::{ - Address, BlockHeader, CodeBlobInfo, Digest, HashOf, ProgramStates, ProtocolTimelines, Schedule, - SimpleBlockData, ValidatorsVec, + Address, BlockHeader, CodeBlobInfo, Digest, HashOf, OutgoingActions, ProgramStates, + ProtocolTimelines, Schedule, SimpleBlockData, ValidatorsVec, events::BlockEvent, gear::StateTransition, injected::{InjectedTransaction, Promise, SignedInjectedTransaction, SignedTxReceipt}, @@ -176,6 +176,18 @@ pub trait MbStorageRW: MbStorageRO { fn mutate_mb_meta(&self, mb_hash: H256, f: impl FnOnce(&mut MbMeta)); } +#[auto_impl::auto_impl(&, Box)] +pub trait OutgoingActionStorageRO { + /// Reads outgoing actions by program state hash. + fn outgoing_actions(&self, state_hash: H256) -> Option; +} + +#[auto_impl::auto_impl(&)] +pub trait OutgoingActionStorageRW: OutgoingActionStorageRO { + /// Writes outgoing actions by program state hash. + fn set_outgoing_actions(&self, state_hash: H256, outgoing_actions: OutgoingActions); +} + pub struct PreparedBlockData { pub header: BlockHeader, pub events: Vec, @@ -265,7 +277,7 @@ mod tests { #[test] fn ensure_types_unchanged() { const EXPECTED_TYPE_INFO_HASH: &str = - "d43d8ab319fb6d934231dba55950c9825e28c6ecf603e8076a90e0cab3855671"; + "740f626e5ecdc186db996b42ec13136210eab4ba45f8fa75b4335c1005a4a22f"; let types = [ meta_type::(), diff --git a/ethexe/common/src/events/mirror.rs b/ethexe/common/src/events/mirror.rs index 45f332172eb..57e5180e2f3 100644 --- a/ethexe/common/src/events/mirror.rs +++ b/ethexe/common/src/events/mirror.rs @@ -102,13 +102,6 @@ pub struct ReplyTransferFailedEvent { pub value: u128, } -#[derive(Clone, Debug, PartialEq, Eq, Decode, Encode, TypeInfo, Hash)] -#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] -pub struct ValueClaimFailedEvent { - pub claimed_id: MessageId, - pub value: u128, -} - #[derive(Clone, Debug, PartialEq, Eq, Decode, Encode, TypeInfo, Hash)] pub enum Event { OwnedBalanceTopUpRequested(OwnedBalanceTopUpRequestedEvent), @@ -124,7 +117,6 @@ pub enum Event { ValueClaimingRequested(ValueClaimingRequestedEvent), TransferLockedValueToInheritorFailed(TransferLockedValueToInheritorFailedEvent), ReplyTransferFailed(ReplyTransferFailedEvent), - ValueClaimFailed(ValueClaimFailedEvent), } impl Event { @@ -146,8 +138,7 @@ impl Event { | Self::Reply(_) | Self::ReplyCallFailed(_) | Self::TransferLockedValueToInheritorFailed(_) - | Self::ReplyTransferFailed(_) - | Self::ValueClaimFailed(_) => return None, + | Self::ReplyTransferFailed(_) => return None, }) } } diff --git a/ethexe/common/src/gear.rs b/ethexe/common/src/gear.rs index 3f987ebbcb1..0a154650785 100644 --- a/ethexe/common/src/gear.rs +++ b/ethexe/common/src/gear.rs @@ -7,10 +7,11 @@ use crate::{Address, Digest, ToDigest, ValidatorsVec}; use alloc::vec::Vec; use alloy_primitives::U256 as AlloyU256; use gear_core::message::{ReplyCode, ReplyDetails, StoredMessage, SuccessReplyReason}; -use gprimitives::{ActorId, CodeId, H256, MessageId, U256}; +use gprimitives::{ActorId, CodeId, H160, H256, MessageId, U256}; use parity_scale_codec::{Decode, Encode}; use scale_info::TypeInfo; use sha3::Digest as _; +use sp_runtime::traits::Keccak256 as SpRuntimeKeccak256; // TODO: support query from router. pub const COMPUTATION_THRESHOLD: u64 = 2_500_000_000; @@ -389,13 +390,20 @@ impl ToDigest for StateTransition { messages, } = self; + let value_claims: Vec<_> = value_claims + .iter() + .map(|value_claim| H256(value_claim.to_digest().0)) + .collect(); + let value_claims_merkle_root = + binary_merkle_tree::merkle_root_raw::(value_claims); + hasher.update(actor_id.to_address_lossy()); hasher.update(new_state_hash); hasher.update([*exited as u8]); hasher.update(inheritor.to_address_lossy()); hasher.update(value_to_receive.to_be_bytes()); hasher.update([*value_to_receive_negative_sign as u8]); - hasher.update(value_claims.to_digest()); + hasher.update(value_claims_merkle_root); hasher.update(messages.to_digest()); } } @@ -408,6 +416,23 @@ pub struct ValueClaim { pub value: u128, } +impl ValueClaim { + pub const VALUE_CLAIM_DISCRIMINANT: u8 = 0x02; + + pub fn to_bytes(&self) -> Vec { + let mut payload = Vec::with_capacity( + size_of::() + size_of::() + size_of::() + size_of::(), + ); + + payload.extend_from_slice(&[Self::VALUE_CLAIM_DISCRIMINANT]); + payload.extend_from_slice(self.message_id.as_ref()); + payload.extend_from_slice(self.destination.to_address_lossy().as_ref()); + payload.extend_from_slice(self.value.to_be_bytes().as_ref()); + + payload + } +} + impl ToDigest for ValueClaim { fn update_hasher(&self, hasher: &mut sha3::Keccak256) { let ValueClaim { diff --git a/ethexe/common/src/primitives.rs b/ethexe/common/src/primitives.rs index 13cc16ef0ea..48989a87022 100644 --- a/ethexe/common/src/primitives.rs +++ b/ethexe/common/src/primitives.rs @@ -1,7 +1,7 @@ // Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -use crate::events::BlockEvent; +use crate::{ToDigest, events::BlockEvent, gear::ValueClaim}; use alloc::{ collections::{btree_map::BTreeMap, btree_set::BTreeSet}, vec::Vec, @@ -218,6 +218,57 @@ impl ProtocolTimelines { } } +#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] +#[repr(u8)] +pub enum OutgoingAction { + ValueClaim(ValueClaim) = ValueClaim::VALUE_CLAIM_DISCRIMINANT, +} + +impl OutgoingAction { + pub fn to_bytes(&self) -> Vec { + match self { + Self::ValueClaim(claim) => claim.to_bytes(), + } + } + + pub fn message_id(&self) -> MessageId { + match self { + Self::ValueClaim(claim) => claim.message_id, + } + } +} + +impl ToDigest for OutgoingAction { + fn update_hasher(&self, hasher: &mut sha3::Keccak256) { + match self { + Self::ValueClaim(claim) => claim.update_hasher(hasher), + } + } +} + +#[derive( + Clone, + Default, + Debug, + Encode, + Decode, + PartialEq, + Eq, + Hash, + derive_more::From, + derive_more::Into, + derive_more::AsRef, +)] +#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))] +pub struct OutgoingActions(Vec); + +impl OutgoingActions { + pub fn into_inner(self) -> Vec { + self.0 + } +} + /// RemoveFromMailbox key; (msgs sources program (mailbox and queue provider), destination user id) pub type Rfm = (ActorId, ActorId); diff --git a/ethexe/consensus/src/validator/batch/manager.rs b/ethexe/consensus/src/validator/batch/manager.rs index 2a7c734a096..c4eb2495c6e 100644 --- a/ethexe/consensus/src/validator/batch/manager.rs +++ b/ethexe/consensus/src/validator/batch/manager.rs @@ -10,10 +10,15 @@ use crate::validator::{ use alloy::sol_types::SolValue; use anyhow::{Context as _, Result, anyhow, bail}; use ethexe_common::{ - SimpleBlockData, ToDigest, + OutgoingAction, OutgoingActions, SimpleBlockData, ToDigest, consensus::BatchCommitmentValidationRequest, - db::{BlockMetaStorageRO, ConfigStorageRO, GlobalsStorageRO, MbStorageRO, OnChainStorageRO}, - gear::{BatchCommitment, ChainCommitment, RewardsCommitment, ValidatorsCommitment}, + db::{ + BlockMetaStorageRO, ConfigStorageRO, GlobalsStorageRO, MbStorageRO, OnChainStorageRO, + OutgoingActionStorageRW, + }, + gear::{ + BatchCommitment, ChainCommitment, RewardsCommitment, StateTransition, ValidatorsCommitment, + }, }; use ethexe_db::Database; use ethexe_ethereum::abi::Gear; @@ -120,12 +125,22 @@ impl BatchCommitmentManager { } } - super::utils::create_batch_commitment( + let batch_commitment = super::utils::create_batch_commitment( &self.db, &block, batch_filler.into_parts(), self.limits.commitment_delay_limit, - ) + ); + + if let Ok(Some(BatchCommitment { + chain_commitment: Some(chain_commitment), + .. + })) = batch_commitment.as_ref() + { + self.store_outgoing_actions_for_chain_commitment(chain_commitment); + } + + batch_commitment } /// Participant: re-derive the coordinator's batch and return whether digests agree. @@ -309,6 +324,7 @@ impl BatchCommitmentManager { std::mem::take(&mut chain_commitment.transitions), ); super::utils::sort_transitions_by_value_to_receive(&mut chain_commitment.transitions); + self.store_outgoing_actions_for_chain_commitment(&chain_commitment); batch_parts.chain_commitment = Some(chain_commitment); } @@ -351,6 +367,25 @@ impl BatchCommitmentManager { Ok(ValidationStatus::Accepted(digest)) } + fn store_outgoing_actions_for_chain_commitment(&self, commitment: &ChainCommitment) { + for StateTransition { + new_state_hash, + value_claims, + .. + } in &commitment.transitions + { + let mut outgoing_actions = vec![]; + + for value_claim in value_claims { + outgoing_actions.push(OutgoingAction::ValueClaim(value_claim.clone())); + } + + let outgoing_actions: OutgoingActions = outgoing_actions.into(); + self.db + .set_outgoing_actions(*new_state_hash, outgoing_actions); + } + } + pub async fn aggregate_validators_commitment( &self, block: &SimpleBlockData, diff --git a/ethexe/contracts/.gitignore b/ethexe/contracts/.gitignore index 3d9ebed5982..cb4d515ec3b 100644 --- a/ethexe/contracts/.gitignore +++ b/ethexe/contracts/.gitignore @@ -2,16 +2,26 @@ cache/ out/ -# Ignores development broadcast logs -!/broadcast -/broadcast/*/*/ -/broadcast/**/dry-run/ +# Commonly ignored directories +.logs/ +.ignore/ + +# Ignores broadcast logs +broadcast/ # Docs docs/ # Dotenv file .env +!.env.example + +# Coverage files +lcov.info +coverage/ + +# Soldeer +dependencies/ # npm package-lock.json diff --git a/ethexe/contracts/.vscode/settings.json b/ethexe/contracts/.vscode/settings.json index 5486624f049..0de4f2a5106 100644 --- a/ethexe/contracts/.vscode/settings.json +++ b/ethexe/contracts/.vscode/settings.json @@ -6,5 +6,5 @@ "editor.defaultFormatter": "JuanBlanco.solidity" }, "solidity.formatter": "forge", - "solidity.compileUsingRemoteVersion": "v0.8.33" + "solidity.compileUsingRemoteVersion": "v0.8.35" } diff --git a/ethexe/contracts/README.md b/ethexe/contracts/README.md index fdba9c25df4..24757c89cf8 100644 --- a/ethexe/contracts/README.md +++ b/ethexe/contracts/README.md @@ -15,6 +15,12 @@ https://book.getfoundry.sh/ ## Usage +### Install dependencies + +```shell +$ forge soldeer install +``` + ### Build ```shell @@ -69,9 +75,11 @@ _- If environment variable `IS_POA` is set to `true` than `DeploymentScript` ski ```shell $ source .env +$ forge script script/actions/Pause.s.sol:PauseScript --slow --rpc-url $LOCAL_RPC_URL --broadcast -vvvv $ forge script script/actions/Pause.s.sol:PauseScript --slow --rpc-url $MAINNET_RPC_URL --broadcast --verify -vvvv $ forge script script/actions/Pause.s.sol:PauseScript --slow --rpc-url $HOODI_RPC_URL --broadcast --verify -vvvv +$ forge script script/actions/Unpause.s.sol:UnpauseScript --slow --rpc-url $LOCAL_RPC_URL --broadcast -vvvv $ forge script script/actions/Unpause.s.sol:UnpauseScript --slow --rpc-url $MAINNET_RPC_URL --broadcast --verify -vvvv $ forge script script/actions/Unpause.s.sol:UnpauseScript --slow --rpc-url $HOODI_RPC_URL --broadcast --verify -vvvv ``` @@ -84,15 +92,19 @@ $ forge script script/actions/Unpause.s.sol:UnpauseScript --slow --rpc-url $HOOD ```shell $ source .env +$ forge script script/upgrades/Mirror.s.sol:MirrorScript --slow --rpc-url $LOCAL_RPC_URL --broadcast -vvvv $ forge script script/upgrades/Mirror.s.sol:MirrorScript --slow --rpc-url $MAINNET_RPC_URL --broadcast --verify -vvvv $ forge script script/upgrades/Mirror.s.sol:MirrorScript --slow --rpc-url $HOODI_RPC_URL --broadcast --verify -vvvv +$ forge script script/upgrades/POAMiddleware.s.sol:POAMiddlewareScript --slow --rpc-url $LOCAL_RPC_URL --broadcast -vvvv $ forge script script/upgrades/POAMiddleware.s.sol:POAMiddlewareScript --slow --rpc-url $MAINNET_RPC_URL --broadcast --verify -vvvv $ forge script script/upgrades/POAMiddleware.s.sol:POAMiddlewareScript --slow --rpc-url $HOODI_RPC_URL --broadcast --verify -vvvv +$ forge script script/upgrades/Router.s.sol:RouterScript --slow --rpc-url $LOCAL_RPC_URL --broadcast -vvvv $ forge script script/upgrades/Router.s.sol:RouterScript --slow --rpc-url $MAINNET_RPC_URL --broadcast --verify -vvvv $ forge script script/upgrades/Router.s.sol:RouterScript --slow --rpc-url $HOODI_RPC_URL --broadcast --verify -vvvv +$ forge script script/upgrades/WrappedVara.s.sol:WrappedVaraScript --slow --rpc-url $LOCAL_RPC_URL --broadcast -vvvv $ forge script script/upgrades/WrappedVara.s.sol:WrappedVaraScript --slow --rpc-url $MAINNET_RPC_URL --broadcast --verify -vvvv $ forge script script/upgrades/WrappedVara.s.sol:WrappedVaraScript --slow --rpc-url $HOODI_RPC_URL --broadcast --verify -vvvv ``` diff --git a/ethexe/contracts/foundry.lock b/ethexe/contracts/foundry.lock deleted file mode 100644 index 36f4d893c30..00000000000 --- a/ethexe/contracts/foundry.lock +++ /dev/null @@ -1,44 +0,0 @@ -{ - "lib/forge-std": { - "branch": { - "name": "\"v1\"", - "rev": "8987040ede9553cea20c95ad40d0455930f9c8e0" - } - }, - "lib/frost-secp256k1-evm": { - "branch": { - "name": "\"master\"", - "rev": "d9473aa5e35a59c522fab81b12c388bbb23b16d1" - } - }, - "lib/openzeppelin-contracts": { - "branch": { - "name": "\"release-v5.4\"", - "rev": "c64a1edb67b6e3f4a15cca8909c9482ad33a02b0" - } - }, - "lib/openzeppelin-contracts-upgradeable": { - "branch": { - "name": "\"release-v5.4\"", - "rev": "e725abddf1e01cf05ace496e950fc8e243cc7cab" - } - }, - "lib/openzeppelin-foundry-upgrades": { - "branch": { - "name": "\"main\"", - "rev": "cfd861bc18ef4737e82eae6ec75304e27af699ef" - } - }, - "lib/symbiotic-core": { - "branch": { - "name": "\"gear-main\"", - "rev": "d50e2095647a7ad78de61f0032b8140e2ab045b7" - } - }, - "lib/symbiotic-rewards": { - "branch": { - "name": "\"gear-main\"", - "rev": "e5f7b0a0607d4821f3cadb6d6e78067bbbb6e4c2" - } - } -} \ No newline at end of file diff --git a/ethexe/contracts/foundry.toml b/ethexe/contracts/foundry.toml index 28b0b6c2ee4..51aed7edc92 100644 --- a/ethexe/contracts/foundry.toml +++ b/ethexe/contracts/foundry.toml @@ -1,31 +1,55 @@ [profile.default] src = "src" out = "out" -libs = ["lib"] +libs = ["dependencies"] +remappings = [ + "forge-std/=dependencies/forge-std-1.16.1/src/", + "@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/", + "@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/", + "@symbioticfi/core/=dependencies/symbiotic-core-main/", + "symbiotic-core/=dependencies/symbiotic-core-main/", + "symbiotic-rewards/=dependencies/symbiotic-rewards-main/", + "frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/", +] evm_version = "osaka" -solc_version = "0.8.34" +solc_version = "0.8.35" optimizer = true # extra_output_files = ["irOptimized"] # Uncomment to enable saving optimized IR via_ir = true bytecode_hash = "none" cbor_metadata = false -# Required for OpenZeppelin Foundry Upgrades https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades +# Required for OpenZeppelin Foundry Upgrades: +# - https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades ffi = true ast = true build_info = true extra_output = ["storageLayout"] -# Some warnings should be omitted +# Some warnings should be omitted: +# - https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades/issues/115 +# - https://github.com/OpenZeppelin/openzeppelin-contracts/issues/5577 ignored_warnings_from = [ - # Warning (2424): Natspec memory-safe-assembly... (https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades/issues/115). - "lib/openzeppelin-foundry-upgrades/src/internal/Core.sol", - "lib/openzeppelin-foundry-upgrades/src/internal/DefenderDeploy.sol", - "lib/openzeppelin-foundry-upgrades/src/internal/StringFinder.sol", - # Warning (3628): This contract has a payable fallback function, but no receive ether function. + "dependencies/openzeppelin-foundry-upgrades-0.4.0/src/internal/Core.sol", + "dependencies/openzeppelin-foundry-upgrades-0.4.0/src/internal/DefenderDeploy.sol", + "dependencies/openzeppelin-foundry-upgrades-0.4.0/src/internal/StringFinder.sol", + + "dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol", + "dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol", + "dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol", + "src/Mirror.sol", "src/MirrorProxy.sol", ] # Required for Middleware tests -fs_permissions = [ { access = "read-write", path = "out" }, { access = "read", path = "lib" } ] +fs_permissions = [ { access = "read-write", path = "out" }, { access = "read", path = "dependencies" } ] + +[dependencies] +forge-std = "1.16.1" +"@openzeppelin-contracts" = "5.6.1" +"@openzeppelin-contracts-upgradeable" = "5.6.1" +openzeppelin-foundry-upgrades = "0.4.0" +symbiotic-core = { version = "main", git = "https://github.com/StackOverflowExcept1on/symbiotic-core.git", branch = "main" } +symbiotic-rewards = { version = "main", git = "https://github.com/StackOverflowExcept1on/symbiotic-rewards.git", branch = "main" } +frost-secp256k1-evm = { version = "master", git = "https://github.com/StackOverflowExcept1on/frost-secp256k1-evm.git", branch = "master" } [fmt] sort_imports = true diff --git a/ethexe/contracts/lib/forge-std b/ethexe/contracts/lib/forge-std deleted file mode 160000 index 8987040ede9..00000000000 --- a/ethexe/contracts/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8987040ede9553cea20c95ad40d0455930f9c8e0 diff --git a/ethexe/contracts/lib/frost-secp256k1-evm b/ethexe/contracts/lib/frost-secp256k1-evm deleted file mode 160000 index d9473aa5e35..00000000000 --- a/ethexe/contracts/lib/frost-secp256k1-evm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d9473aa5e35a59c522fab81b12c388bbb23b16d1 diff --git a/ethexe/contracts/lib/openzeppelin-contracts b/ethexe/contracts/lib/openzeppelin-contracts deleted file mode 160000 index c64a1edb67b..00000000000 --- a/ethexe/contracts/lib/openzeppelin-contracts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c64a1edb67b6e3f4a15cca8909c9482ad33a02b0 diff --git a/ethexe/contracts/lib/openzeppelin-contracts-upgradeable b/ethexe/contracts/lib/openzeppelin-contracts-upgradeable deleted file mode 160000 index e725abddf1e..00000000000 --- a/ethexe/contracts/lib/openzeppelin-contracts-upgradeable +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e725abddf1e01cf05ace496e950fc8e243cc7cab diff --git a/ethexe/contracts/lib/openzeppelin-foundry-upgrades b/ethexe/contracts/lib/openzeppelin-foundry-upgrades deleted file mode 160000 index cfd861bc18e..00000000000 --- a/ethexe/contracts/lib/openzeppelin-foundry-upgrades +++ /dev/null @@ -1 +0,0 @@ -Subproject commit cfd861bc18ef4737e82eae6ec75304e27af699ef diff --git a/ethexe/contracts/lib/symbiotic-core b/ethexe/contracts/lib/symbiotic-core deleted file mode 160000 index d50e2095647..00000000000 --- a/ethexe/contracts/lib/symbiotic-core +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d50e2095647a7ad78de61f0032b8140e2ab045b7 diff --git a/ethexe/contracts/lib/symbiotic-rewards b/ethexe/contracts/lib/symbiotic-rewards deleted file mode 160000 index e5f7b0a0607..00000000000 --- a/ethexe/contracts/lib/symbiotic-rewards +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e5f7b0a0607d4821f3cadb6d6e78067bbbb6e4c2 diff --git a/ethexe/contracts/remappings.txt b/ethexe/contracts/remappings.txt index b4e81161be8..dc4af7baa91 100644 --- a/ethexe/contracts/remappings.txt +++ b/ethexe/contracts/remappings.txt @@ -1,17 +1,10 @@ +@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1 +@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1 +forge-std/=dependencies/forge-std-1.16.1/src +frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src +openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/ +script=./script src=./src +symbiotic-core/=dependencies/symbiotic-core-main +symbiotic-rewards/=dependencies/symbiotic-rewards-main test=./test -script=./script -@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ -@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ -@symbioticfi/core/=lib/symbiotic-rewards/lib/core/ -core/=lib/symbiotic-rewards/lib/core/ -ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/ -erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/ -forge-std/=lib/forge-std/src/ -frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/ -halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/ -openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/ -openzeppelin-contracts/=lib/openzeppelin-contracts/ -openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/ -symbiotic-core/=lib/symbiotic-core/ -symbiotic-rewards/=lib/symbiotic-rewards/ diff --git a/ethexe/contracts/soldeer.lock b/ethexe/contracts/soldeer.lock new file mode 100644 index 00000000000..b2329bf1258 --- /dev/null +++ b/ethexe/contracts/soldeer.lock @@ -0,0 +1,45 @@ +[[dependencies]] +name = "@openzeppelin-contracts" +version = "5.6.1" +url = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts/5_6_1_15-03-2026_09:19:50_contracts.zip" +checksum = "a3b6bc661be858c7c27f60a1708cbebe8c71034b4cc1e9fe270d0a05b069352f" +integrity = "bce03af7ada1eee21a7fff393f238bcd7cd75a022a4db55ffb6b0dbb32433d35" + +[[dependencies]] +name = "@openzeppelin-contracts-upgradeable" +version = "5.6.1" +url = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts-upgradeable/5_6_1_15-03-2026_09:19:56_contracts-upgradeable.zip" +checksum = "f6257dbc993c2499fe08fdc93f66e12459fe3458ee62ce716b92e1d95ee0b504" +integrity = "2f539b6241258fc3c127c97225b3cb1b5e9225e422d2c1cb233c52a6f5c29002" + +[[dependencies]] +name = "forge-std" +version = "1.16.1" +url = "https://soldeer-revisions.s3.amazonaws.com/forge-std/1_16_1_08-05-2026_08:51:16_forge-std-1.16.zip" +checksum = "839b61832925c7152c7b6dffbfa4998d9e606211179bd8f604733124e8a7cb57" +integrity = "60e55d10150354ca4a1e2985c5456c834b92b82ef85ab0e1d92a7786cddbd219" + +[[dependencies]] +name = "frost-secp256k1-evm" +version = "master" +git = "https://github.com/StackOverflowExcept1on/frost-secp256k1-evm.git" +rev = "29acc9c75b62632a6117bd32083e5f8ffbf2702d" + +[[dependencies]] +name = "openzeppelin-foundry-upgrades" +version = "0.4.0" +url = "https://soldeer-revisions.s3.amazonaws.com/openzeppelin-foundry-upgrades/0_4_0_27-01-2025_18:32:41_openzeppelin-foundry-upgrades.zip" +checksum = "d38121a53a68c9a3e10032d37c712b28604a673c77b7186332f65c423e53cc45" +integrity = "7453d9ee76f1bbf72424354de766dd2a4af61ec33968b4e0da111e6d734943e2" + +[[dependencies]] +name = "symbiotic-core" +version = "main" +git = "https://github.com/StackOverflowExcept1on/symbiotic-core.git" +rev = "8fe3195d270b39b54af43a1b68cfdb69dc68c093" + +[[dependencies]] +name = "symbiotic-rewards" +version = "main" +git = "https://github.com/StackOverflowExcept1on/symbiotic-rewards.git" +rev = "e5be576755aa80b12157a513e66e0ecf1c8df58e" diff --git a/ethexe/contracts/src/BatchMulticall.sol b/ethexe/contracts/src/BatchMulticall.sol index 0a6671d65b3..114e5c820b2 100644 --- a/ethexe/contracts/src/BatchMulticall.sol +++ b/ethexe/contracts/src/BatchMulticall.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {IMirror} from "src/IMirror.sol"; import {IRouter} from "src/IRouter.sol"; diff --git a/ethexe/contracts/src/ICallbacks.sol b/ethexe/contracts/src/ICallbacks.sol index cc3b5ffcede..e60d33c3b98 100644 --- a/ethexe/contracts/src/ICallbacks.sol +++ b/ethexe/contracts/src/ICallbacks.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; /** * @dev Interface for callbacks that is available in every caller of Mirror contract. diff --git a/ethexe/contracts/src/IMiddleware.sol b/ethexe/contracts/src/IMiddleware.sol index 764639c8118..d95daec06aa 100644 --- a/ethexe/contracts/src/IMiddleware.sol +++ b/ethexe/contracts/src/IMiddleware.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; import {Gear} from "src/libraries/Gear.sol"; diff --git a/ethexe/contracts/src/IMirror.sol b/ethexe/contracts/src/IMirror.sol index 52a481692a6..5a38da10bc5 100644 --- a/ethexe/contracts/src/IMirror.sol +++ b/ethexe/contracts/src/IMirror.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {Gear} from "src/libraries/Gear.sol"; @@ -148,16 +149,6 @@ interface IMirror { */ event ReplyTransferFailed(address destination, uint128 value); - /** - * @dev Emitted when a user fails in claiming value request and doesn't receive balance. - * @param claimedId The ID of the message or reply being claimed. - * @param value The amount of value that failed to claim. - * - * NOTE: It's event for USERS: - * it informs about failed value claim. - */ - event ValueClaimFailed(bytes32 claimedId, uint128 value); - /* # Errors */ /** @@ -205,6 +196,21 @@ interface IMirror { */ error TransferLockedValueToInheritorExternalFailed(); + /** + * @dev Thrown when the outgoing action (messageId) is already processed. + */ + error OutgoingActionAlreadyProcessed(bytes32 messageId); + + /** + * @dev Thrown when the merkle root is not found for the state hash. + */ + error OutgoingActionMerkleRootNotFound(bytes32 stateHash); + + /** + * @dev Thrown when the merkle proof is invalid for outgoing actions. + */ + error OutgoingActionInvalidMerkleProof(); + error InitializerAlreadySet(); error IsSmallAlreadySet(); @@ -217,9 +223,13 @@ interface IMirror { error InvalidFallbackCall(); + error OutgoingActionInvalidPayload(); + + error ValueClaimFailed(bytes32 claimedId, uint128 value); + /* # Functions section */ - /* # Operational functions */ + /* # View functions */ /** * @dev Returns the address of the `Router` contract, which is the sole authority @@ -255,6 +265,21 @@ interface IMirror { */ function initializer() external view returns (address); + /** + * @dev Returns the outgoing actions merkle root for the specified state hash. + * Returns `bytes32(0)` if no merkle root was provided for the given state hash. + * @param stateHash Target state hash. + * @return merkleRoot Outgoing actions merkle root for the specified state hash. + */ + function getOutgoingActionsMerkleRoot(bytes32 stateHash) external view returns (bytes32); + + /** + * @dev Checks if outgoing action was already processed. + * @param messageId Message ID to check. + * @return isProcessed `true` if outgoing action was already processed, `false` otherwise. + */ + function isOutgoingActionsProcessed(bytes32 messageId) external view returns (bool); + /* # Primary Gear logic (external calls) */ /** @@ -311,6 +336,24 @@ interface IMirror { */ function transferLockedValueToInheritor() external; + /* # Primary Gear logic (external calls, pull-based methods) */ + + /** + * @dev Processes outgoing action. + * @param stateHash The state hash for which to process outgoing action. + * @param totalLeaves The total number of leaves in the merkle tree. + * @param leafIndex The index of the leaf for which to process outgoing action. + * @param payload The payload for the outgoing action. + * @param proof The merkle proof for the claim. + */ + function processOutgoingAction( + bytes32 stateHash, + uint256 totalLeaves, + uint256 leafIndex, + bytes calldata payload, + bytes32[] calldata proof + ) external; + /* # Router-driven state and funds management */ /** diff --git a/ethexe/contracts/src/IPOAMiddleware.sol b/ethexe/contracts/src/IPOAMiddleware.sol index 2385bc6ac61..a53be94134c 100644 --- a/ethexe/contracts/src/IPOAMiddleware.sol +++ b/ethexe/contracts/src/IPOAMiddleware.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; /** * @dev Interface for the POAMiddleware contract. diff --git a/ethexe/contracts/src/IRouter.sol b/ethexe/contracts/src/IRouter.sol index 7776efdee63..8ad75f5e0ab 100644 --- a/ethexe/contracts/src/IRouter.sol +++ b/ethexe/contracts/src/IRouter.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {Gear} from "src/libraries/Gear.sol"; diff --git a/ethexe/contracts/src/IWrappedVara.sol b/ethexe/contracts/src/IWrappedVara.sol index 0cfdaad40d8..fd987c536f7 100644 --- a/ethexe/contracts/src/IWrappedVara.sol +++ b/ethexe/contracts/src/IWrappedVara.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; diff --git a/ethexe/contracts/src/Middleware.sol b/ethexe/contracts/src/Middleware.sol index 2dc3536fb0d..75d3da3fdc3 100644 --- a/ethexe/contracts/src/Middleware.sol +++ b/ethexe/contracts/src/Middleware.sol @@ -1,12 +1,11 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; -import { - ReentrancyGuardTransientUpgradeable -} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol"; import {IAccessControl} from "@openzeppelin/contracts/access/IAccessControl.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; +import {ReentrancyGuardTransient} from "@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol"; import {SlotDerivation} from "@openzeppelin/contracts/utils/SlotDerivation.sol"; import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; @@ -35,7 +34,7 @@ import {IDefaultStakerRewards} from "symbiotic-rewards/src/interfaces/defaultSta // TODO: implement forced operators removal // TODO: implement forced vaults removal // TODO: use hints for symbiotic calls -contract Middleware is IMiddleware, OwnableUpgradeable, ReentrancyGuardTransientUpgradeable, UUPSUpgradeable { +contract Middleware is IMiddleware, OwnableUpgradeable, ReentrancyGuardTransient, UUPSUpgradeable { using EnumerableMap for EnumerableMap.AddressToUintMap; using MapWithTimeData for EnumerableMap.AddressToUintMap; @@ -58,7 +57,6 @@ contract Middleware is IMiddleware, OwnableUpgradeable, ReentrancyGuardTransient function initialize(InitParams calldata _params) public initializer { __Ownable_init(_params.owner); - __ReentrancyGuardTransient_init(); _setStorageSlot("middleware.storage.MiddlewareV1"); Storage storage $ = _storage(); diff --git a/ethexe/contracts/src/Mirror.sol b/ethexe/contracts/src/Mirror.sol index f303407a4fc..df87b5c3e6a 100644 --- a/ethexe/contracts/src/Mirror.sol +++ b/ethexe/contracts/src/Mirror.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {ERC1967Utils} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol"; import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; @@ -9,6 +10,7 @@ import {ICallbacks} from "src/ICallbacks.sol"; import {IMirror} from "src/IMirror.sol"; import {IRouter} from "src/IRouter.sol"; import {IWrappedVara} from "src/IWrappedVara.sol"; +import {BinaryMerkleTree} from "src/libraries/BinaryMerkleTree.sol"; import {Gear} from "src/libraries/Gear.sol"; /** @@ -43,6 +45,104 @@ contract Mirror is IMirror { */ address internal constant ETH_EVENT_ADDR = 0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF; + /** + * @dev `uint8 discriminant` bit shift. + */ + uint256 internal constant DISCRIMINANT_BIT_SHIFT = 248; + /** + * @dev `address destination` bit shift. + */ + uint256 internal constant DESTINATION_BIT_SHIFT = 96; + /** + * @dev `uint128 value` bit shift. + */ + uint256 internal constant VALUE_BIT_SHIFT = 128; + /** + * @dev `bool call` bit shift. + */ + uint256 internal constant CALL_BIT_SHIFT = 120; + /** + * @dev `bytes4 replyCode` bit shift. + */ + uint256 internal constant REPLY_CODE_BIT_SHIFT = 88; + + /** + * @dev Mailboxed message discriminant. + */ + uint256 internal constant MAILBOXED_MESSAGE = 0x00; + /** + * @dev Reply message discriminant. + */ + uint256 internal constant REPLY_MESSAGE = 0x01; + /** + * @dev Value claim discriminant. + */ + uint256 internal constant VALUE_CLAIM = 0x02; + + /** + * @dev `uint8 discriminant` size. + */ + uint256 internal constant DISCRIMINANT_SIZE = 1; + /** + * @dev `bytes32 messageId` size. + */ + uint256 internal constant MESSAGE_ID_SIZE = 32; + /** + * @dev `address destination` size. + */ + uint256 internal constant DESTINATION_SIZE = 20; + /** + * @dev `uint128 value` size. + */ + uint256 internal constant VALUE_SIZE = 16; + /** + * @dev `bool call` size. + */ + uint256 internal constant CALL_SIZE = 1; + /** + * @dev `bytes4 replyCode` size. + */ + uint256 internal constant REPLY_CODE_SIZE = 4; + /** + * @dev `bytes32 replyTo` size. + */ + uint256 internal constant REPLY_TO_SIZE = 32; + + /** + * @dev `MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE` common header size. + */ + uint256 internal constant COMMON_HEADER_SIZE = 68; + + /** + * @dev `DISCRIMINANT_SIZE` offset. + */ + uint256 internal constant OFFSET1 = 1; + /** + * @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE` offset. + */ + uint256 internal constant OFFSET2 = 33; + /** + * @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE` offset. + */ + uint256 internal constant OFFSET3 = 53; + /** + * @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE + REPLY_CODE_SIZE` offset. + */ + uint256 internal constant OFFSET4 = 74; + + /** + * @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE` size. + */ + uint256 internal constant MAILBOXED_MESSAGE_SIZE = 70; + /** + * @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE + REPLY_CODE_SIZE + REPLY_TO_SIZE` size. + */ + uint256 internal constant REPLY_MESSAGE_SIZE = 106; + /** + * @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE` size. + */ + uint256 internal constant VALUE_CLAIM_SIZE = 69; + /** * @dev Address of the `Router` contract, which is the sole authority * to modify the state of this contract and transfer funds from it. @@ -128,6 +228,9 @@ contract Mirror is IMirror { */ bool isSmall; + mapping(bytes32 stateHash => bytes32 merkleRoot) private _merkleRoots; + mapping(bytes32 messageId => bool isProcessed) private _processedMessages; + /** * @dev Minimal constructor that only sets the immutable `Router` address. * @param _router The address of the `Router` contract. @@ -256,6 +359,27 @@ contract Mirror is IMirror { } } + /* # View functions */ + + /** + * @dev Returns the outgoing actions merkle root for the specified state hash. + * Returns `bytes32(0)` if no merkle root was provided for the given state hash. + * @param _stateHash Target state hash. + * @return merkleRoot Outgoing actions merkle root for the specified state hash. + */ + function getOutgoingActionsMerkleRoot(bytes32 _stateHash) external view returns (bytes32) { + return _merkleRoots[_stateHash]; + } + + /** + * @dev Checks if outgoing action was already processed. + * @param _messageId Message ID to check. + * @return isProcessed `true` if outgoing action was already processed, `false` otherwise. + */ + function isOutgoingActionsProcessed(bytes32 _messageId) external view returns (bool) { + return _processedMessages[_messageId]; + } + /* # Primary Gear logic (external calls) */ /** @@ -348,6 +472,29 @@ contract Mirror is IMirror { require(success, TransferLockedValueToInheritorExternalFailed()); } + /* # Primary Gear logic (external calls, pull-based methods) */ + + /** + * @dev Processes outgoing action. + * @param _stateHash The state hash for which to process outgoing action. + * @param _totalLeaves The total number of leaves in the merkle tree. + * @param _leafIndex The index of the leaf for which to process outgoing action. + * @param _payload The payload for the outgoing action. + * @param _proof The merkle proof for the claim. + */ + function processOutgoingAction( + bytes32 _stateHash, + uint256 _totalLeaves, + uint256 _leafIndex, + bytes calldata _payload, + bytes32[] calldata _proof + ) external { + require( + _tryParseAndProcessOutgoingAction(_stateHash, _totalLeaves, _leafIndex, _payload, _proof), + OutgoingActionInvalidPayload() + ); + } + /* # Router-driven state and funds management */ /** @@ -412,9 +559,9 @@ contract Mirror is IMirror { bytes32 messagesHashesHash = _sendMessages(_transition.messages); /** - * @dev Send value for each claim. + * @dev Sets merkle root of outgoing actions for the new state hash. */ - bytes32 valueClaimsHash = _claimValues(_transition.valueClaims); + _updateOutgoingActionsMerkleRoot(_transition.newStateHash, _transition.merkleRoot); /** * @dev Set inheritor if exited. @@ -442,13 +589,138 @@ contract Mirror is IMirror { _transition.inheritor, _transition.valueToReceive, _transition.valueToReceiveNegativeSign, - valueClaimsHash, + _transition.merkleRoot, messagesHashesHash ); } /* # Private calls, related to primary Gear logic */ + // TODO: add documentation for this function + function _tryParseAndProcessOutgoingAction( + bytes32 _stateHash, + uint256 _totalLeaves, + uint256 _leafIndex, + bytes calldata _payload, + bytes32[] calldata _proof + ) private returns (bool) { + if (!(_payload.length > 0)) { + return false; + } + + uint256 discriminant; + assembly ("memory-safe") { + // `DISCRIMINANT_BIT_SHIFT` right bit shift is required to remove extra bits since `calldataload` returns `uint256` + discriminant := shr(DISCRIMINANT_BIT_SHIFT, calldataload(_payload.offset)) + } + + // TODO: support more discriminants when implementing mailboxed and reply messages + /*if (!(discriminant >= MAILBOXED_MESSAGE && discriminant <= VALUE_CLAIM)) { + return false; + }*/ + if (!(discriminant == VALUE_CLAIM)) { + return false; + } + + if (!(_payload.length > COMMON_HEADER_SIZE)) { + return false; + } + + // we use offset `OFFSET1 = DISCRIMINANT_SIZE` to skip `uint8 discriminant` + bytes32 messageId; + assembly ("memory-safe") { + messageId := calldataload(add(_payload.offset, OFFSET1)) + } + + require(!_processedMessages[messageId], OutgoingActionAlreadyProcessed(messageId)); + + // we use offset `OFFSET2 = DISCRIMINANT_SIZE + MESSAGE_ID_SIZE` to skip `uint8 discriminant` and `bytes32 messageId` + address destination; + assembly ("memory-safe") { + // `DESTINATION_BIT_SHIFT` right bit shift is required to remove extra bits since `calldataload` returns `uint256` + destination := shr(DESTINATION_BIT_SHIFT, calldataload(add(_payload.offset, OFFSET2))) + } + + // we use offset `OFFSET3 = DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE` to skip `uint8 discriminant`, `bytes32 messageId`, + // `address destination` + uint256 word; + assembly ("memory-safe") { + word := calldataload(add(_payload.offset, OFFSET3)) + } + + // casting to 'uint128' is safe because value is represented as `uint128` on our chain + // forge-lint: disable-next-line(unsafe-typecast) + uint128 value = uint128(word >> VALUE_BIT_SHIFT); + + if (discriminant == VALUE_CLAIM) { + if (!(_payload.length == VALUE_CLAIM_SIZE)) { + return false; + } + } + + // casting to 'uint8' is safe because `bool call` is represented as `uint8` + // forge-lint: disable-next-line(unsafe-typecast) + bool call = uint8(word >> CALL_BIT_SHIFT) != 0; + // casting to 'uint32' is safe because `bytes4 replyCode` is represented as `uint32` + // forge-lint: disable-next-line(unsafe-typecast) + bytes4 replyCode = bytes4(uint32(word >> REPLY_CODE_BIT_SHIFT)); + + bytes calldata payload = _payload[:0]; // empty payload by default + if (discriminant == MAILBOXED_MESSAGE) { + if (!(_payload.length >= MAILBOXED_MESSAGE_SIZE)) { + return false; + } + payload = _payload[MAILBOXED_MESSAGE_SIZE:]; + } else if (discriminant == REPLY_MESSAGE) { + if (!(_payload.length >= REPLY_MESSAGE_SIZE)) { + return false; + } + payload = _payload[REPLY_MESSAGE_SIZE:]; + } + + // we use offset `OFFSET4 = DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE + REPLY_CODE_SIZE` to skip `uint8 discriminant`, `bytes32 messageId`, + // `address destination`, `uint128 value`, `bool call`, `bytes4 replyCode` + bytes32 replyTo; + assembly ("memory-safe") { + replyTo := calldataload(add(_payload.offset, OFFSET4)) + } + + bytes32 merkleRoot = _merkleRoots[_stateHash]; + require(merkleRoot != bytes32(0), OutgoingActionMerkleRootNotFound(_stateHash)); + + bytes32 outgoingActionHash; + + if (discriminant == MAILBOXED_MESSAGE) { + // TODO: implement hash for mailboxed message + } else if (discriminant == REPLY_MESSAGE) { + // TODO: implement hash for reply message + } else if (discriminant == VALUE_CLAIM) { + outgoingActionHash = Gear.valueClaimHash(messageId, destination, value); + } + + require( + BinaryMerkleTree.verifyProofCalldata(merkleRoot, _proof, _totalLeaves, _leafIndex, outgoingActionHash), + OutgoingActionInvalidMerkleProof() + ); + + _processedMessages[messageId] = true; + + if (discriminant == MAILBOXED_MESSAGE) { + // TODO: implement mailboxed message + } else if (discriminant == REPLY_MESSAGE) { + // TODO: implement reply message + } else if (discriminant == VALUE_CLAIM) { + // TODO: remove gas limit 5_000 after full migration to merkle roots + // currently it's ok bcz we don't use claims as smart-contracts + bool success = _transferEther(destination, value); + require(success, ValueClaimFailed(messageId, value)); + + emit ValueClaimed(messageId, value); + } + + return true; + } + /** * @dev Internal implementation of `sendMessage` function. * This function is used to send message to the program and emit `MessageQueueingRequested` event. @@ -706,8 +978,7 @@ contract Mirror is IMirror { topic1 != ReplyCallFailed.selector && topic1 != ValueClaimed.selector && topic1 != TransferLockedValueToInheritorFailed.selector && - topic1 != ReplyTransferFailed.selector && - topic1 != ValueClaimFailed.selector + topic1 != ReplyTransferFailed.selector )) { return false; } @@ -923,36 +1194,12 @@ contract Mirror is IMirror { // TODO (breathx): claimValues will fail if the program is exited: keep the funds on `Router`. /** - * @dev Internal function to claim values from messages in mailbox. - * It transfers value to each claim destination and emits appropriate events: - * - `ValueClaimed` event is emitted if transfer is successful - * - `ValueClaimFailed` event is emitted if transfer fails - * @param _claims The array of value claims to be claimed. - * @return claimsHash The hash of the claimed values. - */ - function _claimValues(Gear.ValueClaim[] calldata _claims) private returns (bytes32 claimsHash) { - uint256 claimsLen = _claims.length; - uint256 claimsHashesSize = claimsLen * 32; - uint256 claimsHashesMemPtr = Memory.allocate(claimsHashesSize); - uint256 offset = 0; - - for (uint256 i = 0; i < claimsLen; i++) { - Gear.ValueClaim calldata claim = _claims[i]; - bytes32 claimHash = Gear.valueClaimHash(claim.messageId, claim.destination, claim.value); - Memory.writeWordAsBytes32(claimsHashesMemPtr, offset, claimHash); - unchecked { - offset += 32; - } - - bool success = _transferEther(claim.destination, claim.value); - if (success) { - emit ValueClaimed(claim.messageId, claim.value); - } else { - emit ValueClaimFailed(claim.messageId, claim.value); - } - } - - return Hashes.efficientKeccak256AsBytes32(claimsHashesMemPtr, 0, claimsHashesSize); + * @dev Internal function to pass outgoing actions as merkle root. + * @param _stateHash The state hash for which the merkle root of outgoing actions is set. + * @param _merkleRoot The merkle root of outgoing actions for the state hash. + */ + function _updateOutgoingActionsMerkleRoot(bytes32 _stateHash, bytes32 _merkleRoot) private { + _merkleRoots[_stateHash] = _merkleRoot; } // TODO (breathx): allow zero inheritor in `Router`. diff --git a/ethexe/contracts/src/MirrorProxy.sol b/ethexe/contracts/src/MirrorProxy.sol index 9ccb7a7bdf5..6e907baa8d3 100644 --- a/ethexe/contracts/src/MirrorProxy.sol +++ b/ethexe/contracts/src/MirrorProxy.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; /** * @dev This is custom implementation of ERC-1167 (Minimal Proxy Contract) @@ -52,6 +53,9 @@ contract MirrorProxy { bool public exited; address public inheritor; address public initializer; + bool isSmall; + mapping(bytes32 stateHash => bytes32 merkleRoot) public _merkleRoots; + mapping(bytes32 messageId => bool isProcessed) public _processedMessages; constructor() payable {} @@ -73,11 +77,11 @@ contract MirrorProxy { _delegate(); } - // TODO: We also need to regenerate `Clones.sol` file so that all new Sails framework programs include this new method. - // Unfortunately, old `MirrorProxy` contracts won't have this method. + // TODO #5380: We also need to regenerate `Clones.sol` file so that all new Sails framework programs include this new method. + // Unfortunately, old `MirrorProxy` contracts won't have this method. // - // We might also need to update `ERC1967Utils.IMPLEMENTATION_SLOT` in all `Mirror`-s that are set to - // `isSmall = true` to the new `Mirror` address so that this method is visible on Etherscan. + // We might also need to update `ERC1967Utils.IMPLEMENTATION_SLOT` in all `Mirror`-s that are set to + // `isSmall = true` to the new `Mirror` address so that this method is visible on Etherscan. function executableBalanceTopUpWithPermit(uint128 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external { _delegate(); } @@ -86,6 +90,17 @@ contract MirrorProxy { _delegate(); } + // TODO #5380: We also need to regenerate `Clones.sol` file. + function processOutgoingAction( + bytes32 stateHash, + uint256 totalLeaves, + uint256 leafIndex, + bytes calldata payload, + bytes32[] calldata proof + ) external { + _delegate(); + } + /* MirrorProxy implementation */ function _delegate() internal { diff --git a/ethexe/contracts/src/MirrorProxySmall.sol b/ethexe/contracts/src/MirrorProxySmall.sol index ced1f4bbe00..05f6688e0ff 100644 --- a/ethexe/contracts/src/MirrorProxySmall.sol +++ b/ethexe/contracts/src/MirrorProxySmall.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; /** * @dev This is custom implementation of ERC-1167 (Minimal Proxy Contract) diff --git a/ethexe/contracts/src/POAMiddleware.sol b/ethexe/contracts/src/POAMiddleware.sol index cc314db9ae8..07085665ad9 100644 --- a/ethexe/contracts/src/POAMiddleware.sol +++ b/ethexe/contracts/src/POAMiddleware.sol @@ -1,11 +1,10 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; -import { - ReentrancyGuardTransientUpgradeable -} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; +import {ReentrancyGuardTransient} from "@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol"; import {SlotDerivation} from "@openzeppelin/contracts/utils/SlotDerivation.sol"; import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; import {IMiddleware} from "src/IMiddleware.sol"; @@ -13,13 +12,7 @@ import {IPOAMiddleware} from "src/IPOAMiddleware.sol"; import {Gear} from "src/libraries/Gear.sol"; import {MapWithTimeData} from "src/libraries/MapWithTimeData.sol"; -contract POAMiddleware is - IMiddleware, - IPOAMiddleware, - OwnableUpgradeable, - ReentrancyGuardTransientUpgradeable, - UUPSUpgradeable -{ +contract POAMiddleware is IMiddleware, IPOAMiddleware, OwnableUpgradeable, ReentrancyGuardTransient, UUPSUpgradeable { // keccak256(abi.encode(uint256(keccak256("middleware.storage.Slot")) - 1)) & ~bytes32(uint256(0xff)); bytes32 private constant SLOT_STORAGE = 0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100; // keccak256(abi.encode(uint256(keccak256("poa_middleware.storage.Slot")) - 1)) & ~bytes32(uint256(0xff)); @@ -34,7 +27,6 @@ contract POAMiddleware is function initialize(InitParams calldata _params) public initializer { __Ownable_init(_params.owner); - __ReentrancyGuardTransient_init(); _setStorageSlot("middleware.storage.MiddlewareV1"); Storage storage $ = _storage(); diff --git a/ethexe/contracts/src/Router.sol b/ethexe/contracts/src/Router.sol index ffca0795918..b445aef07af 100644 --- a/ethexe/contracts/src/Router.sol +++ b/ethexe/contracts/src/Router.sol @@ -1,14 +1,13 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import {NoncesUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol"; import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; -import { - ReentrancyGuardTransientUpgradeable -} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol"; import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; +import {ReentrancyGuardTransient} from "@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol"; import {SlotDerivation} from "@openzeppelin/contracts/utils/SlotDerivation.sol"; import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; @@ -30,7 +29,7 @@ contract Router is PausableUpgradeable, EIP712Upgradeable, NoncesUpgradeable, - ReentrancyGuardTransientUpgradeable, + ReentrancyGuardTransient, UUPSUpgradeable { // keccak256(abi.encode(uint256(keccak256("router.storage.Slot")) - 1)) & ~bytes32(uint256(0xff)) @@ -85,7 +84,6 @@ contract Router is __Pausable_init(); __EIP712_init(EIP712_NAME, EIP712_VERSION); __Nonces_init(); - __ReentrancyGuardTransient_init(); // Because of validator storages impl we have to check, that current timestamp is greater than 0. // forge-lint: disable-start(block-timestamp) diff --git a/ethexe/contracts/src/WrappedVara.sol b/ethexe/contracts/src/WrappedVara.sol index 5b54aac55ca..9f3a99db8e7 100644 --- a/ethexe/contracts/src/WrappedVara.sol +++ b/ethexe/contracts/src/WrappedVara.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; diff --git a/ethexe/contracts/src/libraries/BinaryMerkleTree.sol b/ethexe/contracts/src/libraries/BinaryMerkleTree.sol new file mode 100644 index 00000000000..1ef5c2df3ea --- /dev/null +++ b/ethexe/contracts/src/libraries/BinaryMerkleTree.sol @@ -0,0 +1,162 @@ +// Copyright (C) Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +pragma solidity ^0.8.35; + +import {Hashes} from "@openzeppelin/contracts/utils/cryptography/Hashes.sol"; + +/** + * @dev These functions deal with verification of Merkle Tree proofs. + * + * The tree and the proofs can be generated using our + * https://docs.rs/binary-merkle-tree[Rust library]. + * You will find a quickstart guide in the readme. + * + * https://github.com/paritytech/polkadot-sdk/blob/master/substrate/utils/binary-merkle-tree/src/lib.rs + */ +library BinaryMerkleTree { + /** + * @dev Verifies a Merkle proof against a given root hash. + * + * The proof is NOT expected to contain leaf hash as the first + * element, but only all adjacent nodes required to eventually by process of + * concatenating and hashing end up with given root hash. + * + * The proof must not contain the root hash. + * + * @param root Root hash of the Merkle tree. + * @param proof Merkle proof, which is an array of hashes. + * @param numberOfLeaves Total number of leaves in the Merkle tree. + * @param leafIndex Index of the leaf in the Merkle tree. + * @param leafHash Hash of the leaf to verify. + * @return isValid `true` if the proof is valid, `false` otherwise. + */ + function verifyProofCalldata( + bytes32 root, + bytes32[] calldata proof, + uint256 numberOfLeaves, + uint256 leafIndex, + bytes32 leafHash + ) internal pure returns (bool) { + if (leafIndex >= numberOfLeaves) { + return false; + } + + return processProofCalldata(proof, numberOfLeaves, leafIndex, leafHash) == root; + } + + /** + * @dev Processes a Merkle proof and returns the computed root hash. + * + * @param proof Merkle proof, which is an array of hashes. + * @param numberOfLeaves Total number of leaves in the Merkle tree. + * @param leafIndex Index of the leaf in the Merkle tree. + * @param leafHash Hash of the leaf to verify. + * @return computed Root hash of the Merkle tree. + */ + function processProofCalldata(bytes32[] calldata proof, uint256 numberOfLeaves, uint256 leafIndex, bytes32 leafHash) + internal + pure + returns (bytes32) + { + uint256 position = leafIndex; + uint256 width = numberOfLeaves; + bytes32 computed = leafHash; + + for (uint256 i = 0; i < proof.length; i++) { + bytes32 a = computed; + bytes32 b = proof[i]; + + uint256 positionPlusOne; + unchecked { + positionPlusOne = position + 1; + } + + // TODO: consider optimizing this (use OpenZeppelin's `commutativeKeccak256` instead of `efficientKeccak256`). + if (position % 2 == 1 || positionPlusOne == width) { + computed = Hashes.efficientKeccak256(b, a); + } else { + computed = Hashes.efficientKeccak256(a, b); + } + + position /= 2; + unchecked { + width = ((width - 1) / 2) + 1; + } + } + + return computed; + } + + /** + * @dev Verifies a Merkle proof against a given root hash. + * + * The proof is NOT expected to contain leaf hash as the first + * element, but only all adjacent nodes required to eventually by process of + * concatenating and hashing end up with given root hash. + * + * The proof must not contain the root hash. + * + * @param root Root hash of the Merkle tree. + * @param proof Merkle proof, which is an array of hashes. + * @param numberOfLeaves Total number of leaves in the Merkle tree. + * @param leafIndex Index of the leaf in the Merkle tree. + * @param leafHash Hash of the leaf to verify. + * @return isValid `true` if the proof is valid, `false` otherwise. + */ + function verifyProof( + bytes32 root, + bytes32[] memory proof, + uint256 numberOfLeaves, + uint256 leafIndex, + bytes32 leafHash + ) internal pure returns (bool) { + if (leafIndex >= numberOfLeaves) { + return false; + } + + return processProof(proof, numberOfLeaves, leafIndex, leafHash) == root; + } + + /** + * @dev Processes a Merkle proof and returns the computed root hash. + * + * @param proof Merkle proof, which is an array of hashes. + * @param numberOfLeaves Total number of leaves in the Merkle tree. + * @param leafIndex Index of the leaf in the Merkle tree. + * @param leafHash Hash of the leaf to verify. + * @return computed Root hash of the Merkle tree. + */ + function processProof(bytes32[] memory proof, uint256 numberOfLeaves, uint256 leafIndex, bytes32 leafHash) + internal + pure + returns (bytes32) + { + uint256 position = leafIndex; + uint256 width = numberOfLeaves; + bytes32 computed = leafHash; + + for (uint256 i = 0; i < proof.length; i++) { + bytes32 a = computed; + bytes32 b = proof[i]; + + uint256 positionPlusOne; + unchecked { + positionPlusOne = position + 1; + } + + // TODO: consider optimizing this (use OpenZeppelin's `commutativeKeccak256` instead of `efficientKeccak256`). + if (position % 2 == 1 || positionPlusOne == width) { + computed = Hashes.efficientKeccak256(b, a); + } else { + computed = Hashes.efficientKeccak256(a, b); + } + + position /= 2; + unchecked { + width = ((width - 1) / 2) + 1; + } + } + + return computed; + } +} diff --git a/ethexe/contracts/src/libraries/Clones.sol b/ethexe/contracts/src/libraries/Clones.sol index 38446d48c71..4b371cfb66b 100644 --- a/ethexe/contracts/src/libraries/Clones.sol +++ b/ethexe/contracts/src/libraries/Clones.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {Memory} from "frost-secp256k1-evm/utils/Memory.sol"; @@ -33,43 +34,51 @@ library Clones { /** * @dev Size is taken from second column: `forge build --sizes | grep "| MirrorProxy "`. */ - uint256 size = 0x02fb; + uint256 size = 0x03fd; uint256 memPtr = Memory.allocate(size); /** * @dev This bytecode is taken from: `cat out/MirrorProxy.sol/MirrorProxy.json | jq -r ".bytecode.object"` */ - Memory.writeWord(memPtr, 0x0000, 0x6080806040526102e990816100128239f3fe60806040526004361061029f575f); - Memory.writeWord(memPtr, 0x0020, 0x3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c327); - Memory.writeWord(memPtr, 0x0040, 0x146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c); - Memory.writeWord(memPtr, 0x0060, 0xdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe); - Memory.writeWord(memPtr, 0x0080, 0xd0e014610093578063c60496921461008e5763e43f34330361029f5761028a56); - Memory.writeWord(memPtr, 0x00a0, 0x5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b61); - Memory.writeWord(memPtr, 0x00c0, 0x0178565b610156565b610119565b346100e7575f3660031901126100e7576002); - Memory.writeWord(memPtr, 0x00e0, 0x5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b9181); - Memory.writeWord(memPtr, 0x0100, 0x601f840112156100e75782359167ffffffffffffffff83116100e75760208381); - Memory.writeWord(memPtr, 0x0120, 0x8601950101116100e757565b60403660031901126100e75760043567ffffffff); - Memory.writeWord(memPtr, 0x0140, 0xffffffff81116100e7576101459036906004016100eb565b5050602435801515); - Memory.writeWord(memPtr, 0x0160, 0x1461029f575f80fd5b346100e7575f3660031901126100e757602060ff600254); - Memory.writeWord(memPtr, 0x0180, 0x166040519015158152f35b346100e7575f3660031901126100e75760205f5460); - Memory.writeWord(memPtr, 0x01a0, 0x4051908152f35b600435906fffffffffffffffffffffffffffffffff82168203); - Memory.writeWord(memPtr, 0x01c0, 0x6100e757565b346100e75760203660031901126100e7576101cc610194565b50); - Memory.writeWord(memPtr, 0x01e0, 0x61029f565b60403660031901126100e75760243567ffffffffffffffff811161); - Memory.writeWord(memPtr, 0x0200, 0x00e7576101fe9036906004016100eb565b505061029f565b346100e757602036); - Memory.writeWord(memPtr, 0x0220, 0x60031901121561029f575f80fd5b346100e7575f3660031901126100e7576003); - Memory.writeWord(memPtr, 0x0240, 0x546040516001600160a01b039091168152602090f35b346100e7575f36600319); - Memory.writeWord(memPtr, 0x0260, 0x01126100e7576020600154604051908152f35b346100e75760a0366003190112); - Memory.writeWord(memPtr, 0x0280, 0x6100e757610279610194565b5060443560ff81161461029f575f80fd5b346100); - Memory.writeWord(memPtr, 0x02a0, 0xe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f60); + Memory.writeWord(memPtr, 0x0000, 0x6080806040526103eb90816100128239f3fe6080604052600436106103a1575f); + Memory.writeWord(memPtr, 0x0020, 0x3560e01c806301b4832c146100eb57806336a52a18146100e657806342129d00); + Memory.writeWord(memPtr, 0x0040, 0x146100e15780635ce6c327146100dc578063701da98e146100d7578063704ed5); + Memory.writeWord(memPtr, 0x0060, 0x42146100d25780637a8e0cdd146100cd57806391d5a64c146100c85780639ce1); + Memory.writeWord(memPtr, 0x0080, 0x10d7146100c3578063a984a575146100be578063affed0e0146100b9578063c6); + Memory.writeWord(memPtr, 0x00a0, 0x049692146100b4578063e43f3433146100af5763ed3513fc036103a157610328); + Memory.writeWord(memPtr, 0x00c0, 0x565b610313565b6102e9565b6102cc565b61029d565b610275565b61025f565b); + Memory.writeWord(memPtr, 0x00e0, 0x61022c565b61020d565b6101d2565b6101b0565b610173565b610119565b3461); + Memory.writeWord(memPtr, 0x0100, 0x0115576020366003190112610115576004355f526004602052602060405f2054); + Memory.writeWord(memPtr, 0x0120, 0x604051908152f35b5f80fd5b34610115575f3660031901126101155760025460); + Memory.writeWord(memPtr, 0x0140, 0x405160089190911c6001600160a01b03168152602090f35b9181601f84011215); + Memory.writeWord(memPtr, 0x0160, 0x6101155782359167ffffffffffffffff83116101155760208381860195010111); + Memory.writeWord(memPtr, 0x0180, 0x61011557565b60403660031901126101155760043567ffffffffffffffff8111); + Memory.writeWord(memPtr, 0x01a0, 0x6101155761019f903690600401610145565b5050602435801515146103a1575f); + Memory.writeWord(memPtr, 0x01c0, 0x80fd5b34610115575f36600319011261011557602060ff600254166040519015); + Memory.writeWord(memPtr, 0x01e0, 0x158152f35b34610115575f3660031901126101155760205f54604051908152f3); + Memory.writeWord(memPtr, 0x0200, 0x5b600435906fffffffffffffffffffffffffffffffff8216820361011557565b); + Memory.writeWord(memPtr, 0x0220, 0x34610115576020366003190112610115576102266101ee565b506103a1565b60); + Memory.writeWord(memPtr, 0x0240, 0x403660031901126101155760243567ffffffffffffffff811161011557610258); + Memory.writeWord(memPtr, 0x0260, 0x903690600401610145565b50506103a1565b3461011557602036600319011215); + Memory.writeWord(memPtr, 0x0280, 0x6103a1575f80fd5b34610115575f366003190112610115576003546040516001); + Memory.writeWord(memPtr, 0x02a0, 0x600160a01b039091168152602090f35b34610115576020366003190112610115); + Memory.writeWord(memPtr, 0x02c0, 0x576004355f526005602052602060ff60405f2054166040519015158152f35b34); + Memory.writeWord(memPtr, 0x02e0, 0x610115575f366003190112610115576020600154604051908152f35b34610115); + Memory.writeWord(memPtr, 0x0300, 0x5760a0366003190112610115576103026101ee565b5060443560ff8116146103); + Memory.writeWord(memPtr, 0x0320, 0xa1575f80fd5b34610115575f366003190112156103a1575f80fd5b3461011557); + Memory.writeWord(memPtr, 0x0340, 0x60a03660031901126101155760643567ffffffffffffffff8111610115576103); + Memory.writeWord(memPtr, 0x0360, 0x59903690600401610145565b505060843567ffffffffffffffff811161011557); + Memory.writeWord(memPtr, 0x0380, 0x366023820112156101155780600401359067ffffffffffffffff821161011557); + Memory.writeWord(memPtr, 0x03a0, 0x602490369260051b010111156103a1575f80fd5b63e6fabc0960e01b5f526020); /** * @dev Write `Router` address into the deployed bytecode. */ Memory.writeWord( memPtr, - 0x02c0, - (0x04817300000000000000000000000000000000000000005afa156100e7575f80) | (uint256(uint160(router)) << 72) + 0x03c0, + (0x5f6004817300000000000000000000000000000000000000005afa1561011557) | (uint256(uint160(router)) << 56) ); - Memory.writeWord(memPtr, 0x02e0, 0x8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd0000000000); + Memory.writeWord(memPtr, 0x03e0, 0x5f808051368280378136915af43d5f803e156103e7573d5ff35b3d5ffd000000); assembly ("memory-safe") { instance := create2(value, memPtr, size, salt) diff --git a/ethexe/contracts/src/libraries/ClonesSmall.sol b/ethexe/contracts/src/libraries/ClonesSmall.sol index fe4cfeec407..1d08e8dbe49 100644 --- a/ethexe/contracts/src/libraries/ClonesSmall.sol +++ b/ethexe/contracts/src/libraries/ClonesSmall.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {Memory} from "frost-secp256k1-evm/utils/Memory.sol"; diff --git a/ethexe/contracts/src/libraries/Gear.sol b/ethexe/contracts/src/libraries/Gear.sol index d290b621346..42e8e77d25f 100644 --- a/ethexe/contracts/src/libraries/Gear.sol +++ b/ethexe/contracts/src/libraries/Gear.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {SlotDerivation} from "@openzeppelin/contracts/utils/SlotDerivation.sol"; import {TransientSlot} from "@openzeppelin/contracts/utils/TransientSlot.sol"; @@ -55,6 +56,19 @@ library Gear { */ uint128 public constant WVARA_PER_SECOND = 10_000_000_000_000; + /** + * @dev Mailboxed message discriminant. + */ + uint8 internal constant MAILBOXED_MESSAGE = 0x00; + /** + * @dev Reply message discriminant. + */ + uint8 internal constant REPLY_MESSAGE = 0x01; + /** + * @dev Value claim discriminant. + */ + uint8 internal constant VALUE_CLAIM = 0x02; + /* # Errors */ /** @@ -464,9 +478,10 @@ library Gear { */ bool valueToReceiveNegativeSign; /** - * @dev Array of value claims. + * @dev Merkle root of outgoing actions (mailboxed messages, replies and value claims). + * Currently, we use it only for value claims. */ - ValueClaim[] valueClaims; + bytes32 merkleRoot; /** * @dev Array of messages. */ @@ -659,6 +674,39 @@ library Gear { return keccak256(abi.encodePacked(_messageId, _destination, _value)); } + /** + * @dev Packs the `ValueClaim` for outgoing actions merkle tree. + * @param _messageId The message ID. + * @param _destination The destination address. + * @param _value The value of the claim. + * @return packed The packed value claim. + */ + function valueClaimPack(bytes32 _messageId, address _destination, uint128 _value) + internal + pure + returns (bytes memory) + { + return abi.encodePacked(VALUE_CLAIM, _messageId, _destination, _value); + } + + /** + * @dev Computes the hash of a `ValueClaim`. + * @param valueClaim The value claim for which to compute the hash. + * @return hash The computed hash. + */ + function outgoingActionHash(ValueClaim memory valueClaim) internal pure returns (bytes32) { + return valueClaimHash(valueClaim.messageId, valueClaim.destination, valueClaim.value); + } + + /** + * @dev Packs the `ValueClaim` for outgoing actions merkle tree. + * @param valueClaim Value claim to pack. + * @return packed The packed value claim. + */ + function pack(ValueClaim memory valueClaim) internal pure returns (bytes memory) { + return valueClaimPack(valueClaim.messageId, valueClaim.destination, valueClaim.value); + } + /** * @dev Computes the hash of `StateTransition`. * @param actor The actor address. @@ -667,7 +715,7 @@ library Gear { * @param inheritor The inheritor address. * @param valueToReceive The value to receive. * @param valueToReceiveNegativeSign The sign of the value to receive. - * @param valueClaimsHash The hash of the value claims. + * @param merkleRoot The merkle root of outgoing actions. * @param messagesHashesHash The hash of the messages hashes. */ function stateTransitionHash( @@ -677,7 +725,7 @@ library Gear { address inheritor, uint128 valueToReceive, bool valueToReceiveNegativeSign, - bytes32 valueClaimsHash, + bytes32 merkleRoot, bytes32 messagesHashesHash ) internal pure returns (bytes32) { return keccak256( @@ -688,7 +736,7 @@ library Gear { inheritor, valueToReceive, valueToReceiveNegativeSign, - valueClaimsHash, + merkleRoot, messagesHashesHash ) ); diff --git a/ethexe/contracts/src/libraries/MapWithTimeData.sol b/ethexe/contracts/src/libraries/MapWithTimeData.sol index a727fc40eed..8a645f93ae9 100644 --- a/ethexe/contracts/src/libraries/MapWithTimeData.sol +++ b/ethexe/contracts/src/libraries/MapWithTimeData.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; import {Time} from "@openzeppelin/contracts/utils/types/Time.sol"; diff --git a/ethexe/contracts/src/libraries/SSTORE2.sol b/ethexe/contracts/src/libraries/SSTORE2.sol index 8c6c50aa2ef..5bad358e6ea 100644 --- a/ethexe/contracts/src/libraries/SSTORE2.sol +++ b/ethexe/contracts/src/libraries/SSTORE2.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; /** * @dev Library for storing byte arrays of data on Ethereum via `CREATE2` opcode. diff --git a/ethexe/contracts/test/Base.t.sol b/ethexe/contracts/test/Base.t.sol index 32b5fb50f58..d11f48e44c0 100644 --- a/ethexe/contracts/test/Base.t.sol +++ b/ethexe/contracts/test/Base.t.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; @@ -76,7 +77,6 @@ contract Base is POCBaseTest { vm.warp(eraDuration * 100); // set up the symbiotic ecosystem - SYMBIOTIC_CORE_PROJECT_ROOT = "lib/symbiotic-core/"; super.setUp(); vm.startPrank(admin, admin); @@ -308,14 +308,6 @@ contract Base is POCBaseTest { for (uint256 i = 0; i < _commitment.transitions.length; i++) { Gear.StateTransition memory _transition = _commitment.transitions[i]; - bytes memory _valueClaimsBytes; - for (uint256 j = 0; j < _transition.valueClaims.length; j++) { - Gear.ValueClaim memory claim = _transition.valueClaims[j]; - _valueClaimsBytes = bytes.concat( - _valueClaimsBytes, Gear.valueClaimHash(claim.messageId, claim.destination, claim.value) - ); - } - bytes memory _messagesHashesBytes; for (uint256 j = 0; j < _transition.messages.length; j++) { _messagesHashesBytes = bytes.concat(_messagesHashesBytes, Gear.messageHash(_transition.messages[j])); @@ -328,7 +320,7 @@ contract Base is POCBaseTest { _transition.inheritor, _transition.valueToReceive, _transition.valueToReceiveNegativeSign, - keccak256(_valueClaimsBytes), + _transition.merkleRoot, keccak256(_messagesHashesBytes) ); } diff --git a/ethexe/contracts/test/BinaryMerkleTree.t.sol b/ethexe/contracts/test/BinaryMerkleTree.t.sol new file mode 100644 index 00000000000..baf2cfcb62c --- /dev/null +++ b/ethexe/contracts/test/BinaryMerkleTree.t.sol @@ -0,0 +1,128 @@ +// Copyright (C) Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +pragma solidity ^0.8.35; + +import {Test} from "forge-std/Test.sol"; +import {BinaryMerkleTree} from "src/libraries/BinaryMerkleTree.sol"; + +contract BinaryMerkleTreeWrapper { + function verifyProofCalldata( + bytes32 root, + bytes32[] calldata proof, + uint256 numberOfLeaves, + uint256 leafIndex, + bytes32 leafHash + ) external pure returns (bool) { + return BinaryMerkleTree.verifyProofCalldata(root, proof, numberOfLeaves, leafIndex, leafHash); + } + + function verifyProof( + bytes32 root, + bytes32[] memory proof, + uint256 numberOfLeaves, + uint256 leafIndex, + bytes32 leafHash + ) external pure returns (bool) { + return BinaryMerkleTree.verifyProof(root, proof, numberOfLeaves, leafIndex, leafHash); + } +} + +contract BinaryMerkleTreeTest is Test { + BinaryMerkleTreeWrapper public binaryMerkleTreeWrapper; + + function setUp() public { + binaryMerkleTreeWrapper = new BinaryMerkleTreeWrapper(); + } + + function test_VerifyProofCalldata() public view { + // [] + bytes32 root = 0; + bytes32[] memory proof = new bytes32[](0); + uint256 numberOfLeaves = 0; + uint256 leafIndex = 0; + bytes32 leafHash = 0; + assertFalse(binaryMerkleTreeWrapper.verifyProofCalldata(root, proof, numberOfLeaves, leafIndex, leafHash)); + + // [H256::from([0x11; 32])] + root = 0x1111111111111111111111111111111111111111111111111111111111111111; + proof = new bytes32[](0); + numberOfLeaves = 1; + leafIndex = 0; + leafHash = 0x1111111111111111111111111111111111111111111111111111111111111111; + assertTrue(binaryMerkleTreeWrapper.verifyProofCalldata(root, proof, numberOfLeaves, leafIndex, leafHash)); + + // [H256::from([0x11; 32]), H256::from([0x22; 32])] + root = 0x3e92e0db88d6afea9edc4eedf62fffa4d92bcdfc310dccbe943747fe8302e871; + proof = new bytes32[](1); + proof[0] = 0x2222222222222222222222222222222222222222222222222222222222222222; + numberOfLeaves = 2; + leafIndex = 0; + leafHash = 0x1111111111111111111111111111111111111111111111111111111111111111; + assertTrue(binaryMerkleTreeWrapper.verifyProofCalldata(root, proof, numberOfLeaves, leafIndex, leafHash)); + + // [H256::from([0x11; 32]), H256::from([0x22; 32])] + root = 0x3e92e0db88d6afea9edc4eedf62fffa4d92bcdfc310dccbe943747fe8302e871; + proof = new bytes32[](1); + proof[0] = 0x1111111111111111111111111111111111111111111111111111111111111111; + numberOfLeaves = 2; + leafIndex = 1; + leafHash = 0x2222222222222222222222222222222222222222222222222222222222222222; + assertTrue(binaryMerkleTreeWrapper.verifyProofCalldata(root, proof, numberOfLeaves, leafIndex, leafHash)); + + // [H256::from([0x11; 32]), H256::from([0x22; 32]), H256::from([0x33; 32])] + root = 0x54cc47e0e0577877f9bdb2727df082c5f7a97451f4dd1695cbbfde937f4376c4; + proof = new bytes32[](2); + proof[0] = 0x2222222222222222222222222222222222222222222222222222222222222222; + proof[1] = 0x3333333333333333333333333333333333333333333333333333333333333333; + numberOfLeaves = 3; + leafIndex = 0; + leafHash = 0x1111111111111111111111111111111111111111111111111111111111111111; + assertTrue(binaryMerkleTreeWrapper.verifyProofCalldata(root, proof, numberOfLeaves, leafIndex, leafHash)); + } + + function test_VerifyProof() public view { + // [] + bytes32 root = 0; + bytes32[] memory proof = new bytes32[](0); + uint256 numberOfLeaves = 0; + uint256 leafIndex = 0; + bytes32 leafHash = 0; + assertFalse(binaryMerkleTreeWrapper.verifyProof(root, proof, numberOfLeaves, leafIndex, leafHash)); + + // [H256::from([0x11; 32])] + root = 0x1111111111111111111111111111111111111111111111111111111111111111; + proof = new bytes32[](0); + numberOfLeaves = 1; + leafIndex = 0; + leafHash = 0x1111111111111111111111111111111111111111111111111111111111111111; + assertTrue(binaryMerkleTreeWrapper.verifyProof(root, proof, numberOfLeaves, leafIndex, leafHash)); + + // [H256::from([0x11; 32]), H256::from([0x22; 32])] + root = 0x3e92e0db88d6afea9edc4eedf62fffa4d92bcdfc310dccbe943747fe8302e871; + proof = new bytes32[](1); + proof[0] = 0x2222222222222222222222222222222222222222222222222222222222222222; + numberOfLeaves = 2; + leafIndex = 0; + leafHash = 0x1111111111111111111111111111111111111111111111111111111111111111; + assertTrue(binaryMerkleTreeWrapper.verifyProof(root, proof, numberOfLeaves, leafIndex, leafHash)); + + // [H256::from([0x11; 32]), H256::from([0x22; 32])] + root = 0x3e92e0db88d6afea9edc4eedf62fffa4d92bcdfc310dccbe943747fe8302e871; + proof = new bytes32[](1); + proof[0] = 0x1111111111111111111111111111111111111111111111111111111111111111; + numberOfLeaves = 2; + leafIndex = 1; + leafHash = 0x2222222222222222222222222222222222222222222222222222222222222222; + assertTrue(binaryMerkleTreeWrapper.verifyProof(root, proof, numberOfLeaves, leafIndex, leafHash)); + + // [H256::from([0x11; 32]), H256::from([0x22; 32]), H256::from([0x33; 32])] + root = 0x54cc47e0e0577877f9bdb2727df082c5f7a97451f4dd1695cbbfde937f4376c4; + proof = new bytes32[](2); + proof[0] = 0x2222222222222222222222222222222222222222222222222222222222222222; + proof[1] = 0x3333333333333333333333333333333333333333333333333333333333333333; + numberOfLeaves = 3; + leafIndex = 0; + leafHash = 0x1111111111111111111111111111111111111111111111111111111111111111; + assertTrue(binaryMerkleTreeWrapper.verifyProof(root, proof, numberOfLeaves, leafIndex, leafHash)); + } +} diff --git a/ethexe/contracts/test/DemoCaller.sol b/ethexe/contracts/test/DemoCaller.sol index 6215b02235a..fb8d40093a5 100644 --- a/ethexe/contracts/test/DemoCaller.sol +++ b/ethexe/contracts/test/DemoCaller.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {IMirror} from "src/IMirror.sol"; import {IDemoCallbacks} from "test/IDemoCallbacks.sol"; diff --git a/ethexe/contracts/test/IDemoCallbacks.sol b/ethexe/contracts/test/IDemoCallbacks.sol index 7f8fe2c8b52..f528be32f96 100644 --- a/ethexe/contracts/test/IDemoCallbacks.sol +++ b/ethexe/contracts/test/IDemoCallbacks.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {ICallbacks} from "src/ICallbacks.sol"; diff --git a/ethexe/contracts/test/Middleware.t.sol b/ethexe/contracts/test/Middleware.t.sol index aa76b2a89ee..facf25e50c1 100644 --- a/ethexe/contracts/test/Middleware.t.sol +++ b/ethexe/contracts/test/Middleware.t.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.34; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; @@ -284,6 +285,8 @@ contract MiddlewareTest is Base { /* Try to register vault from another factory*/ + string memory SYMBIOTIC_CORE_PROJECT_ROOT = "dependencies/symbiotic-core-main/"; + IVaultFactory vaultFactory2 = IVaultFactory( deployCode( string.concat(SYMBIOTIC_CORE_PROJECT_ROOT, "out/VaultFactory.sol/VaultFactory.json"), abi.encode(owner) diff --git a/ethexe/contracts/test/POC.t.sol b/ethexe/contracts/test/POC.t.sol index 4ce7a51437c..c14e7ddf9e3 100644 --- a/ethexe/contracts/test/POC.t.sol +++ b/ethexe/contracts/test/POC.t.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; @@ -14,6 +15,7 @@ contract POCTest is Base { using MessageHashUtils for address; using EnumerableMap for EnumerableMap.AddressToUintMap; using FROSTOffchain for SigningKey; + using Gear for Gear.ValueClaim; bytes32 private constant EIP712_DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"); @@ -105,8 +107,12 @@ contract POCTest is Base { rollBlocks(1); commitCode(_privateKeys, Gear.CodeCommitment(_codeId, true)); + address _piggyBank = doPiggyBankValueClaim(_privateKeys, _codeId); + IMirror actor = IMirror(_piggyBank); + assertEq(actor.stateHash(), bytes32(uint256(2))); + address _ping = deployPing(_privateKeys, _codeId); - IMirror actor = IMirror(_ping); + actor = IMirror(_ping); assertEq(actor.stateHash(), bytes32(uint256(1))); assertEq(actor.nonce(), uint256(1)); @@ -240,7 +246,7 @@ contract POCTest is Base { address(0), // inheritor uint128(0), // value to receive false, // value to receive negative sign - new Gear.ValueClaim[](0), // value claims + bytes32(uint256(2)), // merkle root _outgoingMessages // messages ); @@ -277,7 +283,7 @@ contract POCTest is Base { address(0), // inheritor 0, // value to receive false, // value to receive negative sign - new Gear.ValueClaim[](0), // value claims + bytes32(uint256(3)), // merkle root _outgoingMessages // messages ); @@ -285,4 +291,44 @@ contract POCTest is Base { emit IMirror.Message(0, admin, "PONG", 0); commitBlock(_privateKeys, _transitions); } + + function doPiggyBankValueClaim(uint256[] memory _privateKeys, bytes32 _codeId) + private + returns (address _piggyBank) + { + vm.startPrank(admin, admin); + { + vm.expectEmit(true, false, false, false); + emit IRouter.ProgramCreated(address(0), bytes32(uint256(1))); + _piggyBank = router.createProgram(_codeId, "salt1", address(0)); + vm.deal(address(router), 1 ether); + } + vm.stopPrank(); + + address depositReceiver = makeAddr("depositReceiver"); + assertEq(depositReceiver.balance, 0 ether); + + Gear.ValueClaim memory valueClaim = + Gear.ValueClaim({messageId: bytes32(uint256(2)), destination: depositReceiver, value: 1 ether}); + + // [H256::from([0x11; 32]), H256::from([0x22; 32]), valueClaim.outgoingActionHash()] + Gear.StateTransition[] memory _transitions = new Gear.StateTransition[](1); + _transitions[0] = Gear.StateTransition( + _piggyBank, // actor id + bytes32(uint256(2)), // new state hash + false, // exited + address(0), // inheritor + uint128(1 ether), // value to receive + false, // value to receive negative sign + 0x929735af7aa0c21d834f89c8f8e54d2a0342eb202f7940192f9c8b49fe6de4eb, // merkle root + new Gear.Message[](0) // messages + ); + + commitBlock(_privateKeys, _transitions); + + bytes32[] memory proof = new bytes32[](1); + proof[0] = 0x3e92e0db88d6afea9edc4eedf62fffa4d92bcdfc310dccbe943747fe8302e871; + IMirror(_piggyBank).processOutgoingAction(_transitions[0].newStateHash, 3, 2, valueClaim.pack(), proof); + assertEq(depositReceiver.balance, 1 ether); + } } diff --git a/ethexe/contracts/test/Router.t.sol b/ethexe/contracts/test/Router.t.sol index dc1b16f7f59..e60b4be0ee4 100644 --- a/ethexe/contracts/test/Router.t.sol +++ b/ethexe/contracts/test/Router.t.sol @@ -1,5 +1,6 @@ +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {Vm} from "forge-std/Test.sol"; diff --git a/ethexe/db/src/database.rs b/ethexe/db/src/database.rs index 15c6f2caa78..17afc0b92b1 100644 --- a/ethexe/db/src/database.rs +++ b/ethexe/db/src/database.rs @@ -10,12 +10,12 @@ use crate::{ use anyhow::{Context, Result}; use delegate::delegate; use ethexe_common::{ - BlockHeader, CodeBlobInfo, HashOf, ProgramStates, Schedule, ValidatorsVec, + BlockHeader, CodeBlobInfo, HashOf, OutgoingActions, ProgramStates, Schedule, ValidatorsVec, db::{ BlockMeta, BlockMetaStorageRO, BlockMetaStorageRW, CodesStorageRO, CodesStorageRW, CompactMb, ConfigStorageRO, DBConfig, DBGlobals, GlobalsStorageRO, GlobalsStorageRW, HashStorageRO, InjectedStorageRO, InjectedStorageRW, MbMeta, MbStorageRO, MbStorageRW, - OnChainStorageRO, OnChainStorageRW, + OnChainStorageRO, OnChainStorageRW, OutgoingActionStorageRO, OutgoingActionStorageRW, }, events::BlockEvent, gear::StateTransition, @@ -67,6 +67,8 @@ enum Key { Promise(HashOf) = 26, TxReceipt(HashOf) = 27, + + OutgoingActions(H256) = 28, } impl Key { @@ -84,7 +86,9 @@ impl Key { bytes.extend(self.prefix()); match self { - Self::BlockSmallData(hash) | Self::BlockEvents(hash) => bytes.extend(hash.as_ref()), + Self::BlockSmallData(hash) | Self::BlockEvents(hash) | Self::OutgoingActions(hash) => { + bytes.extend(hash.as_ref()) + } Self::ValidatorSet(era_index) => { bytes.extend(era_index.to_le_bytes()); @@ -712,6 +716,27 @@ impl InjectedStorageRW for RawDatabase { } } +impl OutgoingActionStorageRO for RawDatabase { + fn outgoing_actions(&self, state_hash: H256) -> Option { + self.kv + .get(&Key::OutgoingActions(state_hash).to_bytes()) + .map(|data| { + OutgoingActions::decode(&mut data.as_slice()) + .expect("Failed to decode data into `OutgoingActions`") + }) + } +} + +impl OutgoingActionStorageRW for RawDatabase { + fn set_outgoing_actions(&self, state_hash: H256, outgoing_actions: OutgoingActions) { + tracing::trace!("Set outgoing actions for state {state_hash}"); + self.kv.put( + &Key::OutgoingActions(state_hash).to_bytes(), + outgoing_actions.encode(), + ); + } +} + #[derive(derive_more::Debug, Clone)] #[debug("Database(CAS + KV)")] pub struct Database { @@ -982,6 +1007,22 @@ impl ConfigStorageRO for Database { } } +impl OutgoingActionStorageRO for Database { + delegate::delegate! { + to self.raw { + fn outgoing_actions(&self, state_hash: H256) -> Option; + } + } +} + +impl OutgoingActionStorageRW for Database { + delegate::delegate! { + to self.raw { + fn set_outgoing_actions(&self, state_hash: H256, outgoing_actions: OutgoingActions); + } + } +} + #[cfg(feature = "mock")] mod mock { use super::*; diff --git a/ethexe/db/src/dump/collect.rs b/ethexe/db/src/dump/collect.rs index 106bbce2279..37a606659b7 100644 --- a/ethexe/db/src/dump/collect.rs +++ b/ethexe/db/src/dump/collect.rs @@ -254,6 +254,7 @@ impl BlobCollector<'_, S> { } fn collect_program_state(&mut self, state_hash: H256) -> Result<()> { + // TODO: do we need to collect it here? let Some(ProgramState { program, canonical_queue, @@ -265,6 +266,7 @@ impl BlobCollector<'_, S> { // in the program state blob (see read_and_decode below) balance: _, executable_balance: _, + outgoing_actions_counter: _, }) = self.read_and_decode::(state_hash)? else { return Ok(()); diff --git a/ethexe/db/src/iterator.rs b/ethexe/db/src/iterator.rs index 4bddfc41874..c828d70c28e 100644 --- a/ethexe/db/src/iterator.rs +++ b/ethexe/db/src/iterator.rs @@ -652,6 +652,7 @@ where mailbox_hash, balance: _, executable_balance: _, + outgoing_actions_counter: _, } = program_state; if let Program::Active(ActiveProgram { diff --git a/ethexe/ethereum/Cargo.toml b/ethexe/ethereum/Cargo.toml index 4d2173fb2e8..b04ae2c9573 100644 --- a/ethexe/ethereum/Cargo.toml +++ b/ethexe/ethereum/Cargo.toml @@ -30,11 +30,13 @@ alloy = { workspace = true, features = [ "signers", "kzg", ] } +binary-merkle-tree.workspace = true futures.workspace = true log.workspace = true tracing.workspace = true tokio = { workspace = true, features = ["process"] } serde.workspace = true +sp-runtime.workspace = true nonempty.workspace = true rand.workspace = true gear-workspace-hack.workspace = true diff --git a/ethexe/ethereum/abi/BatchMulticall.json b/ethexe/ethereum/abi/BatchMulticall.json index fbd754140b8..4e78dce0a4a 100644 --- a/ethexe/ethereum/abi/BatchMulticall.json +++ b/ethexe/ethereum/abi/BatchMulticall.json @@ -1 +1 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createProgramBatch","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.CreateProgramCall[]","components":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initPayload","type":"bytes","internalType":"bytes"},{"name":"initValue","type":"uint128","internalType":"uint128"},{"name":"topUpValue","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"sendMessageBatch","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.MessageCall[]","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"SendMessageBatchResult","inputs":[{"name":"messageIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"ApproveFailed","inputs":[]},{"type":"error","name":"InsufficientValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RefundFailed","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]}],"bytecode":{"object":"0x608080604052346015576108b7908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;;;;;;;;;;;;;;:::i;:::-;3392:27;;;;:::i;:::-;3430:16;1190:5485;3462:13;1190:5485;3477:16;;;;;;3581:9;3561:70;3581:9;;;3569:21;;;3561:70;:::i;:::-;1190:5485;3662:16;;;;;;3581:9;;;3907:20;;3903:163;;3642:251;4081:34;1190:5485;;;;;;;;;;;;;;;:::i;:::-;4081:34;;;1190:5485;3903:163;1190:5485;3581:9;;3984:20;3581:9;;;3984:20;:::i;:::-;3961:10;:48;;;;:::i;:::-;;1190:5485;;;3903:163;;;1190:5485;;;;;;;;;3680:3;3734:8;;;;;:::i;:::-;1190:5485;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;3836:17;1190:5485;3836:17;3855:19;-1:-1:-1;;;;;3836:17:153;1190:5485;3789:93;3836:17;;;:::i;:::-;1190:5485;3855:19;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;;3789:93;;1190:5485;3789:93;;;:::i;:::-;;;;;;;;;1190:5485;3789:93;;;3680:3;1190:5485;3757:125;;;;;;:::i;:::-;1190:5485;;3647:13;;3789:93;;1190:5485;3789:93;;;;;;;;;1190:5485;3789:93;;;:::i;:::-;;;1190:5485;;;;;;;3789:93;;1190:5485;;;;3789:93;;;-1:-1:-1;3789:93:153;;;1190:5485;;;;;;;;;3495:3;3526:8;3514:26;1190:5485;3526:8;-1:-1:-1;;;;;3526:14:153;1190:5485;3526:8;;;;;:::i;:::-;:14;;:::i;:::-;1190:5485;3514:26;;:::i;:::-;3495:3;1190:5485;3462:13;;1190:5485;;;-1:-1:-1;;1190:5485:153;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1190:5485:153;;;;4847:27;;;:::i;:::-;1190:5485;;;;;;4919:20;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;;;1190:5485;4919:20;;;1190:5485;-1:-1:-1;1190:5485:153;;;;-1:-1:-1;;1190:5485:153;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;4951:16;4983:13;1190:5485;5016:3;4998:16;;;;;;1190:5485;;;;;;;;;;;;;;;;;5104:39;5116:27;;;;-1:-1:-1;;;;;5116:27:153;;;:::i;5104:39::-;5178:9;5158:70;5178:9;;;5166:21;;;5158:70;:::i;:::-;1190:5485;;5263:85;1190:5485;;;;;;;;;5263:85;;1190:5485;;;5263:85;;1190:5485;5310:22;;;1190:5485;;;;;5342:4;1190:5485;;;;5263:85;;;;;;;1190:5485;5263:85;;;5016:3;5362:25;;;;;:::i;:::-;-1:-1:-1;;;;;1190:5485:153;;;;;;;5455:28;;;-1:-1:-1;;;;;5455:28:153;;;:::i;:::-;1190:5485;5451:390;;5016:3;5917:27;;5891:92;5917:27;5946:29;-1:-1:-1;;;;;5917:27:153;1190:5485;5917:27;;:::i;:::-;1190:5485;5946:29;1190:5485;5946:29;;;;:::i;5891:92::-;;;;;;;;;1190:5485;5891:92;;;5016:3;1190:5485;5997:25;;;;;;:::i;:::-;1190:5485;;4983:13;;5891:92;;1190:5485;5891:92;;;;;;;;;1190:5485;5891:92;;;:::i;:::-;;;1190:5485;;;;;;;5891:92;;;;;-1:-1:-1;5891:92:153;;5451:390;5582:28;1190:5485;-1:-1:-1;;;;;5263:85:153;5582:28;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;5536:75;;5555:10;1190:5485;5536:75;;1190:5485;5342:4;1190:5485;;;;;;;;;5536:75;;;;;;;1190:5485;5536:75;;;5451:390;1190:5485;;;;5702:28;1190:5485;-1:-1:-1;;;;;1190:5485:153;5702:28;;;:::i;:::-;1190:5485;;;;;;;;;;;5677:54;;;1190:5485;5677:54;;1190:5485;;;;;;5677:54;;;;;;;1190:5485;5677:54;;;5451:390;1190:5485;;;;5797:28;;;:::i;:::-;5767:59;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;5767:59;;1190:5485;;5767:59;;1190:5485;;5767:59;1190:5485;5767:59;;;;;;;;;;-1:-1:-1;;;;;5917:27:153;5946:29;5767:59;5891:92;5767:59;1190:5485;5767:59;;;5451:390;;;;;;;;;;;5767:59;1190:5485;5767:59;;;:::i;:::-;;;;1190:5485;;;;;;;;;5677:54;;;;1190:5485;5677:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1190:5485;;;;;;;;;5536:75;;;;1190:5485;5536:75;;;;;;;;;:::i;:::-;;;;5263:85;;;;;1190:5485;5263:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;4998:16;;;;;5178:9;6047:20;;6043:163;;4978:1055;1190:5485;;;;;;;;;;;;;;;5116:27;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;6043:163;1190:5485;5178:9;;6124:20;5178:9;;;6124:20;:::i;:::-;6101:10;:48;;;;:::i;:::-;;1190:5485;;;6043:163;;;4919:20;;;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;:::i;:::-;;;;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1190:5485:153;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;:::i;:::-;;;;-1:-1:-1;1190:5485:153;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RefundFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"messageIds\",\"type\":\"bytes32[]\"}],\"name\":\"SendMessageBatchResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"initValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"topUpValue\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.CreateProgramCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"createProgramBatch\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.MessageCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"sendMessageBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts. This is useful for reducing number of transactions when interacting with multiple Mirror contracts. Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network. Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster. This contract allows both batching of messages and batching of program creations. Furthermore, when creating programs, it offers full flow: - approval of WVARA ERC20 token for created program (Mirror) - top-up of executable balance for created program in WVARA ERC20 token (Mirror) - sending initial message to created program (Mirror) All of these actions are done in one transaction, which is much faster than doing them separately.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"Approving WVARA token for created program (Mirror) failed.\"}],\"InsufficientValue(uint256,uint256)\":[{\"details\":\"There is not enough value sent with transaction to cover calls.\"}],\"RefundFailed()\":[{\"details\":\"Refunding excess value to sender failed.\"}],\"TransferFromFailed()\":[{\"details\":\"Transferring WVARA token from sender to this contract failed.\"}]},\"events\":{\"SendMessageBatchResult(bytes32[])\":{\"details\":\"Emitted when batch of messages is sent. It contains array of message ids that were sent.\"}},\"kind\":\"dev\",\"methods\":{\"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])\":{\"details\":\"Creates batch of programs through Router contract and sends initial messages to them.\",\"params\":{\"calls\":\"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\",\"router\":\"The Router contract address.\"},\"returns\":{\"_0\":\"programIds Array of created program IDs.\",\"_1\":\"messageIds Array of message IDs for the initial messages sent to each created program.\"}},\"sendMessageBatch((address,bytes,uint128)[])\":{\"details\":\"Sends batch of messages through Mirror contracts.\",\"params\":{\"calls\":\"Array of `MessageCall` structs representing calls to send messages through Mirror contracts.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BatchMulticall.sol\":\"BatchMulticall\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf\",\"dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApproveFailed"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"RefundFailed"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[{"internalType":"bytes32[]","name":"messageIds","type":"bytes32[]","indexed":false}],"type":"event","name":"SendMessageBatchResult","anonymous":false},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"struct BatchMulticall.CreateProgramCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initPayload","type":"bytes"},{"internalType":"uint128","name":"initValue","type":"uint128"},{"internalType":"uint128","name":"topUpValue","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"createProgramBatch","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct BatchMulticall.MessageCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"sendMessageBatch"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":{"details":"Creates batch of programs through Router contract and sends initial messages to them.","params":{"calls":"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.","router":"The Router contract address."},"returns":{"_0":"programIds Array of created program IDs.","_1":"messageIds Array of message IDs for the initial messages sent to each created program."}},"sendMessageBatch((address,bytes,uint128)[])":{"details":"Sends batch of messages through Mirror contracts.","params":{"calls":"Array of `MessageCall` structs representing calls to send messages through Mirror contracts."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74","urls":["bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf","dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":73729,"exportedSymbols":{"BatchMulticall":[73728],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006]},"nodeType":"SourceUnit","src":"74:6602:153","nodes":[{"id":73346,"nodeType":"PragmaDirective","src":"74:24:153","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":73348,"nodeType":"ImportDirective","src":"100:40:153","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":73347,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73350,"nodeType":"ImportDirective","src":"141:40:153","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":73349,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"149:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73352,"nodeType":"ImportDirective","src":"182:50:153","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":73351,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"190:12:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73728,"nodeType":"ContractDefinition","src":"1190:5485:153","nodes":[{"id":73360,"nodeType":"ErrorDefinition","src":"1312:58:153","nodes":[],"documentation":{"id":73354,"nodeType":"StructuredDocumentation","src":"1220:87:153","text":" @dev There is not enough value sent with transaction to cover calls."},"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"1318:17:153","parameters":{"id":73359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73356,"mutability":"mutable","name":"expected","nameLocation":"1344:8:153","nodeType":"VariableDeclaration","scope":73360,"src":"1336:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73355,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73358,"mutability":"mutable","name":"actual","nameLocation":"1362:6:153","nodeType":"VariableDeclaration","scope":73360,"src":"1354:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1354:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1335:34:153"}},{"id":73363,"nodeType":"ErrorDefinition","src":"1445:21:153","nodes":[],"documentation":{"id":73361,"nodeType":"StructuredDocumentation","src":"1376:64:153","text":" @dev Refunding excess value to sender failed."},"errorSelector":"f0c49d44","name":"RefundFailed","nameLocation":"1451:12:153","parameters":{"id":73362,"nodeType":"ParameterList","parameters":[],"src":"1463:2:153"}},{"id":73366,"nodeType":"ErrorDefinition","src":"1562:27:153","nodes":[],"documentation":{"id":73364,"nodeType":"StructuredDocumentation","src":"1472:85:153","text":" @dev Transferring WVARA token from sender to this contract failed."},"errorSelector":"7939f424","name":"TransferFromFailed","nameLocation":"1568:18:153","parameters":{"id":73365,"nodeType":"ParameterList","parameters":[],"src":"1586:2:153"}},{"id":73369,"nodeType":"ErrorDefinition","src":"1682:22:153","nodes":[],"documentation":{"id":73367,"nodeType":"StructuredDocumentation","src":"1595:82:153","text":" @dev Approving WVARA token for created program (Mirror) failed."},"errorSelector":"3e3f8f73","name":"ApproveFailed","nameLocation":"1688:13:153","parameters":{"id":73368,"nodeType":"ParameterList","parameters":[],"src":"1701:2:153"}},{"id":73375,"nodeType":"EventDefinition","src":"1827:51:153","nodes":[],"anonymous":false,"documentation":{"id":73370,"nodeType":"StructuredDocumentation","src":"1710:112:153","text":" @dev Emitted when batch of messages is sent. It contains array of message ids that were sent."},"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"1833:22:153","parameters":{"id":73374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73373,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"1866:10:153","nodeType":"VariableDeclaration","scope":73375,"src":"1856:20:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1856:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73372,"nodeType":"ArrayTypeName","src":"1856:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1855:22:153"}},{"id":73383,"nodeType":"StructDefinition","src":"2150:96:153","nodes":[],"canonicalName":"BatchMulticall.MessageCall","documentation":{"id":73376,"nodeType":"StructuredDocumentation","src":"1884:261:153","text":" @dev Represents call to send message through Mirror contract.\n It will be sent through `IMirror(mirror).sendMessage{value: value}(payload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73378,"mutability":"mutable","name":"mirror","nameLocation":"2187:6:153","nodeType":"VariableDeclaration","scope":73383,"src":"2179:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73377,"name":"address","nodeType":"ElementaryTypeName","src":"2179:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73380,"mutability":"mutable","name":"payload","nameLocation":"2209:7:153","nodeType":"VariableDeclaration","scope":73383,"src":"2203:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73379,"name":"bytes","nodeType":"ElementaryTypeName","src":"2203:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73382,"mutability":"mutable","name":"value","nameLocation":"2234:5:153","nodeType":"VariableDeclaration","scope":73383,"src":"2226:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73381,"name":"uint128","nodeType":"ElementaryTypeName","src":"2226:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"2157:11:153","scope":73728,"visibility":"public"},{"id":73395,"nodeType":"StructDefinition","src":"2922:160:153","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","documentation":{"id":73384,"nodeType":"StructuredDocumentation","src":"2252:665:153","text":" @dev Represents call to create Mirror through Router contract.\n It will be sent through `IRouter(router).createProgram(codeId, salt, address(this))`,\n where `overrideInitializer` is always `address(this)` since we want to send initial message from this contract.\n Then, if `topUpValue` is greater than 0, it will approve WVARA token and top up executable balance for created Mirror.\n Finally, it will send initial message to created Mirror through `IMirror(programId).sendMessage{value: initValue}(initPayload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73386,"mutability":"mutable","name":"codeId","nameLocation":"2965:6:153","nodeType":"VariableDeclaration","scope":73395,"src":"2957:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2957:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73388,"mutability":"mutable","name":"salt","nameLocation":"2989:4:153","nodeType":"VariableDeclaration","scope":73395,"src":"2981:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2981:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73390,"mutability":"mutable","name":"initPayload","nameLocation":"3009:11:153","nodeType":"VariableDeclaration","scope":73395,"src":"3003:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73389,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73392,"mutability":"mutable","name":"initValue","nameLocation":"3038:9:153","nodeType":"VariableDeclaration","scope":73395,"src":"3030:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73391,"name":"uint128","nodeType":"ElementaryTypeName","src":"3030:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":73394,"mutability":"mutable","name":"topUpValue","nameLocation":"3065:10:153","nodeType":"VariableDeclaration","scope":73395,"src":"3057:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73393,"name":"uint128","nodeType":"ElementaryTypeName","src":"3057:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"2929:17:153","scope":73728,"visibility":"public"},{"id":73517,"nodeType":"FunctionDefinition","src":"3279:843:153","nodes":[],"body":{"id":73516,"nodeType":"Block","src":"3352:770:153","nodes":[],"statements":[{"assignments":[73407],"declarations":[{"constant":false,"id":73407,"mutability":"mutable","name":"messageIds","nameLocation":"3379:10:153","nodeType":"VariableDeclaration","scope":73516,"src":"3362:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3362:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73406,"nodeType":"ArrayTypeName","src":"3362:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73414,"initialValue":{"arguments":[{"expression":{"id":73411,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3406:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3412:6:153","memberName":"length","nodeType":"MemberAccess","src":"3406:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3392:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":73408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3396:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73409,"nodeType":"ArrayTypeName","src":"3396:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3362:57:153"},{"assignments":[73416],"declarations":[{"constant":false,"id":73416,"mutability":"mutable","name":"consumed","nameLocation":"3438:8:153","nodeType":"VariableDeclaration","scope":73516,"src":"3430:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3430:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73417,"nodeType":"VariableDeclarationStatement","src":"3430:16:153"},{"body":{"id":73436,"nodeType":"Block","src":"3500:51:153","statements":[{"expression":{"id":73434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73429,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3514:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":73430,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3526:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73432,"indexExpression":{"id":73431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3532:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3526:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3535:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3526:14:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3514:26:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73435,"nodeType":"ExpressionStatement","src":"3514:26:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3477:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73423,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3481:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3487:6:153","memberName":"length","nodeType":"MemberAccess","src":"3481:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3477:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73437,"initializationExpression":{"assignments":[73419],"declarations":[{"constant":false,"id":73419,"mutability":"mutable","name":"i","nameLocation":"3470:1:153","nodeType":"VariableDeclaration","scope":73437,"src":"3462:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73418,"name":"uint256","nodeType":"ElementaryTypeName","src":"3462:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73421,"initialValue":{"hexValue":"30","id":73420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3474:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3462:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3495:3:153","subExpression":{"id":73426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3497:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73428,"nodeType":"ExpressionStatement","src":"3495:3:153"},"nodeType":"ForStatement","src":"3457:94:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73439,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3569:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73440,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3581:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3585:5:153","memberName":"value","nodeType":"MemberAccess","src":"3581:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3569:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73444,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3610:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73445,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3620:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3624:5:153","memberName":"value","nodeType":"MemberAccess","src":"3620:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73443,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"3592:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73438,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3561:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73449,"nodeType":"ExpressionStatement","src":"3561:70:153"},{"body":{"id":73485,"nodeType":"Block","src":"3685:208:153","statements":[{"assignments":[73463],"declarations":[{"constant":false,"id":73463,"mutability":"mutable","name":"messageCall","nameLocation":"3720:11:153","nodeType":"VariableDeclaration","scope":73485,"src":"3699:32:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":73462,"nodeType":"UserDefinedTypeName","pathNode":{"id":73461,"name":"MessageCall","nameLocations":["3699:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3699:11:153"},"referencedDeclaration":73383,"src":"3699:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":73467,"initialValue":{"baseExpression":{"id":73464,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3734:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73466,"indexExpression":{"id":73465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3740:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3734:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"3699:43:153"},{"expression":{"id":73483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73468,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"3757:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73470,"indexExpression":{"id":73469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3768:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3757:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73479,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3855:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3867:7:153","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73380,"src":"3855:19:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3876:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"expression":{"id":73472,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3797:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3809:6:153","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73378,"src":"3797:18:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73471,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"3789:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":73474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3817:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"3789:39:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73476,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3836:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3848:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3836:17:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"3789:65:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:93:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3757:125:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73484,"nodeType":"ExpressionStatement","src":"3757:125:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3662:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73455,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3666:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3672:6:153","memberName":"length","nodeType":"MemberAccess","src":"3666:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3662:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73486,"initializationExpression":{"assignments":[73451],"declarations":[{"constant":false,"id":73451,"mutability":"mutable","name":"i","nameLocation":"3655:1:153","nodeType":"VariableDeclaration","scope":73486,"src":"3647:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73453,"initialValue":{"hexValue":"30","id":73452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3659:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3647:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3680:3:153","subExpression":{"id":73458,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3682:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73460,"nodeType":"ExpressionStatement","src":"3680:3:153"},"nodeType":"ForStatement","src":"3642:251:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73487,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3907:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3918:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3922:5:153","memberName":"value","nodeType":"MemberAccess","src":"3918:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3907:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73511,"nodeType":"IfStatement","src":"3903:163:153","trueBody":{"id":73510,"nodeType":"Block","src":"3929:137:153","statements":[{"assignments":[73492,null],"declarations":[{"constant":false,"id":73492,"mutability":"mutable","name":"success","nameLocation":"3949:7:153","nodeType":"VariableDeclaration","scope":73510,"src":"3944:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73491,"name":"bool","nodeType":"ElementaryTypeName","src":"3944:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73503,"initialValue":{"arguments":[{"hexValue":"","id":73501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4006:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73493,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3961:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:153","memberName":"sender","nodeType":"MemberAccess","src":"3961:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3972:4:153","memberName":"call","nodeType":"MemberAccess","src":"3961:15:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73496,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3984:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3988:5:153","memberName":"value","nodeType":"MemberAccess","src":"3984:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73498,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3996:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3984:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3961:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3943:66:153"},{"expression":{"arguments":[{"id":73505,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73492,"src":"4031:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73506,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"4040:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73504,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4023:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73509,"nodeType":"ExpressionStatement","src":"4023:32:153"}]}},{"eventCall":{"arguments":[{"id":73513,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"4104:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":73512,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73375,"src":"4081:22:153","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":73514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4081:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73515,"nodeType":"EmitStatement","src":"4076:39:153"}]},"documentation":{"id":73396,"nodeType":"StructuredDocumentation","src":"3088:186:153","text":" @dev Sends batch of messages through Mirror contracts.\n @param calls Array of `MessageCall` structs representing calls to send messages through Mirror contracts."},"functionSelector":"564abd5f","implemented":true,"kind":"function","modifiers":[],"name":"sendMessageBatch","nameLocation":"3288:16:153","parameters":{"id":73401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73400,"mutability":"mutable","name":"calls","nameLocation":"3328:5:153","nodeType":"VariableDeclaration","scope":73517,"src":"3305:28:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":73398,"nodeType":"UserDefinedTypeName","pathNode":{"id":73397,"name":"MessageCall","nameLocations":["3305:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3305:11:153"},"referencedDeclaration":73383,"src":"3305:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":73399,"nodeType":"ArrayTypeName","src":"3305:13:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"3304:30:153"},"returnParameters":{"id":73402,"nodeType":"ParameterList","parameters":[],"src":"3352:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73722,"nodeType":"FunctionDefinition","src":"4570:1684:153","nodes":[],"body":{"id":73721,"nodeType":"Block","src":"4740:1514:153","nodes":[],"statements":[{"assignments":[73538],"declarations":[{"constant":false,"id":73538,"mutability":"mutable","name":"programIds","nameLocation":"4767:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4750:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"4750:7:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73537,"nodeType":"ArrayTypeName","src":"4750:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":73545,"initialValue":{"arguments":[{"expression":{"id":73542,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4794:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4800:6:153","memberName":"length","nodeType":"MemberAccess","src":"4794:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4780:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":73539,"name":"address","nodeType":"ElementaryTypeName","src":"4784:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73540,"nodeType":"ArrayTypeName","src":"4784:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":73544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4780:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4750:57:153"},{"assignments":[73550],"declarations":[{"constant":false,"id":73550,"mutability":"mutable","name":"messageIds","nameLocation":"4834:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4817:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4817:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73549,"nodeType":"ArrayTypeName","src":"4817:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73557,"initialValue":{"arguments":[{"expression":{"id":73554,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4861:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4867:6:153","memberName":"length","nodeType":"MemberAccess","src":"4861:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4847:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":73551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4851:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73552,"nodeType":"ArrayTypeName","src":"4851:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4817:57:153"},{"assignments":[73560],"declarations":[{"constant":false,"id":73560,"mutability":"mutable","name":"wvara","nameLocation":"4898:5:153","nodeType":"VariableDeclaration","scope":73721,"src":"4885:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":73559,"nodeType":"UserDefinedTypeName","pathNode":{"id":73558,"name":"IWrappedVara","nameLocations":["4885:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"4885:12:153"},"referencedDeclaration":75006,"src":"4885:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":73566,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73562,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"4919:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74684,"src":"4919:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":73564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73561,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"4906:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":73565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4906:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"4885:55:153"},{"assignments":[73568],"declarations":[{"constant":false,"id":73568,"mutability":"mutable","name":"consumed","nameLocation":"4959:8:153","nodeType":"VariableDeclaration","scope":73721,"src":"4951:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73567,"name":"uint256","nodeType":"ElementaryTypeName","src":"4951:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73569,"nodeType":"VariableDeclarationStatement","src":"4951:16:153"},{"body":{"id":73690,"nodeType":"Block","src":"5021:1012:153","statements":[{"assignments":[73583],"declarations":[{"constant":false,"id":73583,"mutability":"mutable","name":"createProgramCall","nameLocation":"5062:17:153","nodeType":"VariableDeclaration","scope":73690,"src":"5035:44:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":73582,"nodeType":"UserDefinedTypeName","pathNode":{"id":73581,"name":"CreateProgramCall","nameLocations":["5035:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"5035:17:153"},"referencedDeclaration":73395,"src":"5035:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":73587,"initialValue":{"baseExpression":{"id":73584,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5082:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73586,"indexExpression":{"id":73585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5088:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5082:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"5035:55:153"},{"expression":{"id":73591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73588,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5104:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":73589,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5116:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5134:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5116:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5104:39:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73592,"nodeType":"ExpressionStatement","src":"5104:39:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73594,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5166:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5178:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:5:153","memberName":"value","nodeType":"MemberAccess","src":"5178:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5166:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73599,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5207:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73600,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5217:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5221:5:153","memberName":"value","nodeType":"MemberAccess","src":"5217:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73598,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"5189:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5189:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5158:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73604,"nodeType":"ExpressionStatement","src":"5158:70:153"},{"assignments":[73606],"declarations":[{"constant":false,"id":73606,"mutability":"mutable","name":"programId","nameLocation":"5251:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5243:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73605,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73618,"initialValue":{"arguments":[{"expression":{"id":73609,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5284:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5302:6:153","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"5284:24:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":73611,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5310:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5328:4:153","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":73388,"src":"5310:22:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":73615,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5342:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5334:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73613,"name":"address","nodeType":"ElementaryTypeName","src":"5334:7:153","typeDescriptions":{}}},"id":73616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73607,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"5263:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74916,"src":"5263:20:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":73617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5263:85:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5243:105:153"},{"expression":{"id":73623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73619,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"5362:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":73621,"indexExpression":{"id":73620,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5373:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5362:13:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73622,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5378:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5362:25:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73624,"nodeType":"ExpressionStatement","src":"5362:25:153"},{"assignments":[73627],"declarations":[{"constant":false,"id":73627,"mutability":"mutable","name":"mirror","nameLocation":"5409:6:153","nodeType":"VariableDeclaration","scope":73690,"src":"5401:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":73626,"nodeType":"UserDefinedTypeName","pathNode":{"id":73625,"name":"IMirror","nameLocations":["5401:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"5401:7:153"},"referencedDeclaration":74395,"src":"5401:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"internal"}],"id":73631,"initialValue":{"arguments":[{"id":73629,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5426:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73628,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"5418:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":73630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5418:18:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"5401:35:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":73635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73632,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5455:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5473:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5455:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":73634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5486:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5455:32:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73671,"nodeType":"IfStatement","src":"5451:390:153","trueBody":{"id":73670,"nodeType":"Block","src":"5489:352:153","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":73639,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5555:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5559:6:153","memberName":"sender","nodeType":"MemberAccess","src":"5555:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5575:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5567:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73641,"name":"address","nodeType":"ElementaryTypeName","src":"5567:7:153","typeDescriptions":{}}},"id":73644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73645,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5582:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5600:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5582:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73637,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5536:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":73638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5542:12:153","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"5536:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":73647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:75:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73648,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73366,"src":"5613:18:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5613:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73636,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5507:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5507:144:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73651,"nodeType":"ExpressionStatement","src":"5507:144:153"},{"expression":{"arguments":[{"arguments":[{"id":73655,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5691:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73656,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5702:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5720:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5702:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73653,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5677:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":73654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5683:7:153","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"5677:13:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":73658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:54:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73659,"name":"ApproveFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73369,"src":"5733:13:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5733:15:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5669:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5669:80:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73662,"nodeType":"ExpressionStatement","src":"5669:80:153"},{"expression":{"arguments":[{"expression":{"id":73666,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5797:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5815:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5797:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73663,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5767:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5774:22:153","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":74355,"src":"5767:29:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":73668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:59:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73669,"nodeType":"ExpressionStatement","src":"5767:59:153"}]}},{"assignments":[73673],"declarations":[{"constant":false,"id":73673,"mutability":"mutable","name":"messageId","nameLocation":"5863:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5855:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5855:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":73683,"initialValue":{"arguments":[{"expression":{"id":73679,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5946:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5964:11:153","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":73390,"src":"5946:29:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5977:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":73674,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5891:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5898:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"5891:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73676,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5917:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5935:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5917:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5891:54:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:92:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5855:128:153"},{"expression":{"id":73688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73684,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"5997:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73686,"indexExpression":{"id":73685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"6008:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5997:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73687,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73673,"src":"6013:9:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5997:25:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73689,"nodeType":"ExpressionStatement","src":"5997:25:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73574,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"4998:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73575,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5002:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5008:6:153","memberName":"length","nodeType":"MemberAccess","src":"5002:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73691,"initializationExpression":{"assignments":[73571],"declarations":[{"constant":false,"id":73571,"mutability":"mutable","name":"i","nameLocation":"4991:1:153","nodeType":"VariableDeclaration","scope":73691,"src":"4983:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4983:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73573,"initialValue":{"hexValue":"30","id":73572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4995:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4983:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5016:3:153","subExpression":{"id":73578,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5018:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73580,"nodeType":"ExpressionStatement","src":"5016:3:153"},"nodeType":"ForStatement","src":"4978:1055:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73692,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6047:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73693,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6058:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6062:5:153","memberName":"value","nodeType":"MemberAccess","src":"6058:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6047:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73716,"nodeType":"IfStatement","src":"6043:163:153","trueBody":{"id":73715,"nodeType":"Block","src":"6069:137:153","statements":[{"assignments":[73697,null],"declarations":[{"constant":false,"id":73697,"mutability":"mutable","name":"success","nameLocation":"6089:7:153","nodeType":"VariableDeclaration","scope":73715,"src":"6084:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73696,"name":"bool","nodeType":"ElementaryTypeName","src":"6084:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73708,"initialValue":{"arguments":[{"hexValue":"","id":73706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6146:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73698,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6101:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6105:6:153","memberName":"sender","nodeType":"MemberAccess","src":"6101:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6112:4:153","memberName":"call","nodeType":"MemberAccess","src":"6101:15:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6124:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6128:5:153","memberName":"value","nodeType":"MemberAccess","src":"6124:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73703,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6136:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6124:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6101:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6101:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6083:66:153"},{"expression":{"arguments":[{"id":73710,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73697,"src":"6171:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73711,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"6180:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6163:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6163:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73714,"nodeType":"ExpressionStatement","src":"6163:32:153"}]}},{"expression":{"components":[{"id":73717,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"6224:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":73718,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"6236:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":73719,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6223:24:153","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bytes32[] memory)"}},"functionReturnParameters":73533,"id":73720,"nodeType":"Return","src":"6216:31:153"}]},"documentation":{"id":73518,"nodeType":"StructuredDocumentation","src":"4128:437:153","text":" @dev Creates batch of programs through Router contract and sends initial messages to them.\n @param router The Router contract address.\n @param calls Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\n @return programIds Array of created program IDs.\n @return messageIds Array of message IDs for the initial messages sent to each created program."},"functionSelector":"3cb1083b","implemented":true,"kind":"function","modifiers":[],"name":"createProgramBatch","nameLocation":"4579:18:153","parameters":{"id":73526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73521,"mutability":"mutable","name":"router","nameLocation":"4606:6:153","nodeType":"VariableDeclaration","scope":73722,"src":"4598:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"},"typeName":{"id":73520,"nodeType":"UserDefinedTypeName","pathNode":{"id":73519,"name":"IRouter","nameLocations":["4598:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"4598:7:153"},"referencedDeclaration":74990,"src":"4598:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":73525,"mutability":"mutable","name":"calls","nameLocation":"4643:5:153","nodeType":"VariableDeclaration","scope":73722,"src":"4614:34:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":73523,"nodeType":"UserDefinedTypeName","pathNode":{"id":73522,"name":"CreateProgramCall","nameLocations":["4614:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"4614:17:153"},"referencedDeclaration":73395,"src":"4614:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":73524,"nodeType":"ArrayTypeName","src":"4614:19:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"4597:52:153"},"returnParameters":{"id":73533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4700:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73527,"name":"address","nodeType":"ElementaryTypeName","src":"4700:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73528,"nodeType":"ArrayTypeName","src":"4700:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":73532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4718:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4718:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73531,"nodeType":"ArrayTypeName","src":"4718:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4699:36:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73727,"nodeType":"FunctionDefinition","src":"6644:29:153","nodes":[],"body":{"id":73726,"nodeType":"Block","src":"6671:2:153","nodes":[],"statements":[]},"documentation":{"id":73723,"nodeType":"StructuredDocumentation","src":"6260:379:153","text":" @dev Fallback function to receive Ether.\n This is necessary because `function _transferEther(address destination, uint128 value)` in `Mirror`\n will send `value` (ETH) to address of `BatchMulticall` smart contract\n (since in context of call `IMirror(messageCall.mirror).sendMessage(...)`: `msg.sender = address(BatchMulticall)`)"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73724,"nodeType":"ParameterList","parameters":[],"src":"6651:2:153"},"returnParameters":{"id":73725,"nodeType":"ParameterList","parameters":[],"src":"6671:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","documentation":{"id":73353,"nodeType":"StructuredDocumentation","src":"234:955:153","text":" @dev BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts.\n This is useful for reducing number of transactions when interacting with multiple Mirror contracts.\n Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network.\n Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster.\n This contract allows both batching of messages and batching of program creations.\n Furthermore, when creating programs, it offers full flow:\n - approval of WVARA ERC20 token for created program (Mirror)\n - top-up of executable balance for created program in WVARA ERC20 token (Mirror)\n - sending initial message to created program (Mirror)\n All of these actions are done in one transaction, which is much faster than doing them separately."},"fullyImplemented":true,"linearizedBaseContracts":[73728],"name":"BatchMulticall","nameLocation":"1199:14:153","scope":73729,"usedErrors":[73360,73363,73366,73369],"usedEvents":[73375]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":153} \ No newline at end of file +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createProgramBatch","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.CreateProgramCall[]","components":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initPayload","type":"bytes","internalType":"bytes"},{"name":"initValue","type":"uint128","internalType":"uint128"},{"name":"topUpValue","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"sendMessageBatch","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.MessageCall[]","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"SendMessageBatchResult","inputs":[{"name":"messageIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"ApproveFailed","inputs":[]},{"type":"error","name":"InsufficientValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RefundFailed","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]}],"bytecode":{"object":"0x608080604052346015576108b7908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1230:5485:152:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1230:5485:152:-:0;;;;;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1230:5485:152;;;;;;;;;;;;;;;;;;:::i;:::-;3432:27;;;;:::i;:::-;3470:16;1230:5485;3502:13;1230:5485;3517:16;;;;;;3621:9;3601:70;3621:9;;;3609:21;;;3601:70;:::i;:::-;1230:5485;3702:16;;;;;;3621:9;;;3947:20;;3943:163;;3682:251;4121:34;1230:5485;;;;;;;;;;;;;;;:::i;:::-;4121:34;;;1230:5485;3943:163;1230:5485;3621:9;;4024:20;3621:9;;;4024:20;:::i;:::-;4001:10;:48;;;;:::i;:::-;;1230:5485;;;3943:163;;;1230:5485;;;;;;;;;3720:3;3774:8;;;;;:::i;:::-;1230:5485;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;3876:17;1230:5485;3876:17;3895:19;-1:-1:-1;;;;;3876:17:152;1230:5485;3829:93;3876:17;;;:::i;:::-;1230:5485;3895:19;;;;;;:::i;:::-;1230:5485;;;;;;;;;;;;3829:93;;1230:5485;3829:93;;;:::i;:::-;;;;;;;;;1230:5485;3829:93;;;3720:3;1230:5485;3797:125;;;;;;:::i;:::-;1230:5485;;3687:13;;3829:93;;1230:5485;3829:93;;;;;;;;;1230:5485;3829:93;;;:::i;:::-;;;1230:5485;;;;;;;3829:93;;1230:5485;;;;3829:93;;;-1:-1:-1;3829:93:152;;;1230:5485;;;;;;;;;3535:3;3566:8;3554:26;1230:5485;3566:8;-1:-1:-1;;;;;3566:14:152;1230:5485;3566:8;;;;;:::i;:::-;:14;;:::i;:::-;1230:5485;3554:26;;:::i;:::-;3535:3;1230:5485;3502:13;;1230:5485;;;-1:-1:-1;;1230:5485:152;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1230:5485:152;;;;4887:27;;;:::i;:::-;1230:5485;;;;;;4959:20;;1230:5485;4959:20;1230:5485;4959:20;;;;;;;;;1230:5485;4959:20;;;1230:5485;-1:-1:-1;1230:5485:152;;;;-1:-1:-1;;1230:5485:152;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;4991:16;5023:13;1230:5485;5056:3;5038:16;;;;;;1230:5485;;;;;;;;;;;;;;;;;5144:39;5156:27;;;;-1:-1:-1;;;;;5156:27:152;;;:::i;5144:39::-;5218:9;5198:70;5218:9;;;5206:21;;;5198:70;:::i;:::-;1230:5485;;5303:85;1230:5485;;;;;;;;;5303:85;;1230:5485;;;5303:85;;1230:5485;5350:22;;;1230:5485;;;;;5382:4;1230:5485;;;;5303:85;;;;;;;1230:5485;5303:85;;;5056:3;5402:25;;;;;:::i;:::-;-1:-1:-1;;;;;1230:5485:152;;;;;;;5495:28;;;-1:-1:-1;;;;;5495:28:152;;;:::i;:::-;1230:5485;5491:390;;5056:3;5957:27;;5931:92;5957:27;5986:29;-1:-1:-1;;;;;5957:27:152;1230:5485;5957:27;;:::i;:::-;1230:5485;5986:29;1230:5485;5986:29;;;;:::i;5931:92::-;;;;;;;;;1230:5485;5931:92;;;5056:3;1230:5485;6037:25;;;;;;:::i;:::-;1230:5485;;5023:13;;5931:92;;1230:5485;5931:92;;;;;;;;;1230:5485;5931:92;;;:::i;:::-;;;1230:5485;;;;;;;5931:92;;;;;-1:-1:-1;5931:92:152;;5491:390;5622:28;1230:5485;-1:-1:-1;;;;;5303:85:152;5622:28;;;;;;:::i;:::-;1230:5485;;;;;;;;;;;5576:75;;5595:10;1230:5485;5576:75;;1230:5485;5382:4;1230:5485;;;;;;;;;5576:75;;;;;;;1230:5485;5576:75;;;5491:390;1230:5485;;;;5742:28;1230:5485;-1:-1:-1;;;;;1230:5485:152;5742:28;;;:::i;:::-;1230:5485;;;;;;;;;;;5717:54;;;1230:5485;5717:54;;1230:5485;;;;;;5717:54;;;;;;;1230:5485;5717:54;;;5491:390;1230:5485;;;;5837:28;;;:::i;:::-;5807:59;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;5807:59;;1230:5485;;5807:59;;1230:5485;;5807:59;1230:5485;5807:59;;;;;;;;;;-1:-1:-1;;;;;5957:27:152;5986:29;5807:59;5931:92;5807:59;1230:5485;5807:59;;;5491:390;;;;;;;;;;;5807:59;1230:5485;5807:59;;;:::i;:::-;;;;1230:5485;;;;;;;;;5717:54;;;;1230:5485;5717:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1230:5485;;;;;;;;;5576:75;;;;1230:5485;5576:75;;;;;;;;;:::i;:::-;;;;5303:85;;;;;1230:5485;5303:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;5038:16;;;;;5218:9;6087:20;;6083:163;;5018:1055;1230:5485;;;;;;;;;;;;;;;5156:27;1230:5485;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;;;;;;;;;;6083:163;1230:5485;5218:9;;6164:20;5218:9;;;6164:20;:::i;:::-;6141:10;:48;;;;:::i;:::-;;1230:5485;;;6083:163;;;4959:20;;;;1230:5485;4959:20;1230:5485;4959:20;;;;;;;:::i;:::-;;;;1230:5485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1230:5485:152;;;;;-1:-1:-1;1230:5485:152;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1230:5485:152;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1230:5485:152;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1230:5485:152;;;;;:::i;:::-;;;;-1:-1:-1;1230:5485:152;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RefundFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"messageIds\",\"type\":\"bytes32[]\"}],\"name\":\"SendMessageBatchResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"initValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"topUpValue\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.CreateProgramCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"createProgramBatch\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.MessageCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"sendMessageBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts. This is useful for reducing number of transactions when interacting with multiple Mirror contracts. Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network. Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster. This contract allows both batching of messages and batching of program creations. Furthermore, when creating programs, it offers full flow: - approval of WVARA ERC20 token for created program (Mirror) - top-up of executable balance for created program in WVARA ERC20 token (Mirror) - sending initial message to created program (Mirror) All of these actions are done in one transaction, which is much faster than doing them separately.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"Approving WVARA token for created program (Mirror) failed.\"}],\"InsufficientValue(uint256,uint256)\":[{\"details\":\"There is not enough value sent with transaction to cover calls.\"}],\"RefundFailed()\":[{\"details\":\"Refunding excess value to sender failed.\"}],\"TransferFromFailed()\":[{\"details\":\"Transferring WVARA token from sender to this contract failed.\"}]},\"events\":{\"SendMessageBatchResult(bytes32[])\":{\"details\":\"Emitted when batch of messages is sent. It contains array of message ids that were sent.\"}},\"kind\":\"dev\",\"methods\":{\"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])\":{\"details\":\"Creates batch of programs through Router contract and sends initial messages to them.\",\"params\":{\"calls\":\"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\",\"router\":\"The Router contract address.\"},\"returns\":{\"_0\":\"programIds Array of created program IDs.\",\"_1\":\"messageIds Array of message IDs for the initial messages sent to each created program.\"}},\"sendMessageBatch((address,bytes,uint128)[])\":{\"details\":\"Sends batch of messages through Mirror contracts.\",\"params\":{\"calls\":\"Array of `MessageCall` structs representing calls to send messages through Mirror contracts.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BatchMulticall.sol\":\"BatchMulticall\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x1d612b419ca35b242706463c1e1eff3e9ef0ee6ca8e6cbc156f0dc4c108b1792\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://e86abdbd13d6ba560a59fa2efd23985e62ced2f0505fe4eac1a6f47c5169bdca\",\"dweb:/ipfs/QmdsJ9L1bFcuHi9UF517C8z5iciVRuWtt1zsN299rEX1Tq\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xcab25323c350222e48ad9dfd84325ffd36b4e34d4ae3a0a49932d8a1c95e501e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://71df44d61da238cb41cf2701c7cb15af7815f1b7cab46d3a0c0fa5ba0a15aed7\",\"dweb:/ipfs/QmT78yRqQoPHGafTzKyjUK6Dnm7XLpV4RnUQsEZ62PHWUi\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19\",\"dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd\",\"dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApproveFailed"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"RefundFailed"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[{"internalType":"bytes32[]","name":"messageIds","type":"bytes32[]","indexed":false}],"type":"event","name":"SendMessageBatchResult","anonymous":false},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"struct BatchMulticall.CreateProgramCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initPayload","type":"bytes"},{"internalType":"uint128","name":"initValue","type":"uint128"},{"internalType":"uint128","name":"topUpValue","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"createProgramBatch","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct BatchMulticall.MessageCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"sendMessageBatch"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":{"details":"Creates batch of programs through Router contract and sends initial messages to them.","params":{"calls":"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.","router":"The Router contract address."},"returns":{"_0":"programIds Array of created program IDs.","_1":"messageIds Array of message IDs for the initial messages sent to each created program."}},"sendMessageBatch((address,bytes,uint128)[])":{"details":"Sends batch of messages through Mirror contracts.","params":{"calls":"Array of `MessageCall` structs representing calls to send messages through Mirror contracts."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x1d612b419ca35b242706463c1e1eff3e9ef0ee6ca8e6cbc156f0dc4c108b1792","urls":["bzz-raw://e86abdbd13d6ba560a59fa2efd23985e62ced2f0505fe4eac1a6f47c5169bdca","dweb:/ipfs/QmdsJ9L1bFcuHi9UF517C8z5iciVRuWtt1zsN299rEX1Tq"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xcab25323c350222e48ad9dfd84325ffd36b4e34d4ae3a0a49932d8a1c95e501e","urls":["bzz-raw://71df44d61da238cb41cf2701c7cb15af7815f1b7cab46d3a0c0fa5ba0a15aed7","dweb:/ipfs/QmT78yRqQoPHGafTzKyjUK6Dnm7XLpV4RnUQsEZ62PHWUi"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4","urls":["bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19","dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d","urls":["bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd","dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":75652,"exportedSymbols":{"BatchMulticall":[75651],"IMirror":[76363],"IRouter":[76958],"IWrappedVara":[76974]},"nodeType":"SourceUnit","src":"114:6602:152","nodes":[{"id":75269,"nodeType":"PragmaDirective","src":"114:24:152","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":75271,"nodeType":"ImportDirective","src":"140:40:152","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":75652,"sourceUnit":76364,"symbolAliases":[{"foreign":{"id":75270,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"148:7:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75273,"nodeType":"ImportDirective","src":"181:40:152","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":75652,"sourceUnit":76959,"symbolAliases":[{"foreign":{"id":75272,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76958,"src":"189:7:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75275,"nodeType":"ImportDirective","src":"222:50:152","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":75652,"sourceUnit":76975,"symbolAliases":[{"foreign":{"id":75274,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"230:12:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75651,"nodeType":"ContractDefinition","src":"1230:5485:152","nodes":[{"id":75283,"nodeType":"ErrorDefinition","src":"1352:58:152","nodes":[],"documentation":{"id":75277,"nodeType":"StructuredDocumentation","src":"1260:87:152","text":" @dev There is not enough value sent with transaction to cover calls."},"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"1358:17:152","parameters":{"id":75282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75279,"mutability":"mutable","name":"expected","nameLocation":"1384:8:152","nodeType":"VariableDeclaration","scope":75283,"src":"1376:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75278,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75281,"mutability":"mutable","name":"actual","nameLocation":"1402:6:152","nodeType":"VariableDeclaration","scope":75283,"src":"1394:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75280,"name":"uint256","nodeType":"ElementaryTypeName","src":"1394:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1375:34:152"}},{"id":75286,"nodeType":"ErrorDefinition","src":"1485:21:152","nodes":[],"documentation":{"id":75284,"nodeType":"StructuredDocumentation","src":"1416:64:152","text":" @dev Refunding excess value to sender failed."},"errorSelector":"f0c49d44","name":"RefundFailed","nameLocation":"1491:12:152","parameters":{"id":75285,"nodeType":"ParameterList","parameters":[],"src":"1503:2:152"}},{"id":75289,"nodeType":"ErrorDefinition","src":"1602:27:152","nodes":[],"documentation":{"id":75287,"nodeType":"StructuredDocumentation","src":"1512:85:152","text":" @dev Transferring WVARA token from sender to this contract failed."},"errorSelector":"7939f424","name":"TransferFromFailed","nameLocation":"1608:18:152","parameters":{"id":75288,"nodeType":"ParameterList","parameters":[],"src":"1626:2:152"}},{"id":75292,"nodeType":"ErrorDefinition","src":"1722:22:152","nodes":[],"documentation":{"id":75290,"nodeType":"StructuredDocumentation","src":"1635:82:152","text":" @dev Approving WVARA token for created program (Mirror) failed."},"errorSelector":"3e3f8f73","name":"ApproveFailed","nameLocation":"1728:13:152","parameters":{"id":75291,"nodeType":"ParameterList","parameters":[],"src":"1741:2:152"}},{"id":75298,"nodeType":"EventDefinition","src":"1867:51:152","nodes":[],"anonymous":false,"documentation":{"id":75293,"nodeType":"StructuredDocumentation","src":"1750:112:152","text":" @dev Emitted when batch of messages is sent. It contains array of message ids that were sent."},"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"1873:22:152","parameters":{"id":75297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75296,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"1906:10:152","nodeType":"VariableDeclaration","scope":75298,"src":"1896:20:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":75294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1896:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75295,"nodeType":"ArrayTypeName","src":"1896:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1895:22:152"}},{"id":75306,"nodeType":"StructDefinition","src":"2190:96:152","nodes":[],"canonicalName":"BatchMulticall.MessageCall","documentation":{"id":75299,"nodeType":"StructuredDocumentation","src":"1924:261:152","text":" @dev Represents call to send message through Mirror contract.\n It will be sent through `IMirror(mirror).sendMessage{value: value}(payload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":75301,"mutability":"mutable","name":"mirror","nameLocation":"2227:6:152","nodeType":"VariableDeclaration","scope":75306,"src":"2219:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75300,"name":"address","nodeType":"ElementaryTypeName","src":"2219:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75303,"mutability":"mutable","name":"payload","nameLocation":"2249:7:152","nodeType":"VariableDeclaration","scope":75306,"src":"2243:13:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":75302,"name":"bytes","nodeType":"ElementaryTypeName","src":"2243:5:152","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75305,"mutability":"mutable","name":"value","nameLocation":"2274:5:152","nodeType":"VariableDeclaration","scope":75306,"src":"2266:13:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75304,"name":"uint128","nodeType":"ElementaryTypeName","src":"2266:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"2197:11:152","scope":75651,"visibility":"public"},{"id":75318,"nodeType":"StructDefinition","src":"2962:160:152","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","documentation":{"id":75307,"nodeType":"StructuredDocumentation","src":"2292:665:152","text":" @dev Represents call to create Mirror through Router contract.\n It will be sent through `IRouter(router).createProgram(codeId, salt, address(this))`,\n where `overrideInitializer` is always `address(this)` since we want to send initial message from this contract.\n Then, if `topUpValue` is greater than 0, it will approve WVARA token and top up executable balance for created Mirror.\n Finally, it will send initial message to created Mirror through `IMirror(programId).sendMessage{value: initValue}(initPayload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":75309,"mutability":"mutable","name":"codeId","nameLocation":"3005:6:152","nodeType":"VariableDeclaration","scope":75318,"src":"2997:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75308,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2997:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75311,"mutability":"mutable","name":"salt","nameLocation":"3029:4:152","nodeType":"VariableDeclaration","scope":75318,"src":"3021:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3021:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75313,"mutability":"mutable","name":"initPayload","nameLocation":"3049:11:152","nodeType":"VariableDeclaration","scope":75318,"src":"3043:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":75312,"name":"bytes","nodeType":"ElementaryTypeName","src":"3043:5:152","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75315,"mutability":"mutable","name":"initValue","nameLocation":"3078:9:152","nodeType":"VariableDeclaration","scope":75318,"src":"3070:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75314,"name":"uint128","nodeType":"ElementaryTypeName","src":"3070:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":75317,"mutability":"mutable","name":"topUpValue","nameLocation":"3105:10:152","nodeType":"VariableDeclaration","scope":75318,"src":"3097:18:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":75316,"name":"uint128","nodeType":"ElementaryTypeName","src":"3097:7:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"2969:17:152","scope":75651,"visibility":"public"},{"id":75440,"nodeType":"FunctionDefinition","src":"3319:843:152","nodes":[],"body":{"id":75439,"nodeType":"Block","src":"3392:770:152","nodes":[],"statements":[{"assignments":[75330],"declarations":[{"constant":false,"id":75330,"mutability":"mutable","name":"messageIds","nameLocation":"3419:10:152","nodeType":"VariableDeclaration","scope":75439,"src":"3402:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":75328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3402:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75329,"nodeType":"ArrayTypeName","src":"3402:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":75337,"initialValue":{"arguments":[{"expression":{"id":75334,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75323,"src":"3446:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$75306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":75335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3452:6:152","memberName":"length","nodeType":"MemberAccess","src":"3446:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3432:13:152","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":75331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3436:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75332,"nodeType":"ArrayTypeName","src":"3436:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3432:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3402:57:152"},{"assignments":[75339],"declarations":[{"constant":false,"id":75339,"mutability":"mutable","name":"consumed","nameLocation":"3478:8:152","nodeType":"VariableDeclaration","scope":75439,"src":"3470:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75338,"name":"uint256","nodeType":"ElementaryTypeName","src":"3470:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75340,"nodeType":"VariableDeclarationStatement","src":"3470:16:152"},{"body":{"id":75359,"nodeType":"Block","src":"3540:51:152","statements":[{"expression":{"id":75357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75352,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75339,"src":"3554:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":75353,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75323,"src":"3566:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$75306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":75355,"indexExpression":{"id":75354,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75342,"src":"3572:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3566:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$75306_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":75356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3575:5:152","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":75305,"src":"3566:14:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3554:26:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75358,"nodeType":"ExpressionStatement","src":"3554:26:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75342,"src":"3517:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75346,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75323,"src":"3521:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$75306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":75347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3527:6:152","memberName":"length","nodeType":"MemberAccess","src":"3521:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3517:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75360,"initializationExpression":{"assignments":[75342],"declarations":[{"constant":false,"id":75342,"mutability":"mutable","name":"i","nameLocation":"3510:1:152","nodeType":"VariableDeclaration","scope":75360,"src":"3502:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75341,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75344,"initialValue":{"hexValue":"30","id":75343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3514:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3502:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3535:3:152","subExpression":{"id":75349,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75342,"src":"3537:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75351,"nodeType":"ExpressionStatement","src":"3535:3:152"},"nodeType":"ForStatement","src":"3497:94:152"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75362,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75339,"src":"3609:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":75363,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3621:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3625:5:152","memberName":"value","nodeType":"MemberAccess","src":"3621:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3609:21:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":75367,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75339,"src":"3650:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75368,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3660:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3664:5:152","memberName":"value","nodeType":"MemberAccess","src":"3660:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75366,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75283,"src":"3632:17:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":75370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3632:38:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3601:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:70:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75372,"nodeType":"ExpressionStatement","src":"3601:70:152"},{"body":{"id":75408,"nodeType":"Block","src":"3725:208:152","statements":[{"assignments":[75386],"declarations":[{"constant":false,"id":75386,"mutability":"mutable","name":"messageCall","nameLocation":"3760:11:152","nodeType":"VariableDeclaration","scope":75408,"src":"3739:32:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$75306_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":75385,"nodeType":"UserDefinedTypeName","pathNode":{"id":75384,"name":"MessageCall","nameLocations":["3739:11:152"],"nodeType":"IdentifierPath","referencedDeclaration":75306,"src":"3739:11:152"},"referencedDeclaration":75306,"src":"3739:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$75306_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":75390,"initialValue":{"baseExpression":{"id":75387,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75323,"src":"3774:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$75306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":75389,"indexExpression":{"id":75388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75374,"src":"3780:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3774:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$75306_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"3739:43:152"},{"expression":{"id":75406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75391,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75330,"src":"3797:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":75393,"indexExpression":{"id":75392,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75374,"src":"3808:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3797:13:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":75402,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75386,"src":"3895:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$75306_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":75403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3907:7:152","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":75303,"src":"3895:19:152","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":75404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3916:5:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"expression":{"id":75395,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75386,"src":"3837:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$75306_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":75396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3849:6:152","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":75301,"src":"3837:18:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75394,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"3829:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$76363_$","typeString":"type(contract IMirror)"}},"id":75397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":75398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3857:11:152","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":76288,"src":"3829:39:152","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":75401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":75399,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75386,"src":"3876:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$75306_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":75400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3888:5:152","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":75305,"src":"3876:17:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"3829:65:152","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":75405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:93:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3797:125:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75407,"nodeType":"ExpressionStatement","src":"3797:125:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75377,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75374,"src":"3702:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75378,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75323,"src":"3706:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$75306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":75379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3712:6:152","memberName":"length","nodeType":"MemberAccess","src":"3706:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3702:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75409,"initializationExpression":{"assignments":[75374],"declarations":[{"constant":false,"id":75374,"mutability":"mutable","name":"i","nameLocation":"3695:1:152","nodeType":"VariableDeclaration","scope":75409,"src":"3687:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75373,"name":"uint256","nodeType":"ElementaryTypeName","src":"3687:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75376,"initialValue":{"hexValue":"30","id":75375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3699:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3687:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3720:3:152","subExpression":{"id":75381,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75374,"src":"3722:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75383,"nodeType":"ExpressionStatement","src":"3720:3:152"},"nodeType":"ForStatement","src":"3682:251:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75410,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75339,"src":"3947:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75411,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3958:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3962:5:152","memberName":"value","nodeType":"MemberAccess","src":"3958:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3947:20:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75434,"nodeType":"IfStatement","src":"3943:163:152","trueBody":{"id":75433,"nodeType":"Block","src":"3969:137:152","statements":[{"assignments":[75415,null],"declarations":[{"constant":false,"id":75415,"mutability":"mutable","name":"success","nameLocation":"3989:7:152","nodeType":"VariableDeclaration","scope":75433,"src":"3984:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75414,"name":"bool","nodeType":"ElementaryTypeName","src":"3984:4:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":75426,"initialValue":{"arguments":[{"hexValue":"","id":75424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4046:2:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":75416,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4001:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4005:6:152","memberName":"sender","nodeType":"MemberAccess","src":"4001:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4012:4:152","memberName":"call","nodeType":"MemberAccess","src":"4001:15:152","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":75423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75419,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4024:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4028:5:152","memberName":"value","nodeType":"MemberAccess","src":"4024:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75421,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75339,"src":"4036:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4024:20:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4001:44:152","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":75425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:48:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3983:66:152"},{"expression":{"arguments":[{"id":75428,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75415,"src":"4071:7:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75429,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75286,"src":"4080:12:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4080:14:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4063:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4063:32:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75432,"nodeType":"ExpressionStatement","src":"4063:32:152"}]}},{"eventCall":{"arguments":[{"id":75436,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75330,"src":"4144:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":75435,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75298,"src":"4121:22:152","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":75437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:34:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75438,"nodeType":"EmitStatement","src":"4116:39:152"}]},"documentation":{"id":75319,"nodeType":"StructuredDocumentation","src":"3128:186:152","text":" @dev Sends batch of messages through Mirror contracts.\n @param calls Array of `MessageCall` structs representing calls to send messages through Mirror contracts."},"functionSelector":"564abd5f","implemented":true,"kind":"function","modifiers":[],"name":"sendMessageBatch","nameLocation":"3328:16:152","parameters":{"id":75324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75323,"mutability":"mutable","name":"calls","nameLocation":"3368:5:152","nodeType":"VariableDeclaration","scope":75440,"src":"3345:28:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$75306_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":75321,"nodeType":"UserDefinedTypeName","pathNode":{"id":75320,"name":"MessageCall","nameLocations":["3345:11:152"],"nodeType":"IdentifierPath","referencedDeclaration":75306,"src":"3345:11:152"},"referencedDeclaration":75306,"src":"3345:11:152","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$75306_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":75322,"nodeType":"ArrayTypeName","src":"3345:13:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$75306_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"3344:30:152"},"returnParameters":{"id":75325,"nodeType":"ParameterList","parameters":[],"src":"3392:0:152"},"scope":75651,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75645,"nodeType":"FunctionDefinition","src":"4610:1684:152","nodes":[],"body":{"id":75644,"nodeType":"Block","src":"4780:1514:152","nodes":[],"statements":[{"assignments":[75461],"declarations":[{"constant":false,"id":75461,"mutability":"mutable","name":"programIds","nameLocation":"4807:10:152","nodeType":"VariableDeclaration","scope":75644,"src":"4790:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75459,"name":"address","nodeType":"ElementaryTypeName","src":"4790:7:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75460,"nodeType":"ArrayTypeName","src":"4790:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":75468,"initialValue":{"arguments":[{"expression":{"id":75465,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75448,"src":"4834:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$75318_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":75466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4840:6:152","memberName":"length","nodeType":"MemberAccess","src":"4834:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4820:13:152","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":75462,"name":"address","nodeType":"ElementaryTypeName","src":"4824:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75463,"nodeType":"ArrayTypeName","src":"4824:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":75467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4820:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4790:57:152"},{"assignments":[75473],"declarations":[{"constant":false,"id":75473,"mutability":"mutable","name":"messageIds","nameLocation":"4874:10:152","nodeType":"VariableDeclaration","scope":75644,"src":"4857:27:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":75471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4857:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75472,"nodeType":"ArrayTypeName","src":"4857:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":75480,"initialValue":{"arguments":[{"expression":{"id":75477,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75448,"src":"4901:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$75318_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":75478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4907:6:152","memberName":"length","nodeType":"MemberAccess","src":"4901:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4887:13:152","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":75474,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4891:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75475,"nodeType":"ArrayTypeName","src":"4891:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":75479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4887:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4857:57:152"},{"assignments":[75483],"declarations":[{"constant":false,"id":75483,"mutability":"mutable","name":"wvara","nameLocation":"4938:5:152","nodeType":"VariableDeclaration","scope":75644,"src":"4925:18:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"},"typeName":{"id":75482,"nodeType":"UserDefinedTypeName","pathNode":{"id":75481,"name":"IWrappedVara","nameLocations":["4925:12:152"],"nodeType":"IdentifierPath","referencedDeclaration":76974,"src":"4925:12:152"},"referencedDeclaration":76974,"src":"4925:12:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":75489,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75485,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75444,"src":"4959:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$76958","typeString":"contract IRouter"}},"id":75486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4966:11:152","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":76652,"src":"4959:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4959:20:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75484,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"4946:12:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":75488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4946:34:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"4925:55:152"},{"assignments":[75491],"declarations":[{"constant":false,"id":75491,"mutability":"mutable","name":"consumed","nameLocation":"4999:8:152","nodeType":"VariableDeclaration","scope":75644,"src":"4991:16:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75490,"name":"uint256","nodeType":"ElementaryTypeName","src":"4991:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75492,"nodeType":"VariableDeclarationStatement","src":"4991:16:152"},{"body":{"id":75613,"nodeType":"Block","src":"5061:1012:152","statements":[{"assignments":[75506],"declarations":[{"constant":false,"id":75506,"mutability":"mutable","name":"createProgramCall","nameLocation":"5102:17:152","nodeType":"VariableDeclaration","scope":75613,"src":"5075:44:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":75505,"nodeType":"UserDefinedTypeName","pathNode":{"id":75504,"name":"CreateProgramCall","nameLocations":["5075:17:152"],"nodeType":"IdentifierPath","referencedDeclaration":75318,"src":"5075:17:152"},"referencedDeclaration":75318,"src":"5075:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":75510,"initialValue":{"baseExpression":{"id":75507,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75448,"src":"5122:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$75318_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":75509,"indexExpression":{"id":75508,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75494,"src":"5128:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5122:8:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"5075:55:152"},{"expression":{"id":75514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75511,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75491,"src":"5144:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":75512,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5156:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5174:9:152","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":75315,"src":"5156:27:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5144:39:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75515,"nodeType":"ExpressionStatement","src":"5144:39:152"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75517,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75491,"src":"5206:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":75518,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5218:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5222:5:152","memberName":"value","nodeType":"MemberAccess","src":"5218:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5206:21:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":75522,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75491,"src":"5247:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75523,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5257:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5261:5:152","memberName":"value","nodeType":"MemberAccess","src":"5257:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75521,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75283,"src":"5229:17:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":75525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5229:38:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75516,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5198:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5198:70:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75527,"nodeType":"ExpressionStatement","src":"5198:70:152"},{"assignments":[75529],"declarations":[{"constant":false,"id":75529,"mutability":"mutable","name":"programId","nameLocation":"5291:9:152","nodeType":"VariableDeclaration","scope":75613,"src":"5283:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75528,"name":"address","nodeType":"ElementaryTypeName","src":"5283:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75541,"initialValue":{"arguments":[{"expression":{"id":75532,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5324:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5342:6:152","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":75309,"src":"5324:24:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":75534,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5350:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5368:4:152","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":75311,"src":"5350:22:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":75538,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5382:4:152","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$75651","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$75651","typeString":"contract BatchMulticall"}],"id":75537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5374:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75536,"name":"address","nodeType":"ElementaryTypeName","src":"5374:7:152","typeDescriptions":{}}},"id":75539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:13:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75530,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75444,"src":"5303:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$76958","typeString":"contract IRouter"}},"id":75531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5310:13:152","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":76884,"src":"5303:20:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":75540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5303:85:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5283:105:152"},{"expression":{"id":75546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75542,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75461,"src":"5402:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75544,"indexExpression":{"id":75543,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75494,"src":"5413:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5402:13:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75545,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75529,"src":"5418:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5402:25:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75547,"nodeType":"ExpressionStatement","src":"5402:25:152"},{"assignments":[75550],"declarations":[{"constant":false,"id":75550,"mutability":"mutable","name":"mirror","nameLocation":"5449:6:152","nodeType":"VariableDeclaration","scope":75613,"src":"5441:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"},"typeName":{"id":75549,"nodeType":"UserDefinedTypeName","pathNode":{"id":75548,"name":"IMirror","nameLocations":["5441:7:152"],"nodeType":"IdentifierPath","referencedDeclaration":76363,"src":"5441:7:152"},"referencedDeclaration":76363,"src":"5441:7:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"visibility":"internal"}],"id":75554,"initialValue":{"arguments":[{"id":75552,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75529,"src":"5466:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75551,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"5458:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$76363_$","typeString":"type(contract IMirror)"}},"id":75553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5458:18:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"5441:35:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":75558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75555,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5495:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5513:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":75317,"src":"5495:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5526:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5495:32:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75594,"nodeType":"IfStatement","src":"5491:390:152","trueBody":{"id":75593,"nodeType":"Block","src":"5529:352:152","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":75562,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5595:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5599:6:152","memberName":"sender","nodeType":"MemberAccess","src":"5595:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":75566,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5615:4:152","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$75651","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$75651","typeString":"contract BatchMulticall"}],"id":75565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5607:7:152","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75564,"name":"address","nodeType":"ElementaryTypeName","src":"5607:7:152","typeDescriptions":{}}},"id":75567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5607:13:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75568,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5622:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5640:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":75317,"src":"5622:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75560,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75483,"src":"5576:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5582:12:152","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"5576:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":75570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5576:75:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75571,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75289,"src":"5653:18:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:20:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75559,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5547:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5547:144:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75574,"nodeType":"ExpressionStatement","src":"5547:144:152"},{"expression":{"arguments":[{"arguments":[{"id":75578,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75529,"src":"5731:9:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75579,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5742:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5760:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":75317,"src":"5742:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75576,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75483,"src":"5717:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":75577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5723:7:152","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":2659,"src":"5717:13:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":75581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5717:54:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75582,"name":"ApproveFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5773:13:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:15:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5709:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5709:80:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75585,"nodeType":"ExpressionStatement","src":"5709:80:152"},{"expression":{"arguments":[{"expression":{"id":75589,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5837:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5855:10:152","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":75317,"src":"5837:28:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":75586,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75550,"src":"5807:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":75588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5814:22:152","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":76308,"src":"5807:29:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":75591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5807:59:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75592,"nodeType":"ExpressionStatement","src":"5807:59:152"}]}},{"assignments":[75596],"declarations":[{"constant":false,"id":75596,"mutability":"mutable","name":"messageId","nameLocation":"5903:9:152","nodeType":"VariableDeclaration","scope":75613,"src":"5895:17:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5895:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":75606,"initialValue":{"arguments":[{"expression":{"id":75602,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5986:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6004:11:152","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":75313,"src":"5986:29:152","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":75604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6017:5:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":75597,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75550,"src":"5931:6:152","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":75598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5938:11:152","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":76288,"src":"5931:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":75601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":75599,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75506,"src":"5957:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":75600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5975:9:152","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":75315,"src":"5957:27:152","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5931:54:152","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":75605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:92:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5895:128:152"},{"expression":{"id":75611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75607,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75473,"src":"6037:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":75609,"indexExpression":{"id":75608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75494,"src":"6048:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6037:13:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75610,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75596,"src":"6053:9:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6037:25:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75612,"nodeType":"ExpressionStatement","src":"6037:25:152"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75497,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75494,"src":"5038:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75498,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75448,"src":"5042:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$75318_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":75499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5048:6:152","memberName":"length","nodeType":"MemberAccess","src":"5042:12:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5038:16:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75614,"initializationExpression":{"assignments":[75494],"declarations":[{"constant":false,"id":75494,"mutability":"mutable","name":"i","nameLocation":"5031:1:152","nodeType":"VariableDeclaration","scope":75614,"src":"5023:9:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75493,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75496,"initialValue":{"hexValue":"30","id":75495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5035:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5023:13:152"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5056:3:152","subExpression":{"id":75501,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75494,"src":"5058:1:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75503,"nodeType":"ExpressionStatement","src":"5056:3:152"},"nodeType":"ForStatement","src":"5018:1055:152"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75615,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75491,"src":"6087:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75616,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6098:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6102:5:152","memberName":"value","nodeType":"MemberAccess","src":"6098:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6087:20:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75639,"nodeType":"IfStatement","src":"6083:163:152","trueBody":{"id":75638,"nodeType":"Block","src":"6109:137:152","statements":[{"assignments":[75620,null],"declarations":[{"constant":false,"id":75620,"mutability":"mutable","name":"success","nameLocation":"6129:7:152","nodeType":"VariableDeclaration","scope":75638,"src":"6124:12:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75619,"name":"bool","nodeType":"ElementaryTypeName","src":"6124:4:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":75631,"initialValue":{"arguments":[{"hexValue":"","id":75629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6186:2:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":75621,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6141:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6145:6:152","memberName":"sender","nodeType":"MemberAccess","src":"6141:10:152","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6152:4:152","memberName":"call","nodeType":"MemberAccess","src":"6141:15:152","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":75628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75624,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6164:3:152","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6168:5:152","memberName":"value","nodeType":"MemberAccess","src":"6164:9:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75626,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75491,"src":"6176:8:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6164:20:152","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6141:44:152","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":75630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6141:48:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6123:66:152"},{"expression":{"arguments":[{"id":75633,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75620,"src":"6211:7:152","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75634,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75286,"src":"6220:12:152","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6220:14:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75632,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6203:7:152","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6203:32:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75637,"nodeType":"ExpressionStatement","src":"6203:32:152"}]}},{"expression":{"components":[{"id":75640,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75461,"src":"6264:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":75641,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75473,"src":"6276:10:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":75642,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6263:24:152","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bytes32[] memory)"}},"functionReturnParameters":75456,"id":75643,"nodeType":"Return","src":"6256:31:152"}]},"documentation":{"id":75441,"nodeType":"StructuredDocumentation","src":"4168:437:152","text":" @dev Creates batch of programs through Router contract and sends initial messages to them.\n @param router The Router contract address.\n @param calls Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\n @return programIds Array of created program IDs.\n @return messageIds Array of message IDs for the initial messages sent to each created program."},"functionSelector":"3cb1083b","implemented":true,"kind":"function","modifiers":[],"name":"createProgramBatch","nameLocation":"4619:18:152","parameters":{"id":75449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75444,"mutability":"mutable","name":"router","nameLocation":"4646:6:152","nodeType":"VariableDeclaration","scope":75645,"src":"4638:14:152","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$76958","typeString":"contract IRouter"},"typeName":{"id":75443,"nodeType":"UserDefinedTypeName","pathNode":{"id":75442,"name":"IRouter","nameLocations":["4638:7:152"],"nodeType":"IdentifierPath","referencedDeclaration":76958,"src":"4638:7:152"},"referencedDeclaration":76958,"src":"4638:7:152","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$76958","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":75448,"mutability":"mutable","name":"calls","nameLocation":"4683:5:152","nodeType":"VariableDeclaration","scope":75645,"src":"4654:34:152","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$75318_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":75446,"nodeType":"UserDefinedTypeName","pathNode":{"id":75445,"name":"CreateProgramCall","nameLocations":["4654:17:152"],"nodeType":"IdentifierPath","referencedDeclaration":75318,"src":"4654:17:152"},"referencedDeclaration":75318,"src":"4654:17:152","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$75318_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":75447,"nodeType":"ArrayTypeName","src":"4654:19:152","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$75318_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"4637:52:152"},"returnParameters":{"id":75456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75645,"src":"4740:16:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75450,"name":"address","nodeType":"ElementaryTypeName","src":"4740:7:152","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75451,"nodeType":"ArrayTypeName","src":"4740:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":75455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75645,"src":"4758:16:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":75453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4758:7:152","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75454,"nodeType":"ArrayTypeName","src":"4758:9:152","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4739:36:152"},"scope":75651,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75650,"nodeType":"FunctionDefinition","src":"6684:29:152","nodes":[],"body":{"id":75649,"nodeType":"Block","src":"6711:2:152","nodes":[],"statements":[]},"documentation":{"id":75646,"nodeType":"StructuredDocumentation","src":"6300:379:152","text":" @dev Fallback function to receive Ether.\n This is necessary because `function _transferEther(address destination, uint128 value)` in `Mirror`\n will send `value` (ETH) to address of `BatchMulticall` smart contract\n (since in context of call `IMirror(messageCall.mirror).sendMessage(...)`: `msg.sender = address(BatchMulticall)`)"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75647,"nodeType":"ParameterList","parameters":[],"src":"6691:2:152"},"returnParameters":{"id":75648,"nodeType":"ParameterList","parameters":[],"src":"6711:0:152"},"scope":75651,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","documentation":{"id":75276,"nodeType":"StructuredDocumentation","src":"274:955:152","text":" @dev BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts.\n This is useful for reducing number of transactions when interacting with multiple Mirror contracts.\n Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network.\n Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster.\n This contract allows both batching of messages and batching of program creations.\n Furthermore, when creating programs, it offers full flow:\n - approval of WVARA ERC20 token for created program (Mirror)\n - top-up of executable balance for created program in WVARA ERC20 token (Mirror)\n - sending initial message to created program (Mirror)\n All of these actions are done in one transaction, which is much faster than doing them separately."},"fullyImplemented":true,"linearizedBaseContracts":[75651],"name":"BatchMulticall","nameLocation":"1239:14:152","scope":75652,"usedErrors":[75283,75286,75289,75292],"usedEvents":[75298]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":152} \ No newline at end of file diff --git a/ethexe/ethereum/abi/DefaultOperatorRewards.json b/ethexe/ethereum/abi/DefaultOperatorRewards.json index 1f2d1385ba5..41626a74476 100644 --- a/ethexe/ethereum/abi/DefaultOperatorRewards.json +++ b/ethexe/ethereum/abi/DefaultOperatorRewards.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"networkMiddlewareService","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balance","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimRewards","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"totalClaimable","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimed","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"distributeRewards","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root_","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"root","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"ClaimRewards","inputs":[{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DistributeRewards","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"root","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InsufficientTotalClaimable","inputs":[]},{"type":"error","name":"InsufficientTransfer","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidProof","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RootNotSet","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a034610106576001600160401b0390601f610bf238819003918201601f19168301918483118484101761010a578084926020946040528339810103126101065751906001600160a01b0382168203610106577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100f45780808316036100af575b83608052604051610ad3908161011f823960805181818161029101526107cd0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f808061008c565b60405163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c9182631a5289a9146107fc575081632c9d45b3146107b9578163315447db1461050557816348a78da71461022f5781638129fc1c1461010157508063aadf2afe146100b95763b203bb991461006d575f80fd5b346100b557806003193601126100b557602090610088610858565b61009061086e565b9060018060a01b038091165f5260018452825f2091165f528252805f20549051908152f35b5f80fd5b50346100b557806003193601126100b5576020906100d5610858565b6100dd61086e565b9060018060a01b038091165f525f8452825f2091165f528252805f20549051908152f35b9050346100b5575f3660031901126100b5577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090815460ff81851c16159167ffffffffffffffff821680159081610227575b600114908161021d575b159081610214575b50610206575067ffffffffffffffff1981166001178355816101e7575b5061018b6109d9565b6101936109d9565b60015f80516020610a7e833981519152556101aa57005b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b68ffffffffffffffffff1916680100000000000000011782555f610182565b845163f92ee8a960e01b8152fd5b9050155f610165565b303b15915061015d565b849150610153565b82346100b55760803660031901126100b557610249610858565b9161025261086e565b91604435916064356102626108f1565b8251635daf681960e11b81526001600160a01b0396871681840181905260249790959360209285919084818c817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561046c575f916104cf575b5083339116036104c1578161032b575b5050857f127e3b1db6c7a82e6a23205f7391ec1ebdef05836c0bbb2bdef8f60ba7920227969798505f525f8252845f20971696875f52815281845f20558351928352820152a360015f80516020610a7e83398151915255005b86516370a0823160e01b80825230828401528a85169750919285828d818b5afa9182156104b7575f92610488575b508851906323b872dd60e01b87830152338d83015230604483015260648201526064815260a0810181811067ffffffffffffffff8211176104765789526103a09088610920565b8751918252308383015284828c818a5afa801561046c575f9061043d575b6103c892506108d0565b94851561042e57875f5260018452865f20905f528352855f2080549186830180931161041c57505595965086957f127e3b1db6c7a82e6a23205f7391ec1ebdef05836c0bbb2bdef8f60ba7920227896102d2565b60118b91634e487b7160e01b5f52525ffd5b50855163fa942acb60e01b8152fd5b508482813d8311610465575b610453818361089a565b810103126100b5576103c891516103be565b503d610449565b88513d5f823e3d90fd5b8c604186634e487b7160e01b5f52525ffd5b9091508581813d83116104b0575b6104a0818361089a565b810103126100b55751908c610359565b503d610496565b89513d5f823e3d90fd5b865163227bf64d60e01b8152fd5b90508481813d83116104fe575b6104e6818361089a565b810103126100b5575183811681036100b5578b6102c2565b503d6104dc565b9050346100b55760a03660031901126100b557610520610858565b9161052961086e565b92610532610884565b60843567ffffffffffffffff6064358183116100b557366023840112156100b55782870135928284116100b5576024936005903660248260051b850101116100b55761057c6108f1565b60018060a01b03809b1695865f5260209b5f8d528a5f20981697885f528c52895f20549384156107a9578a51338e8201908152602081018890529097908e90896040820103996105d4601f199b8c810183528261089a565b5190208d5182810191825291825291818e0190811182821017610796578d52519020935f939291908e5b84861061075b575050505050500361074b57825f5260028852855f20845f528852855f20335f528852855f20548082111561073b5761063d90826108d0565b96835f5260018952865f20855f528952865f20549081891161072d575090610669886106d794936108d0565b5f85815260018b528881208782528b528881209190915584815260028a528781208682528a528781203382528a5287902055855163a9059cbb60e01b818a01526001600160a01b03861660248201526044810188905260649182018152906106d1908261089a565b83610920565b83516001600160a01b039390931683526020830185905233927f28047ce71e7b959f6fc3946a1bdc43b003cd0b685630fe93725eb9eafee2582690604090a460015f80516020610a7e8339815191525551908152f35b8751631e9acf1760e31b8152fd5b8651631d2d8d9760e31b81528890fd5b85516309bde33960e01b81528790fd5b8386839495969798931b85010135918281105f14610788575f525260018c5f205b9501939291908e6105fe565b915f525260018c5f2061077c565b60418f634e487b7160e01b5f525260245ffd5b8a51631c8b625960e01b81528c90fd5b82346100b5575f3660031901126100b557517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8390346100b55760603660031901126100b55760209161081a610858565b61082261086e565b9061082b610884565b6001600160a01b039182165f90815260028752848120938316815292865283832091168252845220548152f35b600435906001600160a01b03821682036100b557565b602435906001600160a01b03821682036100b557565b604435906001600160a01b03821682036100b557565b90601f8019910116810190811067ffffffffffffffff8211176108bc57604052565b634e487b7160e01b5f52604160045260245ffd5b919082039182116108dd57565b634e487b7160e01b5f52601160045260245ffd5b5f80516020610a7e833981519152600281541461090e5760029055565b604051633ee5aeb560e01b8152600490fd5b81516001600160a01b03909116915f91829160200182855af13d156109cd573d67ffffffffffffffff81116108bc5761097b916040519161096b6020601f19601f840116018461089a565b82523d5f602084013e5b83610a1a565b80519081151591826109a9575b50506109915750565b60249060405190635274afe760e01b82526004820152fd5b81925090602091810103126100b557602001518015908115036100b5575f80610988565b61097b90606090610975565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610a0857565b604051631afcd79f60e31b8152600490fd5b90610a415750805115610a2f57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610a74575b610a52575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15610a4a56fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212201d72053c0f855cbb88e42d0436b634d40e300b25fb9ebcfc3cc7439a7424dc8664736f6c63430008190033","sourceMap":"579:3060:139:-:0;;;;-1:-1:-1;;;;;579:3060:139;;;;;;;;;;-1:-1:-1;;579:3060:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;579:3060:139;;;;;;8837:64:95;579:3060:139;;;;;;;;;7896:76:95;;579:3060:139;;;;7985:34:95;7981:146;;-1:-1:-1;1396:53:139;;;579:3060;;;;;;;;1396:53;579:3060;;;;;;;;;;;7981:146:95;-1:-1:-1;;;;;;579:3060:139;;;;;;;;;;;;;8087:29:95;;579:3060:139;;8087:29:95;7981:146;;;;;7896:76;579:3060:139;;-1:-1:-1;;;7938:23:95;;;;;579:3060:139;-1:-1:-1;579:3060:139;;;;;;-1:-1:-1;579:3060:139;;;;;-1:-1:-1;579:3060:139","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c9182631a5289a9146107fc575081632c9d45b3146107b9578163315447db1461050557816348a78da71461022f5781638129fc1c1461010157508063aadf2afe146100b95763b203bb991461006d575f80fd5b346100b557806003193601126100b557602090610088610858565b61009061086e565b9060018060a01b038091165f5260018452825f2091165f528252805f20549051908152f35b5f80fd5b50346100b557806003193601126100b5576020906100d5610858565b6100dd61086e565b9060018060a01b038091165f525f8452825f2091165f528252805f20549051908152f35b9050346100b5575f3660031901126100b5577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090815460ff81851c16159167ffffffffffffffff821680159081610227575b600114908161021d575b159081610214575b50610206575067ffffffffffffffff1981166001178355816101e7575b5061018b6109d9565b6101936109d9565b60015f80516020610a7e833981519152556101aa57005b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b68ffffffffffffffffff1916680100000000000000011782555f610182565b845163f92ee8a960e01b8152fd5b9050155f610165565b303b15915061015d565b849150610153565b82346100b55760803660031901126100b557610249610858565b9161025261086e565b91604435916064356102626108f1565b8251635daf681960e11b81526001600160a01b0396871681840181905260249790959360209285919084818c817f000000000000000000000000000000000000000000000000000000000000000088165afa90811561046c575f916104cf575b5083339116036104c1578161032b575b5050857f127e3b1db6c7a82e6a23205f7391ec1ebdef05836c0bbb2bdef8f60ba7920227969798505f525f8252845f20971696875f52815281845f20558351928352820152a360015f80516020610a7e83398151915255005b86516370a0823160e01b80825230828401528a85169750919285828d818b5afa9182156104b7575f92610488575b508851906323b872dd60e01b87830152338d83015230604483015260648201526064815260a0810181811067ffffffffffffffff8211176104765789526103a09088610920565b8751918252308383015284828c818a5afa801561046c575f9061043d575b6103c892506108d0565b94851561042e57875f5260018452865f20905f528352855f2080549186830180931161041c57505595965086957f127e3b1db6c7a82e6a23205f7391ec1ebdef05836c0bbb2bdef8f60ba7920227896102d2565b60118b91634e487b7160e01b5f52525ffd5b50855163fa942acb60e01b8152fd5b508482813d8311610465575b610453818361089a565b810103126100b5576103c891516103be565b503d610449565b88513d5f823e3d90fd5b8c604186634e487b7160e01b5f52525ffd5b9091508581813d83116104b0575b6104a0818361089a565b810103126100b55751908c610359565b503d610496565b89513d5f823e3d90fd5b865163227bf64d60e01b8152fd5b90508481813d83116104fe575b6104e6818361089a565b810103126100b5575183811681036100b5578b6102c2565b503d6104dc565b9050346100b55760a03660031901126100b557610520610858565b9161052961086e565b92610532610884565b60843567ffffffffffffffff6064358183116100b557366023840112156100b55782870135928284116100b5576024936005903660248260051b850101116100b55761057c6108f1565b60018060a01b03809b1695865f5260209b5f8d528a5f20981697885f528c52895f20549384156107a9578a51338e8201908152602081018890529097908e90896040820103996105d4601f199b8c810183528261089a565b5190208d5182810191825291825291818e0190811182821017610796578d52519020935f939291908e5b84861061075b575050505050500361074b57825f5260028852855f20845f528852855f20335f528852855f20548082111561073b5761063d90826108d0565b96835f5260018952865f20855f528952865f20549081891161072d575090610669886106d794936108d0565b5f85815260018b528881208782528b528881209190915584815260028a528781208682528a528781203382528a5287902055855163a9059cbb60e01b818a01526001600160a01b03861660248201526044810188905260649182018152906106d1908261089a565b83610920565b83516001600160a01b039390931683526020830185905233927f28047ce71e7b959f6fc3946a1bdc43b003cd0b685630fe93725eb9eafee2582690604090a460015f80516020610a7e8339815191525551908152f35b8751631e9acf1760e31b8152fd5b8651631d2d8d9760e31b81528890fd5b85516309bde33960e01b81528790fd5b8386839495969798931b85010135918281105f14610788575f525260018c5f205b9501939291908e6105fe565b915f525260018c5f2061077c565b60418f634e487b7160e01b5f525260245ffd5b8a51631c8b625960e01b81528c90fd5b82346100b5575f3660031901126100b557517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8390346100b55760603660031901126100b55760209161081a610858565b61082261086e565b9061082b610884565b6001600160a01b039182165f90815260028752848120938316815292865283832091168252845220548152f35b600435906001600160a01b03821682036100b557565b602435906001600160a01b03821682036100b557565b604435906001600160a01b03821682036100b557565b90601f8019910116810190811067ffffffffffffffff8211176108bc57604052565b634e487b7160e01b5f52604160045260245ffd5b919082039182116108dd57565b634e487b7160e01b5f52601160045260245ffd5b5f80516020610a7e833981519152600281541461090e5760029055565b604051633ee5aeb560e01b8152600490fd5b81516001600160a01b03909116915f91829160200182855af13d156109cd573d67ffffffffffffffff81116108bc5761097b916040519161096b6020601f19601f840116018461089a565b82523d5f602084013e5b83610a1a565b80519081151591826109a9575b50506109915750565b60249060405190635274afe760e01b82526004820152fd5b81925090602091810103126100b557602001518015908115036100b5575f80610988565b61097b90606090610975565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610a0857565b604051631afcd79f60e31b8152600490fd5b90610a415750805115610a2f57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610a74575b610a52575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15610a4a56fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a26469706673582212201d72053c0f855cbb88e42d0436b634d40e300b25fb9ebcfc3cc7439a7424dc8664736f6c63430008190033","sourceMap":"579:3060:139:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;1026:83;579:3060;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;579:3060:139;;;;8837:64:95;579:3060:139;;;;;;;;4301:16:95;579:3060:139;;;;4726:16:95;;:34;;;;579:3060:139;4805:1:95;4790:16;:50;;;;579:3060:139;4855:13:95;:30;;;;579:3060:139;4851:91:95;;;-1:-1:-1;;;579:3060:139;;4805:1:95;579:3060:139;;;;4979:67:95;;579:3060:139;6893:76:95;;;:::i;:::-;;;:::i;:::-;4805:1;-1:-1:-1;;;;;;;;;;;579:3060:139;5066:101:95;;579:3060:139;5066:101:95;579:3060:139;;-1:-1:-1;;579:3060:139;;;;-1:-1:-1;579:3060:139;;5142:14:95;;579:3060:139;;5142:14:95;579:3060:139;4979:67:95;-1:-1:-1;;579:3060:139;;;;;4979:67:95;;;4851:91;579:3060:139;;-1:-1:-1;;;4908:23:95;;;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:95;;4726:34;;;-1:-1:-1;4726:34:95;;579:3060:139;;;;;;;-1:-1:-1;;579:3060:139;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;3217:103:98;;:::i;:::-;579:3060:139;;-1:-1:-1;;;1735:73:139;;-1:-1:-1;;;;;579:3060:139;;;1735:73;;;579:3060;;;;;;;3282:1:98;579:3060:139;;3282:1:98;;579:3060:139;;;;;1761:26;579:3060;;1735:73;;;;;;;579:3060;1735:73;;;579:3060;1812:10;;;579:3060;;1735:87;1731:147;;1892:10;1888:400;;579:3060;;;;2342:48;579:3060;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2342:48;579:3060;-1:-1:-1;;;;;;;;;;;579:3060:139;;1888:400;579:3060;;-1:-1:-1;;;1942:38:139;;;1974:4;1942:38;;;579:3060;;;;;-1:-1:-1;579:3060:139;;1942:38;579:3060;1942:38;579:3060;;1942:38;;;;;;;579:3060;1942:38;;;1888:400;579:3060;;;;;;;1829:53:115;;;;1812:10:139;1829:53:115;;;579:3060:139;1974:4;579:3060;;;;;;;;;1829:53:115;;579:3060:139;;;;;;;;;;;;;;1829:53:115;;;;:::i;:::-;579:3060:139;;2082:38;;;1974:4;2082:38;;;579:3060;2082:38;;;;;;;;;;;579:3060;2082:38;;;1888:400;2082:54;;;;:::i;:::-;2155:11;;;2151:79;;579:3060;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;579:3060:139;;;-1:-1:-1;579:3060:139;;2342:48;1888:400;;;579:3060;;;;;;;;;;;;2151:79;-1:-1:-1;579:3060:139;;-1:-1:-1;;;2193:22:139;;;2082:38;;;;;;;;;;;;;;;:::i;:::-;;;579:3060;;;;2082:54;579:3060;;2082:38;;;;;;;;579:3060;;;;;;;;;;;;;;;;;;;;;1942:38;;;;;;;;;;;;;;;;;:::i;:::-;;;579:3060;;;;;1942:38;;;;;;;;;;579:3060;;;;;;;;;1731:147;579:3060;;-1:-1:-1;;;1845:22:139;;;1735:73;;;;;;;;;;;;;;;;:::i;:::-;;;579:3060;;;;;;;;;;;;1735:73;;;;;;;;579:3060;;;;;;;;-1:-1:-1;;579:3060:139;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:103:98;;:::i;:::-;579:3060:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2738:19;;;2734:69;;579:3060;;2933:10;2922:38;;;579:3060;;;;;;;;;;;2922:38;;;579:3060;;;;2922:38;;;;;;;;;;;;;:::i;:::-;579:3060;2912:49;;579:3060;;;;;;;;;;;;;;;;;;;;;;;;;;;2889:74;;;579:3060;;;;;;2495:16:123;;;;;;1606:41;;;;;;;2813:221:139;;579:3060;;;3063:7;579:3060;;;;;;;;;;;;;2933:10;579:3060;;;;;;;;3112:26;;;;3108:92;;3219:25;;;;:::i;:::-;579:3060;;;;;;;;;;;;;;;;;;;3311:17;;;;3307:76;;3419:17;;;;1412:43:115;3419:17:139;;;:::i;:::-;579:3060;;;;;;;;;;;;;;;;;;;;;;;;;3063:7;579:3060;;;;;;;;;;;;;2933:10;579:3060;;;;;;;;;;-1:-1:-1;;;1412:43:115;;;;-1:-1:-1;;;;;579:3060:139;;;1412:43:115;;579:3060:139;;;;;;;;1412:43:115;;;;;579:3060:139;1412:43:115;;579:3060:139;1412:43:115;:::i;:::-;;;:::i;:::-;579:3060:139;;-1:-1:-1;;;;;579:3060:139;;;;;;;;;;;;2933:10;;3571:59;;579:3060;;3571:59;579:3060;-1:-1:-1;;;;;;;;;;;579:3060:139;;;;;;3307:76;579:3060;;-1:-1:-1;;;3351:21:139;;;3108:92;579:3060;;-1:-1:-1;;;3161:28:139;;579:3060;;3161:28;2813:221;579:3060;;-1:-1:-1;;;3009:14:139;;579:3060;;3009:14;2513:3:123;579:3060:139;;;;;;;;;;;;;;9318:51:123;:5;;;:51;:5;;;579:3060:139;9632:119:123;;579:3060:139;9632:119:123;579:3060:139;9632:119:123;9318:51;2513:3;579:3060:139;2480:13:123;;;;;;;9318:51;9632:119;579:3060:139;9632:119:123;;579:3060:139;9632:119:123;579:3060:139;9632:119:123;9318:51;;579:3060:139;;;;;;;;;;;;2734:69;579:3060;;-1:-1:-1;;;2780:12:139;;579:3060;;2780:12;579:3060;;;;;;;-1:-1:-1;;579:3060:139;;;;;764:51;-1:-1:-1;;;;;579:3060:139;;;;;;;;;;;;;;-1:-1:-1;;579:3060:139;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;;;;579:3060:139;;;;;;;1175:111;579:3060;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;579:3060:139;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;579:3060:139;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;579:3060:139;;;;;;:::o;:::-;;;2922:38;;579:3060;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;3326:384:98;-1:-1:-1;;;;;;;;;;;1847:1:98;579:3060:139;;3526:20:98;3522:88;;1847:1;579:3060:139;;3326:384:98:o;3522:88::-;579:3060:139;;-1:-1:-1;;;3569:30:98;;;;;4059:629:115;3462:31:116;;-1:-1:-1;;;;;579:3060:139;;;;2847:1:116;;;;3462:31;;2847:1;579:3060:139;3462:31:116;;579:3060:139;;;;;;;;;;3510:55:116;579:3060:139;;;2922:38;579:3060;3462:31:116;2922:38:139;;579:3060;;;;;;;:::i;:::-;;;;2847:1:116;3462:31;579:3060:139;;;;3510:55:116;;:::i;:::-;579:3060:139;;4551:22:115;;;;:57;;;;579:3060:139;4547:135:115;;;;4059:629;:::o;4547:135::-;579:3060:139;;;;4631:40:115;;;;;;;;;579:3060:139;4631:40:115;4551:57;4578:30;;;;3462:31:116;4578:30:115;;;579:3060:139;;;;3462:31:116;4578:30:115;579:3060:139;;;;;;;;;4551:57:115;;;;579:3060:139;3510:55:116;579:3060:139;;;;;7084:141:95;579:3060:139;8837:64:95;579:3060:139;;;;7150:18:95;7146:73;;7084:141::o;7146:73::-;579:3060:139;;-1:-1:-1;;;7191:17:95;;;;;4625:582:116;;4797:8;;-1:-1:-1;579:3060:139;;5874:21:116;:17;;6046:142;;;;;;5870:383;579:3060:139;;-1:-1:-1;;;6225:17:116;;;;;4793:408;579:3060:139;;5045:22:116;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;579:3060:139;;-1:-1:-1;;;5121:24:116;;-1:-1:-1;;;;;579:3060:139;;;5121:24:116;;;579:3060:139;;;5121:24:116;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"79504":[{"start":657,"length":32},{"start":1997,"length":32}]}},"methodIdentifiers":{"NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","balance(address,address)":"b203bb99","claimRewards(address,address,address,uint256,bytes32[])":"315447db","claimed(address,address,address)":"1a5289a9","distributeRewards(address,address,uint256,bytes32)":"48a78da7","initialize()":"8129fc1c","root(address,address)":"aadf2afe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTotalClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RootNotSet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"DistributeRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"totalClaimable\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"claimRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"}],\"name\":\"distributeRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"root\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"ClaimRewards(address,address,address,address,uint256)\":{\"params\":{\"amount\":\"amount of tokens claimed\",\"claimer\":\"address of the rewards' claimer\",\"network\":\"address of the network\",\"recipient\":\"address of the rewards' recipient\",\"token\":\"address of the token\"}},\"DistributeRewards(address,address,uint256,bytes32)\":{\"details\":\"The Merkle tree's leaves must represent an account and a claimable amount (the total amount of the reward tokens for the whole time).\",\"params\":{\"amount\":\"amount of tokens sent to the contract\",\"network\":\"address of the network that distributed rewards\",\"root\":\"Merkle root of the rewards distribution\",\"token\":\"address of the token\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"claimRewards(address,address,address,uint256,bytes32[])\":{\"params\":{\"network\":\"address of the network\",\"proof\":\"Merkle proof of the reward distribution\",\"recipient\":\"address of the rewards' recipient\",\"token\":\"address of the token\",\"totalClaimable\":\"total amount of the reward tokens for the whole time\"},\"returns\":{\"amount\":\"amount of tokens claimed\"}},\"distributeRewards(address,address,uint256,bytes32)\":{\"params\":{\"amount\":\"amount of tokens to send to the contract\",\"network\":\"address of the network\",\"root\":\"Merkle root of the reward distribution\",\"token\":\"address of the token\"}}},\"stateVariables\":{\"NETWORK_MIDDLEWARE_SERVICE\":{\"return\":\"address of the network middleware service\",\"returns\":{\"_0\":\"address of the network middleware service\"}},\"balance\":{\"params\":{\"network\":\"address of the network\",\"token\":\"address of the token\"},\"return\":\"amount of tokens that can be claimed\",\"returns\":{\"amount\":\"of tokens that can be claimed\"}},\"claimed\":{\"params\":{\"account\":\"address of the claimer\",\"network\":\"address of the network\",\"token\":\"address of the token\"},\"return\":\"amount claimed amount of tokens\",\"returns\":{\"amount\":\"claimed amount of tokens\"}},\"root\":{\"params\":{\"network\":\"address of the network\",\"token\":\"address of the token\"},\"return\":\"value Merkle root of the reward distribution\",\"returns\":{\"value\":\"Merkle root of the reward distribution\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimRewards(address,address,address,address,uint256)\":{\"notice\":\"Emitted when rewards are claimed by a particular account for a particular network using a given token.\"},\"DistributeRewards(address,address,uint256,bytes32)\":{\"notice\":\"Emitted when rewards are distributed by a particular network using a given token by providing a Merkle root.\"}},\"kind\":\"user\",\"methods\":{\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"balance(address,address)\":{\"notice\":\"Get an amount of tokens that can be claimed for a particular network.\"},\"claimRewards(address,address,address,uint256,bytes32[])\":{\"notice\":\"Claim rewards for a particular network and token by providing a Merkle proof.\"},\"claimed(address,address,address)\":{\"notice\":\"Get a claimed amount of rewards for a particular account, network, and token.\"},\"distributeRewards(address,address,uint256,bytes32)\":{\"notice\":\"Distribute rewards by a particular network using a given token by providing a Merkle root.\"},\"root(address,address)\":{\"notice\":\"Get a Merkle root of a reward distribution for a particular network and token.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/defaultOperatorRewards/DefaultOperatorRewards.sol\":\"DefaultOperatorRewards\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/core/\",\":core/=lib/core/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x6400c4bee15052e043e5d10315135972529bd1c8012f43da494dc6b4f4661058\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5d3d47d35af4373743a559ea4b9b7ecfe4bab6f0703f410c1e59959b7966ac\",\"dweb:/ipfs/QmTHdoghh4WLu4yURjGEgRk162pcwwdsG52MPGa12GqnGR\"]},\"src/contracts/defaultOperatorRewards/DefaultOperatorRewards.sol\":{\"keccak256\":\"0x7fff57795002980654dcaf3c1ab374e1ced1b3c3c9907523b3b56081aaaf54a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c5cf25521b56c21e61e92190ea8e5c38379aa3426204995668cbb1dfb75ad4b\",\"dweb:/ipfs/QmSKP2jnVrmTkrkqb2zq9nKE5qgJ4TyGuE21SrWqw6rt2d\"]},\"src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06\",\"dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkMiddlewareService","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InsufficientTotalClaimable"},{"inputs":[],"type":"error","name":"InsufficientTransfer"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidProof"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RootNotSet"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimRewards","anonymous":false},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes32","name":"root","type":"bytes32","indexed":false}],"type":"event","name":"DistributeRewards","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"balance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"totalClaimable","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"claimRewards","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"claimed","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root_","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeRewards"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"root","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"claimRewards(address,address,address,uint256,bytes32[])":{"params":{"network":"address of the network","proof":"Merkle proof of the reward distribution","recipient":"address of the rewards' recipient","token":"address of the token","totalClaimable":"total amount of the reward tokens for the whole time"},"returns":{"amount":"amount of tokens claimed"}},"distributeRewards(address,address,uint256,bytes32)":{"params":{"amount":"amount of tokens to send to the contract","network":"address of the network","root":"Merkle root of the reward distribution","token":"address of the token"}}},"version":1},"userdoc":{"kind":"user","methods":{"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"balance(address,address)":{"notice":"Get an amount of tokens that can be claimed for a particular network."},"claimRewards(address,address,address,uint256,bytes32[])":{"notice":"Claim rewards for a particular network and token by providing a Merkle proof."},"claimed(address,address,address)":{"notice":"Get a claimed amount of rewards for a particular account, network, and token."},"distributeRewards(address,address,uint256,bytes32)":{"notice":"Distribute rewards by a particular network using a given token by providing a Merkle root."},"root(address,address)":{"notice":"Get a Merkle root of a reward distribution for a particular network and token."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/core/","core/=lib/core/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/defaultOperatorRewards/DefaultOperatorRewards.sol":"DefaultOperatorRewards"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0x6400c4bee15052e043e5d10315135972529bd1c8012f43da494dc6b4f4661058","urls":["bzz-raw://da5d3d47d35af4373743a559ea4b9b7ecfe4bab6f0703f410c1e59959b7966ac","dweb:/ipfs/QmTHdoghh4WLu4yURjGEgRk162pcwwdsG52MPGa12GqnGR"],"license":"MIT"},"src/contracts/defaultOperatorRewards/DefaultOperatorRewards.sol":{"keccak256":"0x7fff57795002980654dcaf3c1ab374e1ced1b3c3c9907523b3b56081aaaf54a8","urls":["bzz-raw://3c5cf25521b56c21e61e92190ea8e5c38379aa3426204995668cbb1dfb75ad4b","dweb:/ipfs/QmSKP2jnVrmTkrkqb2zq9nKE5qgJ4TyGuE21SrWqw6rt2d"],"license":"MIT"},"src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28","urls":["bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06","dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4"],"license":"MIT"}},"version":1},"id":139} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"networkMiddlewareService","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balance","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimRewards","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"totalClaimable","type":"uint256","internalType":"uint256"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimed","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"distributeRewards","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root_","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"root","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"ClaimRewards","inputs":[{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DistributeRewards","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"root","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InsufficientTotalClaimable","inputs":[]},{"type":"error","name":"InsufficientTransfer","inputs":[]},{"type":"error","name":"InvalidProof","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RootNotSet","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a034609157601f61096938819003918201601f19168301916001600160401b03831184841017609557808492602094604052833981010312609157516001600160a01b038116810360915760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00556080526040516108bf90816100aa823960805181818161015d015261071a0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80631a5289a9146107495780632c9d45b314610705578063315447db1461042357806348a78da7146100fd578063aadf2afe146100af5763b203bb991461005b575f80fd5b346100ab5760403660031901126100ab576100746107ac565b61007c6107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100ab5760403660031901126100ab576100c86107ac565b6100d06107c2565b6001600160a01b039182165f90815260208181526040808320949093168252928352819020549051908152f35b346100ab5760803660031901126100ab576101166107ac565b61011e6107c2565b906044359160643561012e610831565b604051635daf681960e11b81526001600160a01b039384166004820181905293859190602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610363575f916103e1575b50336001600160a01b03909116036103d2578061020f575b507f127e3b1db6c7a82e6a23205f7391ec1ebdef05836c0bbb2bdef8f60ba792022791604091845f525f602052825f2060018060a01b0383165f5260205280835f20558251958652602086015260018060a01b031693a360015f51602061086a5f395f51905f5255005b6040516370a0823160e01b81523060048201526001600160a01b0384169550919291602081602481895afa908115610363575f916103a0575b50604051916323b872dd60e01b5f52336004523060245260445260205f606481808a5af160015f5114811615610381575b826040525f6060521561036e576370a0823160e01b8252306004830152602082602481895afa8015610363575f9061032f575b6102b69250610824565b93841561032057835f52600160205260405f20905f5260205260405f209081549285840180941161030c5792909155907f127e3b1db6c7a82e6a23205f7391ec1ebdef05836c0bbb2bdef8f60ba79202276101a5565b634e487b7160e01b5f52601160045260245ffd5b63fa942acb60e01b5f5260045ffd5b506020823d60201161035b575b81610349602093836107ee565b810103126100ab576102b691516102ac565b3d915061033c565b6040513d5f823e3d90fd5b85635274afe760e01b5f5260045260245ffd5b600181151661039757863b15153d151616610279565b823d5f823e3d90fd5b90506020813d6020116103ca575b816103bb602093836107ee565b810103126100ab575186610248565b3d91506103ae565b63227bf64d60e01b5f5260045ffd5b90506020813d60201161041b575b816103fc602093836107ee565b810103126100ab57516001600160a01b03811681036100ab578661018d565b3d91506103ef565b346100ab5760a03660031901126100ab5761043c6107ac565b6104446107c2565b61044c6107d8565b6084359260643567ffffffffffffffff85116100ab57366023860112156100ab5784600401359367ffffffffffffffff85116100ab573660248660051b880101116100ab57610499610831565b60018060a01b031691825f525f60205260405f2060018060a01b0385165f5260205260405f20549384156106f6576040805133602082019081528183018690529181526104e76060826107ee565b51902060405160208101918252602081526105036040826107ee565b519020945f955b8787101561054b5760248760051b8a010135908181105f1461053a575f52602052600160405f205b96019561050a565b905f52602052600160405f20610532565b036106e7575f8481526002602090815260408083206001600160a01b03851684528252808320338452909152902054808411156106d85761058c9084610824565b92845f52600160205260405f2060018060a01b0383165f5260205260405f20548085116106c957846105bd91610824565b5f8681526001602090815260408083206001600160a01b0396871680855290835281842094909455888352600282528083208484528252808320338452825280832094909455925163a9059cbb60e01b825293851660045260248690529295909290919060448180865af160015f51148116156106aa575b8560405215610697576001600160a01b039290921684526020808501849052933392907f28047ce71e7b959f6fc3946a1bdc43b003cd0b685630fe93725eb9eafee2582690604090a460015f51602061086a5f395f51905f5255604051908152f35b50635274afe760e01b5f5260045260245ffd5b60018115166106c057823b15153d151616610635565b853d5f823e3d90fd5b631e9acf1760e31b5f5260045ffd5b631d2d8d9760e31b5f5260045ffd5b6309bde33960e01b5f5260045ffd5b631c8b625960e01b5f5260045ffd5b346100ab575f3660031901126100ab576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ab5760603660031901126100ab576107626107ac565b61076a6107c2565b6107726107d8565b6001600160a01b039283165f9081526002602090815260408083209486168352938152838220929094168152908352819020549051908152f35b600435906001600160a01b03821682036100ab57565b602435906001600160a01b03821682036100ab57565b604435906001600160a01b03821682036100ab57565b90601f8019910116810190811067ffffffffffffffff82111761081057604052565b634e487b7160e01b5f52604160045260245ffd5b9190820391821161030c57565b60025f51602061086a5f395f51905f52541461085a5760025f51602061086a5f395f51905f5255565b633ee5aeb560e01b5f5260045ffdfe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220cf869a74f143abfc96a664c0e1b1e88096b36117990ee393288e6408da06c4ff64736f6c63430008230033","sourceMap":"546:2944:152:-:0;;;;;;;;;;;;;-1:-1:-1;;546:2944:152;;;;-1:-1:-1;;;;;546:2944:152;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;546:2944:152;;;;;;2365:1:30;1505:66;2365:1;1319:53:152;;546:2944;;;;;;;;1319:53;546:2944;;;;;;;;;;;;-1:-1:-1;546:2944:152;;;;;;-1:-1:-1;546:2944:152;;;;;-1:-1:-1;546:2944:152","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80631a5289a9146107495780632c9d45b314610705578063315447db1461042357806348a78da7146100fd578063aadf2afe146100af5763b203bb991461005b575f80fd5b346100ab5760403660031901126100ab576100746107ac565b61007c6107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100ab5760403660031901126100ab576100c86107ac565b6100d06107c2565b6001600160a01b039182165f90815260208181526040808320949093168252928352819020549051908152f35b346100ab5760803660031901126100ab576101166107ac565b61011e6107c2565b906044359160643561012e610831565b604051635daf681960e11b81526001600160a01b039384166004820181905293859190602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa908115610363575f916103e1575b50336001600160a01b03909116036103d2578061020f575b507f127e3b1db6c7a82e6a23205f7391ec1ebdef05836c0bbb2bdef8f60ba792022791604091845f525f602052825f2060018060a01b0383165f5260205280835f20558251958652602086015260018060a01b031693a360015f51602061086a5f395f51905f5255005b6040516370a0823160e01b81523060048201526001600160a01b0384169550919291602081602481895afa908115610363575f916103a0575b50604051916323b872dd60e01b5f52336004523060245260445260205f606481808a5af160015f5114811615610381575b826040525f6060521561036e576370a0823160e01b8252306004830152602082602481895afa8015610363575f9061032f575b6102b69250610824565b93841561032057835f52600160205260405f20905f5260205260405f209081549285840180941161030c5792909155907f127e3b1db6c7a82e6a23205f7391ec1ebdef05836c0bbb2bdef8f60ba79202276101a5565b634e487b7160e01b5f52601160045260245ffd5b63fa942acb60e01b5f5260045ffd5b506020823d60201161035b575b81610349602093836107ee565b810103126100ab576102b691516102ac565b3d915061033c565b6040513d5f823e3d90fd5b85635274afe760e01b5f5260045260245ffd5b600181151661039757863b15153d151616610279565b823d5f823e3d90fd5b90506020813d6020116103ca575b816103bb602093836107ee565b810103126100ab575186610248565b3d91506103ae565b63227bf64d60e01b5f5260045ffd5b90506020813d60201161041b575b816103fc602093836107ee565b810103126100ab57516001600160a01b03811681036100ab578661018d565b3d91506103ef565b346100ab5760a03660031901126100ab5761043c6107ac565b6104446107c2565b61044c6107d8565b6084359260643567ffffffffffffffff85116100ab57366023860112156100ab5784600401359367ffffffffffffffff85116100ab573660248660051b880101116100ab57610499610831565b60018060a01b031691825f525f60205260405f2060018060a01b0385165f5260205260405f20549384156106f6576040805133602082019081528183018690529181526104e76060826107ee565b51902060405160208101918252602081526105036040826107ee565b519020945f955b8787101561054b5760248760051b8a010135908181105f1461053a575f52602052600160405f205b96019561050a565b905f52602052600160405f20610532565b036106e7575f8481526002602090815260408083206001600160a01b03851684528252808320338452909152902054808411156106d85761058c9084610824565b92845f52600160205260405f2060018060a01b0383165f5260205260405f20548085116106c957846105bd91610824565b5f8681526001602090815260408083206001600160a01b0396871680855290835281842094909455888352600282528083208484528252808320338452825280832094909455925163a9059cbb60e01b825293851660045260248690529295909290919060448180865af160015f51148116156106aa575b8560405215610697576001600160a01b039290921684526020808501849052933392907f28047ce71e7b959f6fc3946a1bdc43b003cd0b685630fe93725eb9eafee2582690604090a460015f51602061086a5f395f51905f5255604051908152f35b50635274afe760e01b5f5260045260245ffd5b60018115166106c057823b15153d151616610635565b853d5f823e3d90fd5b631e9acf1760e31b5f5260045ffd5b631d2d8d9760e31b5f5260045ffd5b6309bde33960e01b5f5260045ffd5b631c8b625960e01b5f5260045ffd5b346100ab575f3660031901126100ab576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ab5760603660031901126100ab576107626107ac565b61076a6107c2565b6107726107d8565b6001600160a01b039283165f9081526002602090815260408083209486168352938152838220929094168152908352819020549051908152f35b600435906001600160a01b03821682036100ab57565b602435906001600160a01b03821682036100ab57565b604435906001600160a01b03821682036100ab57565b90601f8019910116810190811067ffffffffffffffff82111761081057604052565b634e487b7160e01b5f52604160045260245ffd5b9190820391821161030c57565b60025f51602061086a5f395f51905f52541461085a5760025f51602061086a5f395f51905f5255565b633ee5aeb560e01b5f5260045ffdfe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220cf869a74f143abfc96a664c0e1b1e88096b36117990ee393288e6408da06c4ff64736f6c63430008230033","sourceMap":"546:2944:152:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;546:2944:152;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;546:2944:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;546:2944:152;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;546:2944:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;546:2944:152;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;2989:103:30;;:::i;:::-;546:2944:152;;-1:-1:-1;;;1608:73:152;;-1:-1:-1;;;;;546:2944:152;;;;1608:73;;546:2944;;;;3054:1:30;;546:2944:152;;;;;;;;;1634:26;546:2944;1608:73;;;;;;;546:2944;1608:73;;;546:2944;-1:-1:-1;1685:10:152;-1:-1:-1;;;;;546:2944:152;;;1608:87;1604:147;;1765:10;1761:400;;546:2944;;2215:48;546:2944;;;;;;;;;;;;;;;;;;;-1:-1:-1;546:2944:152;;;;;-1:-1:-1;546:2944:152;;;;;;;;;;;;;;;;;2215:48;;546:2944;-1:-1:-1;;;;;;;;;;;546:2944:152;;1761:400;546:2944;;-1:-1:-1;;;1815:38:152;;1847:4;546:2944;1815:38;;546:2944;-1:-1:-1;;;;;546:2944:152;;;-1:-1:-1;546:2944:152;;;;;;;;1815:38;;;;;;;546:2944;1815:38;;;1761:400;1767:47:20;546:2944:152;10404:1148:20;10365:28;;;;546:2944:152;10404:1148:20;1685:10:152;546:2944;10404:1148:20;1847:4:152;546:2944;10404:1148:20;546:2944:152;10404:1148:20;546:2944:152;;;10404:1148:20;;;;;546:2944:152;;10404:1148:20;;;;;;;1761:400:152;10404:1148:20;546:2944:152;10404:1148:20;546:2944:152;;10404:1148:20;1766:48;1762:126;;-1:-1:-1;;;1955:38:152;;1847:4;546:2944;1955:38;;546:2944;;1955:38;546:2944;1955:38;;;;;;;;546:2944;1955:38;;;1761:400;1955:54;;;;:::i;:::-;2028:11;;;2024:79;;546:2944;;;;;;;;;2117:23;-1:-1:-1;546:2944:152;;;;-1:-1:-1;546:2944:152;;;;;;;;;;;;;;;;;1761:400;2215:48;1761:400;;546:2944;;;;;;;;;;;;2024:79;2066:22;;;546:2944;2066:22;546:2944;;2066:22;1955:38;;546:2944;1955:38;;546:2944;1955:38;;;;;;546:2944;1955:38;;;:::i;:::-;;;546:2944;;;;1955:54;546:2944;;1955:38;;;;;-1:-1:-1;1955:38:152;;;546:2944;;;;;;;;;1762:126:20;1366:40;;;;546:2944:152;1837:40:20;546:2944:152;;;;1837:40:20;10404:1148;546:2944:152;10404:1148:20;;;;;;;;;;;;;;;;;;546:2944:152;10404:1148:20;;;;;1815:38:152;;;546:2944;1815:38;;546:2944;1815:38;;;;;;546:2944;1815:38;;;:::i;:::-;;;546:2944;;;;;1815:38;;;;;;-1:-1:-1;1815:38:152;;1604:147;1718:22;;;546:2944;1718:22;546:2944;;1718:22;1608:73;;;546:2944;1608:73;;546:2944;1608:73;;;;;;546:2944;1608:73;;;:::i;:::-;;;546:2944;;;;;-1:-1:-1;;;;;546:2944:152;;;;;;1608:73;;;;;;-1:-1:-1;1608:73:152;;546:2944;;;;;;-1:-1:-1;;546:2944:152;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2989:103:30;;:::i;:::-;546:2944:152;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;546:2944:152;;;;-1:-1:-1;546:2944:152;;2611:19;;;2607:69;;546:2944;;;2793:10;546:2944;2782:38;;546:2944;;;;;;;;;2782:38;;;;546:2944;;2782:38;:::i;:::-;546:2944;2772:49;;546:2944;;;;;;;;;;;;;;;:::i;:::-;;2749:74;;5367:13:38;546:2944:152;5362:134:38;5400:3;5382:16;;;;;;546:2944:152;;;;;;;;605:59:37;:5;;;:59;:5;;;546:2944:152;889:135:37;546:2944:152;889:135:37;546:2944:152;;;889:135:37;605:59;5400:3:38;546:2944:152;5367:13:38;;;605:59:37;889:135;546:2944:152;889:135:37;546:2944:152;889:135:37;546:2944:152;;;889:135:37;605:59;;5382:16:38;4762:41;2686:199:152;;546:2944;;;;2914:7;546:2944;;;;;;;;-1:-1:-1;;;;;546:2944:152;;;;;;;;;2793:10;546:2944;;;;;;;;2963:26;;;;2959:92;;3070:25;;;;:::i;:::-;546:2944;;;;;;;;;;;;;;;;;-1:-1:-1;546:2944:152;;;;-1:-1:-1;546:2944:152;;3162:17;;;3158:76;;3270:17;;;;:::i;:::-;546:2944;;;;;;;;;;;;;-1:-1:-1;;;;;546:2944:152;;;;;;;;;;;;;;;;;;;2914:7;546:2944;;;;;;;;;;;;;2793:10;546:2944;;;;;;;;;;;8544:1067:20;;-1:-1:-1;;;8544:1067:20;;;;;546:2944:152;8544:1067:20;546:2944:152;8544:1067:20;;;;;546:2944:152;;;;;;;;;8544:1067:20;;546:2944:152;;8544:1067:20;;;;;;;5362:134:38;8544:1067:20;546:2944:152;8544:1067:20;1305:38;1301:116;;-1:-1:-1;;;;;546:2944:152;;;;;;;;;;;;;;2793:10;;546:2944;3422:59;;546:2944;;3422:59;546:2944;-1:-1:-1;;;;;;;;;;;546:2944:152;;;;;;;1301:116:20;1366:40;;;;546:2944:152;1366:40:20;546:2944:152;;;;1366:40:20;8544:1067;546:2944:152;8544:1067:20;;;;;;;;;;;;;;;;;;546:2944:152;8544:1067:20;;;;;3158:76:152;3202:21;;;546:2944;3202:21;546:2944;;3202:21;2959:92;3012:28;;;546:2944;3012:28;546:2944;;3012:28;2686:199;2860:14;;;546:2944;2860:14;546:2944;;2860:14;2607:69;2653:12;;;546:2944;2653:12;546:2944;;2653:12;546:2944;;;;;;-1:-1:-1;;546:2944:152;;;;;;720:51;-1:-1:-1;;;;;546:2944:152;;;;;;;;;;;;-1:-1:-1;;546:2944:152;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;546:2944:152;;;;;;;1131:111;546:2944;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;546:2944:152;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;546:2944:152;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;546:2944:152;;;;;;:::o;:::-;;;2782:38;;546:2944;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;546:2944:152;;;;;-1:-1:-1;546:2944:152;;;;;;;;;;;:::o;3749:292:30:-;2407:1;-1:-1:-1;;;;;;;;;;;546:2944:152;4560:63:30;3644:93;;2407:1;-1:-1:-1;;;;;;;;;;;546:2944:152;3749:292:30:o;3644:93::-;3696:30;;;-1:-1:-1;3696:30:30;;-1:-1:-1;3696:30:30","linkReferences":{},"immutableReferences":{"82153":[{"start":349,"length":32},{"start":1818,"length":32}]}},"methodIdentifiers":{"NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","balance(address,address)":"b203bb99","claimRewards(address,address,address,uint256,bytes32[])":"315447db","claimed(address,address,address)":"1a5289a9","distributeRewards(address,address,uint256,bytes32)":"48a78da7","root(address,address)":"aadf2afe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTotalClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RootNotSet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"DistributeRewards\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"totalClaimable\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"claimRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"}],\"name\":\"distributeRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"root\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"ClaimRewards(address,address,address,address,uint256)\":{\"params\":{\"amount\":\"amount of tokens claimed\",\"claimer\":\"address of the rewards' claimer\",\"network\":\"address of the network\",\"recipient\":\"address of the rewards' recipient\",\"token\":\"address of the token\"}},\"DistributeRewards(address,address,uint256,bytes32)\":{\"details\":\"The Merkle tree's leaves must represent an account and a claimable amount (the total amount of the reward tokens for the whole time).\",\"params\":{\"amount\":\"amount of tokens sent to the contract\",\"network\":\"address of the network that distributed rewards\",\"root\":\"Merkle root of the rewards distribution\",\"token\":\"address of the token\"}}},\"kind\":\"dev\",\"methods\":{\"claimRewards(address,address,address,uint256,bytes32[])\":{\"params\":{\"network\":\"address of the network\",\"proof\":\"Merkle proof of the reward distribution\",\"recipient\":\"address of the rewards' recipient\",\"token\":\"address of the token\",\"totalClaimable\":\"total amount of the reward tokens for the whole time\"},\"returns\":{\"amount\":\"amount of tokens claimed\"}},\"distributeRewards(address,address,uint256,bytes32)\":{\"params\":{\"amount\":\"amount of tokens to send to the contract\",\"network\":\"address of the network\",\"root\":\"Merkle root of the reward distribution\",\"token\":\"address of the token\"}}},\"stateVariables\":{\"NETWORK_MIDDLEWARE_SERVICE\":{\"return\":\"address of the network middleware service\",\"returns\":{\"_0\":\"address of the network middleware service\"}},\"balance\":{\"params\":{\"network\":\"address of the network\",\"token\":\"address of the token\"},\"return\":\"amount of tokens that can be claimed\",\"returns\":{\"amount\":\"of tokens that can be claimed\"}},\"claimed\":{\"params\":{\"account\":\"address of the claimer\",\"network\":\"address of the network\",\"token\":\"address of the token\"},\"return\":\"amount claimed amount of tokens\",\"returns\":{\"amount\":\"claimed amount of tokens\"}},\"root\":{\"params\":{\"network\":\"address of the network\",\"token\":\"address of the token\"},\"return\":\"value Merkle root of the reward distribution\",\"returns\":{\"value\":\"Merkle root of the reward distribution\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimRewards(address,address,address,address,uint256)\":{\"notice\":\"Emitted when rewards are claimed by a particular account for a particular network using a given token.\"},\"DistributeRewards(address,address,uint256,bytes32)\":{\"notice\":\"Emitted when rewards are distributed by a particular network using a given token by providing a Merkle root.\"}},\"kind\":\"user\",\"methods\":{\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"balance(address,address)\":{\"notice\":\"Get an amount of tokens that can be claimed for a particular network.\"},\"claimRewards(address,address,address,uint256,bytes32[])\":{\"notice\":\"Claim rewards for a particular network and token by providing a Merkle proof.\"},\"claimed(address,address,address)\":{\"notice\":\"Get a claimed amount of rewards for a particular account, network, and token.\"},\"distributeRewards(address,address,uint256,bytes32)\":{\"notice\":\"Distribute rewards by a particular network using a given token by providing a Merkle root.\"},\"root(address,address)\":{\"notice\":\"Get a Merkle root of a reward distribution for a particular network and token.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/defaultOperatorRewards/DefaultOperatorRewards.sol\":\"DefaultOperatorRewards\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0\",\"dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99\",\"dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x5e27273c7ebdbcfe7d2bad2866feb635a49db139abfe5643bdeacec4a0880225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://715bf6d5198cacf619202a75333205b19ff267f14d40daa2f7afa363580b3c95\",\"dweb:/ipfs/QmZ5kVidhB3q767655WSqgsz6YBTop1tVo7akzEDRb2PQr\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8\",\"dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9\"]},\"src/contracts/defaultOperatorRewards/DefaultOperatorRewards.sol\":{\"keccak256\":\"0x4c8ece8cf644976c5e1b5440429c71df85ccb03049591a379f30787860bbc083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69f0cd8213f6ee245a444158dd0886fec25e8fab0e1be2496b01ee5019498794\",\"dweb:/ipfs/QmWVkaCJceZ6JjwVLHhgHt5YqXHMmsPfu3BJaWVAdhrYsU\"]},\"src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xc36e2cdf8ac28b45888181e3db591b257411e42e2c50b83fe0e47575b677ae7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a8b272ab0c5d3252732f9ce0671412bd3c53092b026dc03b9286501dae2392\",\"dweb:/ipfs/QmSizhBvhFUo6APqRPtA1DJQ9TR9JA6ZyYnA5XA56ddMRw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkMiddlewareService","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InsufficientTotalClaimable"},{"inputs":[],"type":"error","name":"InsufficientTransfer"},{"inputs":[],"type":"error","name":"InvalidProof"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RootNotSet"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimRewards","anonymous":false},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes32","name":"root","type":"bytes32","indexed":false}],"type":"event","name":"DistributeRewards","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"balance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"totalClaimable","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"claimRewards","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"claimed","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root_","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeRewards"},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"root","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"claimRewards(address,address,address,uint256,bytes32[])":{"params":{"network":"address of the network","proof":"Merkle proof of the reward distribution","recipient":"address of the rewards' recipient","token":"address of the token","totalClaimable":"total amount of the reward tokens for the whole time"},"returns":{"amount":"amount of tokens claimed"}},"distributeRewards(address,address,uint256,bytes32)":{"params":{"amount":"amount of tokens to send to the contract","network":"address of the network","root":"Merkle root of the reward distribution","token":"address of the token"}}},"version":1},"userdoc":{"kind":"user","methods":{"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"balance(address,address)":{"notice":"Get an amount of tokens that can be claimed for a particular network."},"claimRewards(address,address,address,uint256,bytes32[])":{"notice":"Claim rewards for a particular network and token by providing a Merkle proof."},"claimed(address,address,address)":{"notice":"Get a claimed amount of rewards for a particular account, network, and token."},"distributeRewards(address,address,uint256,bytes32)":{"notice":"Distribute rewards by a particular network using a given token by providing a Merkle root."},"root(address,address)":{"notice":"Get a Merkle root of a reward distribution for a particular network and token."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/defaultOperatorRewards/DefaultOperatorRewards.sol":"DefaultOperatorRewards"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098","urls":["bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0","dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuard.sol":{"keccak256":"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53","urls":["bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99","dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MerkleProof.sol":{"keccak256":"0x5e27273c7ebdbcfe7d2bad2866feb635a49db139abfe5643bdeacec4a0880225","urls":["bzz-raw://715bf6d5198cacf619202a75333205b19ff267f14d40daa2f7afa363580b3c95","dweb:/ipfs/QmZ5kVidhB3q767655WSqgsz6YBTop1tVo7akzEDRb2PQr"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791","urls":["bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8","dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9"],"license":"MIT"},"src/contracts/defaultOperatorRewards/DefaultOperatorRewards.sol":{"keccak256":"0x4c8ece8cf644976c5e1b5440429c71df85ccb03049591a379f30787860bbc083","urls":["bzz-raw://69f0cd8213f6ee245a444158dd0886fec25e8fab0e1be2496b01ee5019498794","dweb:/ipfs/QmWVkaCJceZ6JjwVLHhgHt5YqXHMmsPfu3BJaWVAdhrYsU"],"license":"MIT"},"src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xc36e2cdf8ac28b45888181e3db591b257411e42e2c50b83fe0e47575b677ae7d","urls":["bzz-raw://63a8b272ab0c5d3252732f9ce0671412bd3c53092b026dc03b9286501dae2392","dweb:/ipfs/QmSizhBvhFUo6APqRPtA1DJQ9TR9JA6ZyYnA5XA56ddMRw"],"license":"MIT"}},"version":1},"id":152} \ No newline at end of file diff --git a/ethexe/ethereum/abi/DefaultStakerRewards.json b/ethexe/ethereum/abi/DefaultStakerRewards.json index bd5bf7fd348..5044809ee30 100644 --- a/ethexe/ethereum/abi/DefaultStakerRewards.json +++ b/ethexe/ethereum/abi/DefaultStakerRewards.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ADMIN_FEE_BASE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ADMIN_FEE_CLAIM_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ADMIN_FEE_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"adminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimAdminFee","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimable","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimableAdminFee","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"distributeRewards","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"params","type":"tuple","internalType":"struct IDefaultStakerRewards.InitParams","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"adminFee","type":"uint256","internalType":"uint256"},{"name":"defaultAdminRoleHolder","type":"address","internalType":"address"},{"name":"adminFeeClaimRoleHolder","type":"address","internalType":"address"},{"name":"adminFeeSetRoleHolder","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastUnclaimedReward","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"rewardIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"network","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"rewardsLength","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setAdminFee","inputs":[{"name":"adminFee_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"event","name":"ClaimAdminFee","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimRewards","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimRewardsExtra","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"firstClaimedRewardIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rewardsClaimed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DistributeRewards","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"distributeAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"adminFeeAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"InitVault","inputs":[{"name":"vault","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetAdminFee","inputs":[{"name":"adminFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"HighAdminFee","inputs":[]},{"type":"error","name":"InsufficientAdminFee","inputs":[]},{"type":"error","name":"InsufficientReward","inputs":[]},{"type":"error","name":"InvalidAdminFee","inputs":[]},{"type":"error","name":"InvalidHintsLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidRewardTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoRewardsToClaim","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c03461011c5761212c906001600160401b0390601f38849003908101601f191682019083821183831017610120578083916040968794855283398101031261011c57610057602061005083610134565b9201610134565b917ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82871c1661010b5780808316036100c7575b50505060805260a05251611fe39081610149823960805181818161047a0152611539015260a051818181610f5101526110820152f35b6001600160401b0319909116811790915583519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f8080610091565b855163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361011c5756fe6080604081815260049182361015610015575f80fd5b5f3560e01c90816301ffc9a71461159d5750806304fe474814611568578063103f290714611525578063239723ed14610fb6578063248a9ca314610f805780632c9d45b314610f3d5780632f2ff15d14610f1557806336568abe14610ed15780633f3be07214610e70578063411557d114610e4957806354fd4d5014610e2e5780635d0b520514610b1957806363497dc714610aa657806376ee5656146109215780637d1b56e5146108115780638beb60b6146107725780639162aaa01461072957806391d14854146106d95780639df4021d146103cb578063a01fe38e14610391578063a0be06f914610373578063a217fddf14610359578063ac9650d8146101de578063c00460ea146101c2578063cb6ba75d146101885763d547741f1461013d575f80fd5b34610184578060031936011261018457610182913561017d600161015f611605565b93835f525f80516020611f6e8339815191526020525f200154611a53565b611cec565b005b5f80fd5b5034610184575f36600319011261018457602090517f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa8152f35b5034610184575f36600319011261018457602090516127108152f35b50903461018457602090816003193601126101845780359067ffffffffffffffff90818311610184573660238401121561018457820135908082116101845760246005913660248560051b870101116101845786939293519161024083611700565b5f8352868301946102508561181c565b963681900360421901915f5b8781106102bf578b8b8b825191808301818452825180915281858501958260051b8601019301915f955b8287106102935785850386f35b9091929382806102af600193603f198a820301865288516116dc565b9601920196019592919092610286565b8481831b840101358481121561018457830190858201359187831161018457604401918036038313610184575f808f948f6103298f9161033d968f9360019a519482869385850198893783019084820190898252519283915e018683820152038084520182611730565b5190305af4610336611e09565b9030611eea565b610347828d611865565b52610352818c611865565b500161025c565b5034610184575f36600319011261018457602090515f8152f35b5034610184575f366003190112610184576020906001549051908152f35b5034610184575f36600319011261018457602090517fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d038152f35b5090346101845760a0366003190112610184577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82851c16159167ffffffffffffffff8116801590816106d1575b60011490816106c7575b1590816106be575b506106af5767ffffffffffffffff198116600117845582610690575b506001600160a01b039061045f6118a5565b85516302910f8b60e31b8152908316828201526020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610686575f91610657575b501561064957816104ba6118bb565b16156105f2575b506104ca611ea9565b6104d2611ea9565b60015f80516020611f8e83398151915255806104ec6118a5565b166bffffffffffffffffffffffff60a01b5f5416175f557f108cccaed2dfffe466544dfa3900b2fa5e707bb00ded59de6a950479b923216f602061052e6118a5565b83875191168152a1610541602435611dbd565b8061054a6118bb565b166105dc575b806105596118d1565b166105c6575b6105676118e7565b166105b0575b61057357005b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6105c06105bb6118e7565b611bd6565b5061056d565b6105d66105d16118d1565b611b29565b5061055f565b6105ec6105e76118bb565b611a9f565b50610550565b60243561064057816106026118d1565b1661062b57816106106118e7565b1661061d57505b5f6104c1565b845163183c854560e21b8152fd5b816106346118e7565b161561061d5750610617565b816106346118d1565b84516362df054560e01b8152fd5b610679915060203d60201161067f575b6106718183611730565b8101906118fd565b5f6104ab565b503d610667565b86513d5f823e3d90fd5b68ffffffffffffffffff1916680100000000000000011783555f61044d565b50835163f92ee8a960e01b8152fd5b9050155f610431565b303b159150610429565b84915061041f565b50346101845780600319360112610184576020916106f5611605565b90355f525f80516020611f6e8339815191528352815f209060018060a01b03165f52825260ff815f20541690519015158152f35b50346101845780600319360112610184576020906107456115ef565b61074d611605565b9060018060a01b038091165f5260028452825f2091165f528252805f20549051908152f35b5034610184576020366003190112610184578135907fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d03805f525f80516020611f6e833981519152602052815f20335f5260205260ff825f205416156107f3575081600154146107e45761018282611dbd565b5163a741a04560e01b81529050fd5b905163e2517d3f60e01b815233818501526024810191909152604490fd5b50903461018457816003193601126101845761082b6115ef565b91610834611605565b61083c611915565b7f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa805f525f80516020611f6e833981519152602052825f20335f5260205260ff835f20541615610903575060018060a01b031692835f5282602052815f20549283156108f557916108dd847f6059a38198b1dc42b3791087d1ff0fbd72b3179553c25f678cd246f52ffaaf599593602095885f5286525f8481205587611d6b565b51908152a260015f80516020611f8e83398151915255005b82516319128aeb60e21b8152fd5b825163e2517d3f60e01b815233818601526024810191909152604490fd5b5034610184576109303661165d565b939291909483865f96810103126101845761094a8661161b565b906020809701359260018060a01b0380809416951694855f5260028952865f20815f528952865f20958483165f5260038a52875f20905f528952865f20905f528852855f20549361099c8587546117d6565b80821015610a9a575092949391905b5f955f5416945b8487106109c25789898951908152f35b909192939495976109d385836116af565b506001918965ffffffffffff84840154168d818c898b610a148751976109f889611700565b5f895251630b5cf1a760e21b8152978895869485948501611879565b03915afa918215610a9057908e869493925f93610a5d575b50906005610a499392610a4f969754925f52528d5f2054916119be565b906117f7565b9901969594019291906109b2565b925090935081813d8311610a89575b610a768183611730565b81010312610184575184928e6005610a2c565b503d610a6c565b8c513d5f823e3d90fd5b905092949391906109ab565b503461018457606036600319011261018457610ac06115ef565b610ac8611605565b6044359160018060a01b038091165f526002602052835f2091165f52602052815f2090815481101561018457610afd916116af565b5065ffffffffffff600182549201541682519182526020820152f35b503461018457610b283661165d565b610b36959395949194611915565b84019360608186031261018457610b4c8161161b565b60209081830135968484013567ffffffffffffffff94858211610184570181601f82011215610184578035610b8081611804565b95610b8d88519788611730565b818752858088019260051b8401019380851161018457868401925b858410610e095750505050505060018060a01b03809116948398828116918215610df957831697885f5260028552865f20885f528552865f209a8b9a335f5260038752885f208b5f528752885f208a5f528752610c0a895f2054809d546117d6565b80821015610df15750965b8715610de15751879080610dc55750610c2e915061181c565b9a90935b5f948b9c5f925f54165b898410610cf05750505050507facd14cc0b0a59979040123e9ce2601bfc1ec40c1360bcc405e1ca188f17b7fc696979899335f5260038552865f208a5f528552865f20895f528552865f20558280610cdf575b505084519182528282015286867f88744b3615a11586336358f196290c37189c924b0ce7f612d07789041af7cde4863394a482519687528601523394a460015f80516020611f8e83398151915255005b610ce9918a611d6b565b5f82610c8f565b909296610d00859f8094966116af565b506001918c610d238c8c8a610d3e65ffffffffffff89890154169485938d611865565b519551630b5cf1a760e21b8152958693849333908501611879565b0381895afa918215610dbb57908f8e879594935f94610d85575b50906005610a49949392610d75979854935f52525f2054916119be565b98019201939192909d939d610c3c565b9350809295508391503d8311610db4575b610da08183611730565b81010312610184575184928f8e6005610d58565b503d610d96565b8f513d5f823e3d90fd5b03610dd2579a9093610c32565b50865163fe8faedf60e01b8152fd5b88516373380d9960e01b81528390fd5b905096610c15565b8651634e46966960e11b81528990fd5b8335838111610184578891610e23848480948a010161176e565b815201930192610ba8565b5034610184575f366003190112610184576020905160028152f35b5034610184575f366003190112610184575f5490516001600160a01b039091168152602090f35b503461018457606036600319011261018457610e8a6115ef565b90610e93611605565b6044356001600160a01b0381811692918390036101845780602095165f5260038552835f2091165f528352815f20905f528252805f20549051908152f35b5034610184578060031936011261018457610eea611605565b90336001600160a01b03831603610f0657506101829135611cec565b5163334bd91960e11b81529050fd5b50346101845780600319360112610184576101829135610f38600161015f611605565b611c7c565b5034610184575f36600319011261018457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461018457602036600319011261018457602091355f525f80516020611f6e83398151915282526001815f2001549051908152f35b503461018457608036600319011261018457610fd06115ef565b610fd8611605565b9067ffffffffffffffff9060643582811161018457610ffa903690870161162f565b611005959195611915565b8501936080868603126101845785359265ffffffffffff8085169485810361018457602093858a01358881116101845789611041918c0161176e565b60608b0135898111610184578c9a61105a918d0161176e565b8751635daf681960e11b81526001600160a01b039687169b81018c90526024969490888189817f00000000000000000000000000000000000000000000000000000000000000008a165afa90811561151b575f916114e5575b5085339116036114d5578542116114b8578d8642168b10156114aa5788999a9b9c9d6001549a8b9101351061149c5790888b928d5f5260058252835f205415611377575b505050505050169885518a858286816370a0823160e01b9485825230888301525afa91821561132c575f92611348575b5087516323b872dd60e01b87820152338682015230604482015260443560648201526064815260a081018181108c821117611336579161116d88928f95948c5285611e38565b868a5180958193825230888301525afa801561132c575f906112fd575b61119492506117d6565b9485156112ee576111a86111af9187611944565b80966117d6565b978a5f52818552865f206111c48782546117f7565b905588611215575b8a8a7f52c39ebed294659631d22a2341c526a86ab683888dccb1429ac42c6e413d4b7b60608c8c8c8c8c8251948552840152820152a360015f80516020611f8e83398151915255005b8a5f5260028552865f208a5f528552865f209387519188830190838210908211176112db57885289825285820194898652805490680100000000000000008210156112c9579061126a916001820181556116af565b9390936112b957505051815591516001909201805465ffffffffffff191691909216179055817f52c39ebed294659631d22a2341c526a86ab683888dccb1429ac42c6e413d4b7b60605f6111cc565b5f90634e487b7160e01b8252525ffd5b82604186634e487b7160e01b5f52525ffd5b50634e487b7160e01b5f90815260418452fd5b508551636bbdb6db60e11b8152fd5b508582813d8311611325575b6113138183611730565b8101031261018457611194915161118a565b503d611309565b88513d5f823e3d90fd5b86604186634e487b7160e01b5f52525ffd5b9091508581813d8311611370575b6113608183611730565b810103126101845751905f611127565b503d611356565b8290611398895f541695519788938493630a1e440d60e31b855284016117b4565b0381855afa93841561149257918f9493918a935f9561145a575b506113d294958d519586948593849363810da75d60e01b855284016117b4565b03915afa908115611450575f91611423575b50811590811561141a575b5061140a57885f5260058652875f20555f808881888f6110f7565b8751636a4d842960e11b81528c90fd5b9050155f6113ef565b90508681813d8311611449575b61143a8183611730565b8101031261018457515f6113e4565b503d611430565b89513d5f823e3d90fd5b91955093509182813d811161148b575b6114748183611730565b81010312610184578e936113d2938a9351946113b2565b503d61146a565b8b513d5f823e3d90fd5b8a516318c8358160e21b8152fd5b8951636a4d842960e11b8152fd5b60448e8860308c51926306dfcc6560e41b84528301524290820152fd5b885163227bf64d60e01b81528e90fd5b90508881813d8311611514575b6114fc8183611730565b8101031261018457518581168103610184575f6110b3565b503d6114f2565b8a513d5f823e3d90fd5b5034610184575f36600319011261018457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610184576020366003190112610184576020916001600160a01b0361158d6115ef565b165f528252805f20549051908152f35b833461018457602036600319011261018457359063ffffffff60e01b821680920361018457602091637965db0b60e01b81149081156115de575b5015158152f35b6301ffc9a760e01b149050836115d7565b600435906001600160a01b038216820361018457565b602435906001600160a01b038216820361018457565b35906001600160a01b038216820361018457565b9181601f840112156101845782359167ffffffffffffffff8311610184576020838186019501011161018457565b6060600319820112610184576001600160a01b039160043583811681036101845792602435908116810361018457916044359067ffffffffffffffff8211610184576116ab9160040161162f565b9091565b80548210156116c8575f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020810190811067ffffffffffffffff82111761171c57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761171c57604052565b67ffffffffffffffff811161171c57601f01601f191660200190565b81601f820112156101845780359061178582611752565b926117936040519485611730565b8284526020838301011161018457815f926020809301838601378301015290565b60409065ffffffffffff6117d3949316815281602082015201906116dc565b90565b919082039182116117e357565b634e487b7160e01b5f52601160045260245ffd5b919082018092116117e357565b67ffffffffffffffff811161171c5760051b60200190565b9061182682611804565b6118336040519182611730565b8281528092611844601f1991611804565b01905f5b82811061185457505050565b806060602080938501015201611848565b80518210156116c85760209160051b010190565b65ffffffffffff6117d3949360609360018060a01b0316835216602082015281604082015201906116dc565b6004356001600160a01b03811681036101845790565b6044356001600160a01b03811681036101845790565b6064356001600160a01b03811681036101845790565b6084356001600160a01b03811681036101845790565b90816020910312610184575180151581036101845790565b5f80516020611f8e83398151915260028154146119325760029055565b604051633ee5aeb560e01b8152600490fd5b90808202905f19818409908280831092039180830392146119b35761271090828211156119a1577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e91940990828211900360fc1b910360041c170290565b60405163227bc15360e01b8152600490fd5b505061271091500490565b9091828202915f1984820993838086109503948086039514611a3157848311156119a157829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b505080925015611a3f570490565b634e487b7160e01b5f52601260045260245ffd5b805f525f80516020611f6e83398151915260205260405f20335f5260205260ff60405f20541615611a815750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611f6e8339815191529060ff16611b23575f805260205260405f20815f5260205260405f20600160ff1982541617905533905f5f80516020611f4e8339815191528180a4600190565b50505f90565b6001600160a01b03165f8181527fe9574111c3d75c2a60e71ea1e3f5bad97bc853dcd8d24e02cb5480dfbf98e44860205260409020547f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa91905f80516020611f6e8339815191529060ff16611bcf57825f5260205260405f20815f5260205260405f20600160ff1982541617905533915f80516020611f4e8339815191525f80a4600190565b5050505f90565b6001600160a01b03165f8181527fd8487f5b11ecc8876444ee4ba0be76a299a89e56407bc0c4ef745e8722e35cb060205260409020547fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d0391905f80516020611f6e8339815191529060ff16611bcf57825f5260205260405f20815f5260205260405f20600160ff1982541617905533915f80516020611f4e8339815191525f80a4600190565b90815f525f80516020611f6e8339815191528060205260405f209160018060a01b031691825f5260205260ff60405f205416155f14611bcf57825f5260205260405f20815f5260205260405f20600160ff1982541617905533915f80516020611f4e8339815191525f80a4600190565b90815f525f80516020611f6e8339815191528060205260405f209160018060a01b031691825f5260205260ff60405f2054165f14611bcf57825f5260205260405f20815f5260205260405f2060ff19815416905533917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff83118284101761171c57611dbb92604052611e38565b565b6127108111611df7576020817f2f0d0ace1d699b471d7b39522b5c8aae053bce1b422b7a4fe8f09bd6562a4b7492600155604051908152a1565b604051630fb9dd3960e11b8152600490fd5b3d15611e33573d90611e1a82611752565b91611e286040519384611730565b82523d5f602084013e565b606090565b5f80611e609260018060a01b03169360208151910182865af1611e59611e09565b9083611eea565b8051908115159182611e8e575b5050611e765750565b60249060405190635274afe760e01b82526004820152fd5b611ea192506020809183010191016118fd565b155f80611e6d565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611ed857565b604051631afcd79f60e31b8152600490fd5b90611f115750805115611eff57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611f44575b611f22575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15611f1a56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220f80edad234d85aeaf6f280133eab5728fe7c22698c075c0fdc379bc8e8c6f03c64736f6c63430008190033","sourceMap":"1137:9841:132:-:0;;;;;;-1:-1:-1;;;;;1137:9841:132;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;8837:64:94;;1137:9841:132;;;;;;;;;7896:76:94;;1137:9841:132;;;;7985:34:94;7981:146;;-1:-1:-1;2904:28:132;;;;;2942:53;;1137:9841;;;;;;;2904:28;1137:9841;;;;;;;;;;2942:53;1137:9841;;;;;;;;;;;7981:146:94;-1:-1:-1;;;;;;1137:9841:132;;;;;;;;;;;;;8087:29:94;;1137:9841:132;;8087:29:94;7981:146;;;;;7896:76;1137:9841:132;;-1:-1:-1;;;7938:23:94;;;;;1137:9841:132;-1:-1:-1;1137:9841:132;;;;;;-1:-1:-1;1137:9841:132;;;;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;;;;;1137:9841:132;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260049182361015610015575f80fd5b5f3560e01c90816301ffc9a71461159d5750806304fe474814611568578063103f290714611525578063239723ed14610fb6578063248a9ca314610f805780632c9d45b314610f3d5780632f2ff15d14610f1557806336568abe14610ed15780633f3be07214610e70578063411557d114610e4957806354fd4d5014610e2e5780635d0b520514610b1957806363497dc714610aa657806376ee5656146109215780637d1b56e5146108115780638beb60b6146107725780639162aaa01461072957806391d14854146106d95780639df4021d146103cb578063a01fe38e14610391578063a0be06f914610373578063a217fddf14610359578063ac9650d8146101de578063c00460ea146101c2578063cb6ba75d146101885763d547741f1461013d575f80fd5b34610184578060031936011261018457610182913561017d600161015f611605565b93835f525f80516020611f6e8339815191526020525f200154611a53565b611cec565b005b5f80fd5b5034610184575f36600319011261018457602090517f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa8152f35b5034610184575f36600319011261018457602090516127108152f35b50903461018457602090816003193601126101845780359067ffffffffffffffff90818311610184573660238401121561018457820135908082116101845760246005913660248560051b870101116101845786939293519161024083611700565b5f8352868301946102508561181c565b963681900360421901915f5b8781106102bf578b8b8b825191808301818452825180915281858501958260051b8601019301915f955b8287106102935785850386f35b9091929382806102af600193603f198a820301865288516116dc565b9601920196019592919092610286565b8481831b840101358481121561018457830190858201359187831161018457604401918036038313610184575f808f948f6103298f9161033d968f9360019a519482869385850198893783019084820190898252519283915e018683820152038084520182611730565b5190305af4610336611e09565b9030611eea565b610347828d611865565b52610352818c611865565b500161025c565b5034610184575f36600319011261018457602090515f8152f35b5034610184575f366003190112610184576020906001549051908152f35b5034610184575f36600319011261018457602090517fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d038152f35b5090346101845760a0366003190112610184577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82851c16159167ffffffffffffffff8116801590816106d1575b60011490816106c7575b1590816106be575b506106af5767ffffffffffffffff198116600117845582610690575b506001600160a01b039061045f6118a5565b85516302910f8b60e31b8152908316828201526020816024817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610686575f91610657575b501561064957816104ba6118bb565b16156105f2575b506104ca611ea9565b6104d2611ea9565b60015f80516020611f8e83398151915255806104ec6118a5565b166bffffffffffffffffffffffff60a01b5f5416175f557f108cccaed2dfffe466544dfa3900b2fa5e707bb00ded59de6a950479b923216f602061052e6118a5565b83875191168152a1610541602435611dbd565b8061054a6118bb565b166105dc575b806105596118d1565b166105c6575b6105676118e7565b166105b0575b61057357005b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b6105c06105bb6118e7565b611bd6565b5061056d565b6105d66105d16118d1565b611b29565b5061055f565b6105ec6105e76118bb565b611a9f565b50610550565b60243561064057816106026118d1565b1661062b57816106106118e7565b1661061d57505b5f6104c1565b845163183c854560e21b8152fd5b816106346118e7565b161561061d5750610617565b816106346118d1565b84516362df054560e01b8152fd5b610679915060203d60201161067f575b6106718183611730565b8101906118fd565b5f6104ab565b503d610667565b86513d5f823e3d90fd5b68ffffffffffffffffff1916680100000000000000011783555f61044d565b50835163f92ee8a960e01b8152fd5b9050155f610431565b303b159150610429565b84915061041f565b50346101845780600319360112610184576020916106f5611605565b90355f525f80516020611f6e8339815191528352815f209060018060a01b03165f52825260ff815f20541690519015158152f35b50346101845780600319360112610184576020906107456115ef565b61074d611605565b9060018060a01b038091165f5260028452825f2091165f528252805f20549051908152f35b5034610184576020366003190112610184578135907fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d03805f525f80516020611f6e833981519152602052815f20335f5260205260ff825f205416156107f3575081600154146107e45761018282611dbd565b5163a741a04560e01b81529050fd5b905163e2517d3f60e01b815233818501526024810191909152604490fd5b50903461018457816003193601126101845761082b6115ef565b91610834611605565b61083c611915565b7f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa805f525f80516020611f6e833981519152602052825f20335f5260205260ff835f20541615610903575060018060a01b031692835f5282602052815f20549283156108f557916108dd847f6059a38198b1dc42b3791087d1ff0fbd72b3179553c25f678cd246f52ffaaf599593602095885f5286525f8481205587611d6b565b51908152a260015f80516020611f8e83398151915255005b82516319128aeb60e21b8152fd5b825163e2517d3f60e01b815233818601526024810191909152604490fd5b5034610184576109303661165d565b939291909483865f96810103126101845761094a8661161b565b906020809701359260018060a01b0380809416951694855f5260028952865f20815f528952865f20958483165f5260038a52875f20905f528952865f20905f528852855f20549361099c8587546117d6565b80821015610a9a575092949391905b5f955f5416945b8487106109c25789898951908152f35b909192939495976109d385836116af565b506001918965ffffffffffff84840154168d818c898b610a148751976109f889611700565b5f895251630b5cf1a760e21b8152978895869485948501611879565b03915afa918215610a9057908e869493925f93610a5d575b50906005610a499392610a4f969754925f52528d5f2054916119be565b906117f7565b9901969594019291906109b2565b925090935081813d8311610a89575b610a768183611730565b81010312610184575184928e6005610a2c565b503d610a6c565b8c513d5f823e3d90fd5b905092949391906109ab565b503461018457606036600319011261018457610ac06115ef565b610ac8611605565b6044359160018060a01b038091165f526002602052835f2091165f52602052815f2090815481101561018457610afd916116af565b5065ffffffffffff600182549201541682519182526020820152f35b503461018457610b283661165d565b610b36959395949194611915565b84019360608186031261018457610b4c8161161b565b60209081830135968484013567ffffffffffffffff94858211610184570181601f82011215610184578035610b8081611804565b95610b8d88519788611730565b818752858088019260051b8401019380851161018457868401925b858410610e095750505050505060018060a01b03809116948398828116918215610df957831697885f5260028552865f20885f528552865f209a8b9a335f5260038752885f208b5f528752885f208a5f528752610c0a895f2054809d546117d6565b80821015610df15750965b8715610de15751879080610dc55750610c2e915061181c565b9a90935b5f948b9c5f925f54165b898410610cf05750505050507facd14cc0b0a59979040123e9ce2601bfc1ec40c1360bcc405e1ca188f17b7fc696979899335f5260038552865f208a5f528552865f20895f528552865f20558280610cdf575b505084519182528282015286867f88744b3615a11586336358f196290c37189c924b0ce7f612d07789041af7cde4863394a482519687528601523394a460015f80516020611f8e83398151915255005b610ce9918a611d6b565b5f82610c8f565b909296610d00859f8094966116af565b506001918c610d238c8c8a610d3e65ffffffffffff89890154169485938d611865565b519551630b5cf1a760e21b8152958693849333908501611879565b0381895afa918215610dbb57908f8e879594935f94610d85575b50906005610a49949392610d75979854935f52525f2054916119be565b98019201939192909d939d610c3c565b9350809295508391503d8311610db4575b610da08183611730565b81010312610184575184928f8e6005610d58565b503d610d96565b8f513d5f823e3d90fd5b03610dd2579a9093610c32565b50865163fe8faedf60e01b8152fd5b88516373380d9960e01b81528390fd5b905096610c15565b8651634e46966960e11b81528990fd5b8335838111610184578891610e23848480948a010161176e565b815201930192610ba8565b5034610184575f366003190112610184576020905160028152f35b5034610184575f366003190112610184575f5490516001600160a01b039091168152602090f35b503461018457606036600319011261018457610e8a6115ef565b90610e93611605565b6044356001600160a01b0381811692918390036101845780602095165f5260038552835f2091165f528352815f20905f528252805f20549051908152f35b5034610184578060031936011261018457610eea611605565b90336001600160a01b03831603610f0657506101829135611cec565b5163334bd91960e11b81529050fd5b50346101845780600319360112610184576101829135610f38600161015f611605565b611c7c565b5034610184575f36600319011261018457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461018457602036600319011261018457602091355f525f80516020611f6e83398151915282526001815f2001549051908152f35b503461018457608036600319011261018457610fd06115ef565b610fd8611605565b9067ffffffffffffffff9060643582811161018457610ffa903690870161162f565b611005959195611915565b8501936080868603126101845785359265ffffffffffff8085169485810361018457602093858a01358881116101845789611041918c0161176e565b60608b0135898111610184578c9a61105a918d0161176e565b8751635daf681960e11b81526001600160a01b039687169b81018c90526024969490888189817f00000000000000000000000000000000000000000000000000000000000000008a165afa90811561151b575f916114e5575b5085339116036114d5578542116114b8578d8642168b10156114aa5788999a9b9c9d6001549a8b9101351061149c5790888b928d5f5260058252835f205415611377575b505050505050169885518a858286816370a0823160e01b9485825230888301525afa91821561132c575f92611348575b5087516323b872dd60e01b87820152338682015230604482015260443560648201526064815260a081018181108c821117611336579161116d88928f95948c5285611e38565b868a5180958193825230888301525afa801561132c575f906112fd575b61119492506117d6565b9485156112ee576111a86111af9187611944565b80966117d6565b978a5f52818552865f206111c48782546117f7565b905588611215575b8a8a7f52c39ebed294659631d22a2341c526a86ab683888dccb1429ac42c6e413d4b7b60608c8c8c8c8c8251948552840152820152a360015f80516020611f8e83398151915255005b8a5f5260028552865f208a5f528552865f209387519188830190838210908211176112db57885289825285820194898652805490680100000000000000008210156112c9579061126a916001820181556116af565b9390936112b957505051815591516001909201805465ffffffffffff191691909216179055817f52c39ebed294659631d22a2341c526a86ab683888dccb1429ac42c6e413d4b7b60605f6111cc565b5f90634e487b7160e01b8252525ffd5b82604186634e487b7160e01b5f52525ffd5b50634e487b7160e01b5f90815260418452fd5b508551636bbdb6db60e11b8152fd5b508582813d8311611325575b6113138183611730565b8101031261018457611194915161118a565b503d611309565b88513d5f823e3d90fd5b86604186634e487b7160e01b5f52525ffd5b9091508581813d8311611370575b6113608183611730565b810103126101845751905f611127565b503d611356565b8290611398895f541695519788938493630a1e440d60e31b855284016117b4565b0381855afa93841561149257918f9493918a935f9561145a575b506113d294958d519586948593849363810da75d60e01b855284016117b4565b03915afa908115611450575f91611423575b50811590811561141a575b5061140a57885f5260058652875f20555f808881888f6110f7565b8751636a4d842960e11b81528c90fd5b9050155f6113ef565b90508681813d8311611449575b61143a8183611730565b8101031261018457515f6113e4565b503d611430565b89513d5f823e3d90fd5b91955093509182813d811161148b575b6114748183611730565b81010312610184578e936113d2938a9351946113b2565b503d61146a565b8b513d5f823e3d90fd5b8a516318c8358160e21b8152fd5b8951636a4d842960e11b8152fd5b60448e8860308c51926306dfcc6560e41b84528301524290820152fd5b885163227bf64d60e01b81528e90fd5b90508881813d8311611514575b6114fc8183611730565b8101031261018457518581168103610184575f6110b3565b503d6114f2565b8a513d5f823e3d90fd5b5034610184575f36600319011261018457517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610184576020366003190112610184576020916001600160a01b0361158d6115ef565b165f528252805f20549051908152f35b833461018457602036600319011261018457359063ffffffff60e01b821680920361018457602091637965db0b60e01b81149081156115de575b5015158152f35b6301ffc9a760e01b149050836115d7565b600435906001600160a01b038216820361018457565b602435906001600160a01b038216820361018457565b35906001600160a01b038216820361018457565b9181601f840112156101845782359167ffffffffffffffff8311610184576020838186019501011161018457565b6060600319820112610184576001600160a01b039160043583811681036101845792602435908116810361018457916044359067ffffffffffffffff8211610184576116ab9160040161162f565b9091565b80548210156116c8575f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020810190811067ffffffffffffffff82111761171c57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761171c57604052565b67ffffffffffffffff811161171c57601f01601f191660200190565b81601f820112156101845780359061178582611752565b926117936040519485611730565b8284526020838301011161018457815f926020809301838601378301015290565b60409065ffffffffffff6117d3949316815281602082015201906116dc565b90565b919082039182116117e357565b634e487b7160e01b5f52601160045260245ffd5b919082018092116117e357565b67ffffffffffffffff811161171c5760051b60200190565b9061182682611804565b6118336040519182611730565b8281528092611844601f1991611804565b01905f5b82811061185457505050565b806060602080938501015201611848565b80518210156116c85760209160051b010190565b65ffffffffffff6117d3949360609360018060a01b0316835216602082015281604082015201906116dc565b6004356001600160a01b03811681036101845790565b6044356001600160a01b03811681036101845790565b6064356001600160a01b03811681036101845790565b6084356001600160a01b03811681036101845790565b90816020910312610184575180151581036101845790565b5f80516020611f8e83398151915260028154146119325760029055565b604051633ee5aeb560e01b8152600490fd5b90808202905f19818409908280831092039180830392146119b35761271090828211156119a1577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e91940990828211900360fc1b910360041c170290565b60405163227bc15360e01b8152600490fd5b505061271091500490565b9091828202915f1984820993838086109503948086039514611a3157848311156119a157829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b505080925015611a3f570490565b634e487b7160e01b5f52601260045260245ffd5b805f525f80516020611f6e83398151915260205260405f20335f5260205260ff60405f20541615611a815750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f80516020611f6e8339815191529060ff16611b23575f805260205260405f20815f5260205260405f20600160ff1982541617905533905f5f80516020611f4e8339815191528180a4600190565b50505f90565b6001600160a01b03165f8181527fe9574111c3d75c2a60e71ea1e3f5bad97bc853dcd8d24e02cb5480dfbf98e44860205260409020547f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa91905f80516020611f6e8339815191529060ff16611bcf57825f5260205260405f20815f5260205260405f20600160ff1982541617905533915f80516020611f4e8339815191525f80a4600190565b5050505f90565b6001600160a01b03165f8181527fd8487f5b11ecc8876444ee4ba0be76a299a89e56407bc0c4ef745e8722e35cb060205260409020547fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d0391905f80516020611f6e8339815191529060ff16611bcf57825f5260205260405f20815f5260205260405f20600160ff1982541617905533915f80516020611f4e8339815191525f80a4600190565b90815f525f80516020611f6e8339815191528060205260405f209160018060a01b031691825f5260205260ff60405f205416155f14611bcf57825f5260205260405f20815f5260205260405f20600160ff1982541617905533915f80516020611f4e8339815191525f80a4600190565b90815f525f80516020611f6e8339815191528060205260405f209160018060a01b031691825f5260205260ff60405f2054165f14611bcf57825f5260205260405f20815f5260205260405f2060ff19815416905533917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff83118284101761171c57611dbb92604052611e38565b565b6127108111611df7576020817f2f0d0ace1d699b471d7b39522b5c8aae053bce1b422b7a4fe8f09bd6562a4b7492600155604051908152a1565b604051630fb9dd3960e11b8152600490fd5b3d15611e33573d90611e1a82611752565b91611e286040519384611730565b82523d5f602084013e565b606090565b5f80611e609260018060a01b03169360208151910182865af1611e59611e09565b9083611eea565b8051908115159182611e8e575b5050611e765750565b60249060405190635274afe760e01b82526004820152fd5b611ea192506020809183010191016118fd565b155f80611e6d565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611ed857565b604051631afcd79f60e31b8152600490fd5b90611f115750805115611eff57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611f44575b611f22575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15611f1a56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220f80edad234d85aeaf6f280133eab5728fe7c22698c075c0fdc379bc8e8c6f03c64736f6c63430008190033","sourceMap":"1137:9841:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5767:26:92;1137:9841:132;;3202:4:92;1137:9841:132;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;1137:9841:132;;;;4919:24:92;1137:9841:132;3202:4:92;:::i;:::-;5767:26;:::i;:::-;1137:9841:132;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;1657:33;1137:9841;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;1540:6;1137:9841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1767:24:96;;;;:::i;:::-;1806:13;1137:9841:132;;;;-1:-1:-1;;1137:9841:132;;;1821:15:96;;;;;;1137:9841:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1627:26:96;1137:9841:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;1838:3:96;1137:9841:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4297:55:115;1137:9841:132;;;1627:26:96;1137:9841:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4255:25:115;1907:4:96;;4255:25:115;;;;:::i;:::-;1907:4:96;;4297:55:115;:::i;:::-;1857:88:96;;;;:::i;:::-;;;;;;:::i;:::-;;1137:9841:132;1806:13:96;;1137:9841:132;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;2195:23;1137:9841;;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;1799:31;1137:9841;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;8837:64:94;1137:9841:132;;;;;;;;;4301:16:94;1137:9841:132;;;;4726:16:94;;:34;;;;1137:9841:132;4805:1:94;4790:16;:50;;;;1137:9841:132;4855:13:94;:30;;;;1137:9841:132;4851:91:94;;;-1:-1:-1;;1137:9841:132;;4805:1:94;1137:9841:132;;;;4979:67:94;;1137:9841:132;-1:-1:-1;;;;;;1137:9841:132;4442:12;;:::i;:::-;1137:9841;;-1:-1:-1;;;4408:47:132;;1137:9841;;;4408:47;;;1137:9841;4408:47;1137:9841;;;4418:13;1137:9841;;4408:47;;;;;;;1137:9841;4408:47;;;1137:9841;4407:48;;4403:96;;4513:29;;;:::i;:::-;1137:9841;4513:43;4509:565;;1137:9841;6893:76:94;;;:::i;:::-;;;:::i;:::-;4805:1;-1:-1:-1;;;;;;;;;;;1137:9841:132;5127:12;;;:::i;:::-;1137:9841;;;;;;;;;;5154:23;4408:47;5164:12;;:::i;:::-;1137:9841;;;;;;;5154:23;5201:15;1137:9841;;5201:15;:::i;:::-;5232:29;;;:::i;:::-;1137:9841;5228:135;;1137:9841;5376:30;;;:::i;:::-;1137:9841;5372:139;;1137:9841;5524:28;;:::i;:::-;1137:9841;5520:133;;1137:9841;5066:101:94;;1137:9841:132;5066:101:94;1137:9841:132;;-1:-1:-1;;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;5142:14:94;;4408:47:132;;5142:14:94;1137:9841:132;5520:133;5582:60;5613:28;;:::i;:::-;5582:60;:::i;:::-;;5520:133;;5372:139;5436:64;5469:30;;:::i;:::-;5436:64;:::i;:::-;;5372:139;;5228:135;5291:61;5322:29;;:::i;:::-;5291:61;:::i;:::-;;5228:135;;4509:565;1137:9841;;;;4620:30;;;:::i;:::-;1137:9841;;;4692:28;;;:::i;:::-;1137:9841;4688:118;;4616:324;;4509:565;;;4688:118;1137:9841;;-1:-1:-1;;;4769:14:132;;;4616:324;4834:28;;;:::i;:::-;1137:9841;4834:42;4830:110;;4616:324;;;4572:492;4964:30;;;:::i;4403:96::-;1137:9841;;-1:-1:-1;;;4478:10:132;;;4408:47;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1137:9841;;;;;;;;;4979:67:94;-1:-1:-1;;1137:9841:132;;;;;4979:67:94;;;4851:91;-1:-1:-1;1137:9841:132;;-1:-1:-1;;;4908:23:94;;;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:94;;4726:34;;;-1:-1:-1;4726:34:94;;1137:9841:132;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;1137:9841:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;3169:7;1137:9841;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;1799:31;;1137:9841;;;-1:-1:-1;;;;;;;;;;;1137:9841:132;;;;;966:10:95;1137:9841:132;;;;;;;;;;4468:23:92;4464:108;;1137:9841:132;;;;10634:21;10630:71;;10724:9;;;:::i;10630:71::-;1137:9841;-1:-1:-1;;;10678:12:132;;1137:9841;-1:-1:-1;10678:12:132;4464:108:92;1137:9841:132;;-1:-1:-1;;;4514:47:92;;966:10:95;4514:47:92;;;1137:9841:132;;;;;;;;;;4514:47:92;1137:9841:132;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;3217:103:97;;:::i;:::-;1657:33:132;1137:9841;;;-1:-1:-1;;;;;;;;;;;1137:9841:132;;;;;966:10:95;1137:9841:132;;;;;;;;;;4468:23:92;4464:108;;1137:9841:132;;;;;;;;;;;;;;;;;;10217:23;;;10213:83;;1137:9841;10383:18;1137:9841;10418:40;1137:9841;;;;;;;;;;;;;;10383:18;;:::i;:::-;1137:9841;;;;10418:40;1805:1:97;-1:-1:-1;;;;;;;;;;;1137:9841:132;;10213:83;1137:9841;;-1:-1:-1;;;10263:22:132;;;4464:108:92;1137:9841:132;;-1:-1:-1;;;4514:47:92;;966:10:95;4514:47:92;;;1137:9841:132;;;;;;;;;;4514:47:92;1137:9841:132;;;;;;;;:::i;:::-;;;;;;;;;3579:36;;;1137:9841;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3679:7;1137:9841;;;;;;;;;;;;;;;;;;;3734:19;1137:9841;;;;;;;;;;;;;;;;;;;;;;;3835:42;1137:9841;;;3835:42;:::i;:::-;2641:5:126;;;;;;:13;;;;;;;1137:9841:132;;;;;3889:409;3905:18;;;;;;1137:9841;;;;;;;;3894:9;3976:34;;;;;;;;;;;:::i;:::-;1137:9841;;4075:16;;1137:9841;4075:16;;;1137:9841;;;;;;;4035:71;1137:9841;;;;;;:::i;:::-;;;;;-1:-1:-1;;;4035:71:132;;1137:9841;;;;;;;4035:71;;;:::i;:::-;;;;;;;;;;;;;;;;1137:9841;4035:71;;;3894:9;1137:9841;;4146:18;4035:161;1137:9841;;4025:171;1137:9841;;;;;;;;;;;4035:161;;:::i;:::-;4025:171;;:::i;:::-;1137:9841;;;3894:9;;1137:9841;;3894:9;;;;4035:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;1137:9841;;;;;;;;4146:18;4035:71;;;;;;;;1137:9841;;;;;;;;;2641:13:126;;;;;;;;;;1137:9841:132;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;2282:98;1137:9841;;;;;;;;;;;;;;;;;2282:98;;;;;;;;:::i;:::-;1137:9841;;;;;2282:98;;1137:9841;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:97;;;;;;;;:::i;:::-;8379:45:132;;1137:9841;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8291:133;;1137:9841;;;;8439:23;;;8435:79;;1137:9841;;;;;;8577:7;1137:9841;;;;;;;;;;;;;8661:10;;;;1137:9841;;8641:19;1137:9841;;;;;;;;;;;;;;;;;;8745:51;1137:9841;;;;;;;8745:51;:::i;:::-;2641:5:126;;;;;;:13;;;8812:19:132;;8808:75;;1137:9841;;;8897:31;;;8966:27;;;;;:::i;:::-;8893:219;;;;1137:9841;9146:42;;9203:9;1137:9841;;;;;9214:18;;;;;;8661:10;;;;;9877:83;8661:10;;;;;1137:9841;;8641:19;1137:9841;;;;;;;;;;;;;;;;;;;;;;9706:10;;9702:86;;9198:422;1137:9841;;;;;;;;;;;8661:10;;9803:59;8661:10;;9803:59;;1137:9841;;;;;;;;8661:10;9877:83;;1137:9841;-1:-1:-1;;;;;;;;;;;1137:9841:132;;9702:86;9770:6;;;;:::i;:::-;9702:86;;;;9203:9;9285:34;;;;;;;;;;:::i;:::-;1137:9841;;9387:16;;9405:22;9387:16;;;9344:84;1137:9841;9387:16;;;1137:9841;;9405:22;;;;;:::i;:::-;;1137:9841;;-1:-1:-1;;;9344:84:132;;1137:9841;;;;;8661:10;;9344:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;1137:9841;9344:84;;;9203:9;1137:9841;;;9344:174;1137:9841;;;9334:184;1137:9841;;;;;;;;;;9344:174;;:::i;9334:184::-;1137:9841;;;;9203:9;;;;;;;;;9344:84;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1137:9841;;;;;;;;;;9344:84;;;;;;;;1137:9841;;;;;;;;;8893:219;9014:44;9010:102;;8893:219;;;;;9010:102;-1:-1:-1;1137:9841:132;;-1:-1:-1;;;9081:20:132;;;8808:75;1137:9841;;-1:-1:-1;;;8854:18:132;;1137:9841;;8854:18;2641:13:126;;;;;;8435:79:132;1137:9841;;-1:-1:-1;;;8485:18:132;;1137:9841;;8485:18;1137:9841;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;1434:1;1137:9841;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;;-1:-1:-1;;;;;1137:9841:132;;;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;:::i;:::-;;;;:::i;:::-;;;-1:-1:-1;;;;;1137:9841:132;;;;;;;;;;;;;;;;2444:136;1137:9841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;966:10:95;;-1:-1:-1;;;;;1137:9841:132;;6441:34:92;6437:102;;1137:9841:132;6549:37:92;1137:9841:132;;6549:37:92;:::i;6437:102::-;1137:9841:132;-1:-1:-1;;;6498:30:92;;1137:9841:132;-1:-1:-1;6498:30:92;1137:9841:132;;;;;;;;;;;;;5350:25:92;1137:9841:132;;3202:4:92;1137:9841:132;;;:::i;3202:4:92:-;5350:25;:::i;1137:9841:132:-;;;;;;;-1:-1:-1;;1137:9841:132;;;;;1996:51;-1:-1:-1;;;;;1137:9841:132;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;;;-1:-1:-1;;;;;;;;;;;1137:9841:132;;;;;;4919:24:92;1137:9841:132;;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:97;;;;;:::i;:::-;6302:49:132;;1137:9841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;6366:73:132;;-1:-1:-1;;;;;1137:9841:132;;;6366:73;;;1137:9841;;;;;;;6392:26;1137:9841;;;6392:26;1137:9841;;6366:73;;;;;;;1137:9841;6366:73;;;1137:9841;6443:10;;;1137:9841;;6366:87;6362:147;;837:15:131;;14369:24:127;14365:103;;837:15:131;;;1137:9841:132;6523:29;;;6519:91;;1137:9841;;;;;;;;;;;;;6662:23;6658:75;;1137:9841;;;;;;;6747:18;1137:9841;;;;;;6747:34;6743:421;;1137:9841;;;;;;;;;;;;;;;;;;;7198:38;;;;7230:4;7198:38;;;1137:9841;7198:38;;;;;;;1137:9841;7198:38;;;1137:9841;;;;;;;1829:53:114;;;;6443:10:132;1829:53:114;;;1137:9841:132;7230:4;1137:9841;;;;;;;;;;;1829:53:114;;1137:9841:132;;;;;;;;;;;;;1829:53:114;1137:9841:132;;;;;;;1829:53:114;;:::i;:::-;1137:9841:132;;;7330:38;;;;;;7230:4;7330:38;;;1137:9841;7330:38;;;;;;1137:9841;7330:38;;;1137:9841;7330:54;;;;:::i;:::-;7399:11;;;7395:69;;7499:40;7576:23;7499:40;;;:::i;:::-;7576:23;;;:::i;:::-;1137:9841;;;;;;;;;;7610:42;1137:9841;;;7610:42;:::i;:::-;1137:9841;;7667:20;7663:149;;1137:9841;;;7827:78;1137:9841;;;;;;;;;;;;;;;;;7827:78;1137:9841;-1:-1:-1;;;;;;;;;;;1137:9841:132;;7663:149;1137:9841;;;7703:7;1137:9841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7732:68;;;1137:9841;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;;;7827:78;1137:9841;-1:-1:-1;7663:149:132;;1137:9841;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1137:9841:132;;;;;;;;7395:69;-1:-1:-1;1137:9841:132;;-1:-1:-1;;;7433:20:132;;;7330:38;;;;;;;;;;;;;;;:::i;:::-;;;1137:9841;;;;7330:54;1137:9841;;7330:38;;;;;;;;1137:9841;;;;;;;;;;;;;;;;;;;;;7198:38;;;;;;;;;;;;;;;;;:::i;:::-;;;1137:9841;;;;;7198:38;;;;;;;;;6743:421;1137:9841;;6821:57;1137:9841;;;;;;;;;;;;;;6821:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1137:9841;6821:57;;;6743:421;1137:9841;6915:55;1137:9841;;;;;;;;;;;;;;6915:55;;;;;:::i;:::-;;;;;;;;;;1137:9841;6915:55;;;6743:421;6989:18;;;:39;;;;;6743:421;6985:109;;;1137:9841;;;6747:18;1137:9841;;;;;;6743:421;;;;;;;;6985:109;1137:9841;;-1:-1:-1;;;7055:24:132;;1137:9841;;7055:24;6989:39;7011:17;;;6989:39;;;6915:55;;;;;;;;;;;;;;;;:::i;:::-;;;1137:9841;;;;;6915:55;;;;;;;;;1137:9841;;;;;;;;;6821:57;;;-1:-1:-1;6821:57:132;-1:-1:-1;6821:57:132;;;;;;;;;;;;;:::i;:::-;;;1137:9841;;;;;;6915:55;1137:9841;;;;6821:57;;;;;;;;;1137:9841;;;;;;;;;6658:75;1137:9841;;-1:-1:-1;;;6708:14:132;;;6519:91;1137:9841;;-1:-1:-1;;;6575:24:132;;;14365:103:127;1137:9841:132;;;14447:2:127;1137:9841:132;;14416:41:127;;;;;;;;1137:9841:132;837:15:131;1137:9841:132;;;;14416:41:127;6362:147:132;1137:9841;;-1:-1:-1;;;6476:22:132;;1137:9841;;6476:22;6366:73;;;;;;;;;;;;;;;;:::i;:::-;;;1137:9841;;;;;;;;;;;;6366:73;;;;;;;;;1137:9841;;;;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;1894:38;-1:-1:-1;;;;;1137:9841:132;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;-1:-1:-1;;;;;1137:9841:132;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1137:9841:132;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:92;;;:87;;;;1137:9841:132;;;;;;;3551:87:92;-1:-1:-1;;;1133:40:98;;-1:-1:-1;3551:87:92;;;1137:9841:132;;;;-1:-1:-1;;;;;1137:9841:132;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1137:9841:132;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1137:9841:132;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1137:9841:132;;;;;-1:-1:-1;;;;;1137:9841:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;-1:-1:-1;1137:9841:132;;-1:-1:-1;1137:9841:132;;;;;;-1:-1:-1;1137:9841:132;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1137:9841:132;;;;;;;;-1:-1:-1;;1137:9841:132;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1137:9841:132;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1137:9841:132;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1137:9841:132;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1137:9841:132;;;;;;;:::o;:::-;4513:29;1137:9841;-1:-1:-1;;;;;1137:9841:132;;;;;;;:::o;:::-;4964:30;1137:9841;-1:-1:-1;;;;;1137:9841:132;;;;;;;:::o;:::-;4834:28;1137:9841;-1:-1:-1;;;;;1137:9841:132;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;3326:384:97:-;-1:-1:-1;;;;;;;;;;;1847:1:97;1137:9841:132;;3526:20:97;3522:88;;1847:1;1137:9841:132;;3326:384:97:o;3522:88::-;1137:9841:132;;-1:-1:-1;;;3569:30:97;;;;;3803:4116:126;;1137:9841:132;;;;-1:-1:-1;;3803:4116:126;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;1540:6:132;5065:20:126;;;;;5061:88;;1137:9841:132;5435:300:126;;;;;;;;1137:9841:132;;5435:300:126;;5999:371;;6436:21;1137:9841:132;3803:4116:126;:::o;5061:88::-;1137:9841:132;;-1:-1:-1;;;5112:22:126;;;;;4591:368;1137:9841:132;;1540:6;1137:9841;;;4918:26:126;:::o;3803:4116::-;;;1137:9841:132;;;;-1:-1:-1;;3803:4116:126;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;1137:9841:132;-1:-1:-1;1137:9841:132;5954:31:126;;5999:371;;;6813:1;1137:9841:132;;6794:1:126;1137:9841:132;6793:21:126;1137:9841:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:126;;;;-1:-1:-1;5999:371:126;;;5435:300;;;;;;1137:9841:132;5435:300:126;;5999:371;6436:21;1137:9841:132;3803:4116:126;:::o;4591:368::-;1137:9841:132;;;;;;;;;4918:26:126;:::o;1137:9841:132:-;;;;-1:-1:-1;1137:9841:132;;;;;-1:-1:-1;1137:9841:132;4148:103:92;1137:9841:132;-1:-1:-1;1137:9841:132;-1:-1:-1;;;;;;;;;;;1137:9841:132;;;-1:-1:-1;1137:9841:132;966:10:95;-1:-1:-1;1137:9841:132;;;;;-1:-1:-1;1137:9841:132;;;4468:23:92;4464:108;;4148:103;:::o;4464:108::-;1137:9841:132;;;;4514:47:92;;;;;;966:10:95;4514:47:92;;;1137:9841:132;;;;;4514:47:92;7270:387;-1:-1:-1;;;;;1137:9841:132;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:92;1137:9841:132;;;;;;;;;;;;;;;;;;;;7509:4:92;1137:9841:132;;;;;;;;966:10:95;7532:40:92;1137:9841:132;-1:-1:-1;;;;;;;;;;;7532:40:92;;;7509:4;7586:11;:::o;7432:219::-;7628:12;;1137:9841:132;7628:12:92;:::o;7270:387::-;-1:-1:-1;;;;;1137:9841:132;-1:-1:-1;1137:9841:132;;;;;;;;;;1657:33;;1137:9841;-1:-1:-1;;;;;;;;;;;2887:71:92;1137:9841:132;;;;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;1137:9841:132;7509:4:92;1137:9841:132;;;;;;;;966:10:95;7532:40:92;-1:-1:-1;;;;;;;;;;;;7532:40:92;;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:92;:::o;7270:387::-;-1:-1:-1;;;;;1137:9841:132;-1:-1:-1;1137:9841:132;;;;;;;;;;1799:31;;1137:9841;-1:-1:-1;;;;;;;;;;;2887:71:92;1137:9841:132;;;;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;1137:9841:132;7509:4:92;1137:9841:132;;;;;;;;966:10:95;7532:40:92;-1:-1:-1;;;;;;;;;;;;7532:40:92;;7509:4;7586:11;:::o;7270:387::-;;1137:9841:132;-1:-1:-1;1137:9841:132;-1:-1:-1;;;;;;;;;;;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;;;;;;;;;-1:-1:-1;1137:9841:132;;;;;-1:-1:-1;1137:9841:132;;;7436:23:92;7432:219;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;1137:9841:132;7509:4:92;1137:9841:132;;;;;;;;966:10:95;7532:40:92;-1:-1:-1;;;;;;;;;;;;7532:40:92;;7509:4;7586:11;:::o;7892:388::-;;1137:9841:132;-1:-1:-1;1137:9841:132;-1:-1:-1;;;;;;;;;;;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;;;;;;;;;-1:-1:-1;1137:9841:132;;;;;-1:-1:-1;1137:9841:132;;;8055:219:92;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;-1:-1:-1;1137:9841:132;;;;-1:-1:-1;1137:9841:132;;;;;;;;966:10:95;8155:40:92;;-1:-1:-1;8155:40:92;;1137:9841:132;8209:11:92;:::o;1303:160:114:-;1137:9841:132;;-1:-1:-1;;;1412:43:114;;;;-1:-1:-1;;;;;1137:9841:132;;;1412:43:114;;;1137:9841:132;;;;;;;;;1412:43:114;;;1137:9841:132;;;;;;;;;;;;;1412:43:114;1137:9841:132;;;1412:43:114;:::i;:::-;1303:160::o;10747:229:132:-;1540:6;10824:26;;10820:81;;1137:9841;;10947:22;1137:9841;10911:20;1137:9841;;;;;;10947:22;10747:229::o;10820:81::-;1137:9841;;-1:-1:-1;;;10873:17:132;;;;;1137:9841;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1137:9841:132;;;;:::o;:::-;;;:::o;4059:629:114:-;2847:1:115;4059:629:114;3510:55:115;4059:629:114;1137:9841:132;;;;;;3462:31:115;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;1137:9841:132;;4551:22:114;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;1137:9841:132;;;;4631:40:114;;;;;;;;;1137:9841:132;4631:40:114;4551:57;4578:30;;;3462:31:115;4578:30:114;;;;;;;;:::i;:::-;4577:31;4551:57;;;;7084:141:94;1137:9841:132;8837:64:94;1137:9841:132;;;;7150:18:94;7146:73;;7084:141::o;7146:73::-;1137:9841:132;;-1:-1:-1;;;7191:17:94;;;;;4625:582:115;;4797:8;;-1:-1:-1;1137:9841:132;;5874:21:115;:17;;6046:142;;;;;;5870:383;1137:9841:132;;-1:-1:-1;;;6225:17:115;;;;;4793:408;1137:9841:132;;5045:22:115;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;1137:9841:132;;-1:-1:-1;;;5121:24:115;;-1:-1:-1;;;;;1137:9841:132;;;5121:24:115;;;1137:9841:132;;;5121:24:115;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"78656":[{"start":1146,"length":32},{"start":5433,"length":32}],"78659":[{"start":3921,"length":32},{"start":4226,"length":32}]}},"methodIdentifiers":{"ADMIN_FEE_BASE()":"c00460ea","ADMIN_FEE_CLAIM_ROLE()":"cb6ba75d","ADMIN_FEE_SET_ROLE()":"a01fe38e","DEFAULT_ADMIN_ROLE()":"a217fddf","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","VAULT()":"411557d1","VAULT_FACTORY()":"103f2907","adminFee()":"a0be06f9","claimAdminFee(address,address)":"7d1b56e5","claimRewards(address,address,bytes)":"5d0b5205","claimable(address,address,bytes)":"76ee5656","claimableAdminFee(address)":"04fe4748","distributeRewards(address,address,uint256,bytes)":"239723ed","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize((address,uint256,address,address,address))":"9df4021d","lastUnclaimedReward(address,address,address)":"3f3be072","multicall(bytes[])":"ac9650d8","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rewards(address,address,uint256)":"63497dc7","rewardsLength(address,address)":"9162aaa0","setAdminFee(uint256)":"8beb60b6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HighAdminFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAdminFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientReward\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAdminFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidHintsLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRewardTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimAdminFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstClaimedRewardIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardsClaimed\",\"type\":\"uint256\"}],\"name\":\"ClaimRewardsExtra\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"distributeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"adminFeeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"DistributeRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"InitVault\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"adminFee\",\"type\":\"uint256\"}],\"name\":\"SetAdminFee\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_FEE_BASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADMIN_FEE_CLAIM_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADMIN_FEE_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"adminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"claimAdminFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"claimable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"claimableAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"distributeRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"adminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"defaultAdminRoleHolder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adminFeeClaimRoleHolder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adminFeeSetRoleHolder\",\"type\":\"address\"}],\"internalType\":\"struct IDefaultStakerRewards.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"lastUnclaimedReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rewardIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"rewardsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"adminFee_\",\"type\":\"uint256\"}],\"name\":\"setAdminFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"ClaimAdminFee(address,uint256)\":{\"params\":{\"amount\":\"amount of the fee claimed\",\"recipient\":\"account that received the fee\"}},\"ClaimRewards(address,address,address,uint256,address)\":{\"params\":{\"amount\":\"amount of tokens\",\"claimer\":\"address of the claimer\",\"network\":\"network whose rewards are claimed\",\"recipient\":\"address of the tokens' recipient\",\"token\":\"address of the token\"}},\"ClaimRewardsExtra(address,address,address,uint256,uint256)\":{\"params\":{\"claimer\":\"address of the claimer\",\"firstClaimedRewardIndex\":\"first claimed reward index\",\"network\":\"network whose rewards are claimed\",\"rewardsClaimed\":\"number of rewards claimed\",\"token\":\"address of the token\"}},\"DistributeRewards(address,address,uint256,uint256,uint48)\":{\"params\":{\"adminFeeAmount\":\"amount of tokens to keep as an admin fee\",\"distributeAmount\":\"amount of tokens to distribute\",\"network\":\"network on behalf of which the reward is distributed\",\"timestamp\":\"timestamp of the distribution\",\"token\":\"address of the token\"}},\"InitVault(address)\":{\"params\":{\"vault\":\"address of the vault\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetAdminFee(uint256)\":{\"params\":{\"adminFee\":\"new admin fee\"}}},\"kind\":\"dev\",\"methods\":{\"claimAdminFee(address,address)\":{\"details\":\"Only the vault owner can call this function.\",\"params\":{\"recipient\":\"account that will receive the fee\",\"token\":\"address of the token\"}},\"claimRewards(address,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"recipient\":\"address of the tokens' recipient\",\"token\":\"address of the token\"}},\"claimable(address,address,bytes)\":{\"params\":{\"account\":\"address of the claimer\",\"data\":\"some data to use\",\"token\":\"address of the token\"},\"returns\":{\"amount\":\"of claimable tokens\"}},\"distributeRewards(address,address,uint256,bytes)\":{\"params\":{\"amount\":\"amount of tokens\",\"data\":\"some data to use\",\"network\":\"network on behalf of which the reward to distribute\",\"token\":\"address of the token\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"rewardsLength(address,address)\":{\"params\":{\"network\":\"address of the network\",\"token\":\"address of the token\"},\"returns\":{\"_0\":\"total number of the rewards using the token by the network\"}},\"setAdminFee(uint256)\":{\"details\":\"Only the ADMIN_FEE_SET_ROLE holder can call this function.\",\"params\":{\"adminFee\":\"admin fee (up to ADMIN_FEE_BASE inclusively)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"stateVariables\":{\"ADMIN_FEE_BASE\":{\"return\":\"maximum admin fee\",\"returns\":{\"_0\":\"maximum admin fee\"}},\"ADMIN_FEE_CLAIM_ROLE\":{\"return\":\"identifier of the admin fee claimer role\",\"returns\":{\"_0\":\"identifier of the admin fee claimer role\"}},\"ADMIN_FEE_SET_ROLE\":{\"return\":\"identifier of the admin fee setter role\",\"returns\":{\"_0\":\"identifier of the admin fee setter role\"}},\"NETWORK_MIDDLEWARE_SERVICE\":{\"return\":\"address of the network middleware service\",\"returns\":{\"_0\":\"address of the network middleware service\"}},\"VAULT\":{\"return\":\"address of the vault\",\"returns\":{\"_0\":\"address of the vault\"}},\"VAULT_FACTORY\":{\"return\":\"address of the vault factory\",\"returns\":{\"_0\":\"address of the vault factory\"}},\"adminFee\":{\"return\":\"admin fee\",\"returns\":{\"_0\":\"admin fee\"}},\"claimableAdminFee\":{\"params\":{\"token\":\"address of the token\"},\"return\":\"amount claimable admin fee\",\"returns\":{\"amount\":\"claimable admin fee\"}},\"lastUnclaimedReward\":{\"params\":{\"account\":\"address of the account\",\"network\":\"address of the network\",\"token\":\"address of the token\"},\"return\":\"rewardIndex first index of the unclaimed rewards\",\"returns\":{\"rewardIndex\":\"first index of the unclaimed rewards\"}},\"rewards\":{\"params\":{\"network\":\"address of the network\",\"rewardIndex\":\"index of the reward distribution using the token\",\"token\":\"address of the token\"},\"returns\":{\"amount\":\"amount of tokens to be distributed\",\"timestamp\":\"time point stakes must taken into account at\"}},\"version\":{\"details\":\"Must return 2 for this one.\",\"return\":\"version of the staker rewards contract\",\"returns\":{\"_0\":\"version of the staker rewards contract\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimAdminFee(address,uint256)\":{\"notice\":\"Emitted when an admin fee is claimed.\"},\"ClaimRewards(address,address,address,uint256,address)\":{\"notice\":\"Emitted when a reward is claimed.\"},\"ClaimRewardsExtra(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a reward is claimed.\"},\"DistributeRewards(address,address,uint256,uint256,uint48)\":{\"notice\":\"Emitted when a reward is distributed.\"},\"InitVault(address)\":{\"notice\":\"Emitted when a vault is initialized.\"},\"SetAdminFee(uint256)\":{\"notice\":\"Emitted when the admin fee is set.\"}},\"kind\":\"user\",\"methods\":{\"ADMIN_FEE_BASE()\":{\"notice\":\"Get the maximum admin fee (= 100%).\"},\"ADMIN_FEE_CLAIM_ROLE()\":{\"notice\":\"Get the admin fee claimer's role.\"},\"ADMIN_FEE_SET_ROLE()\":{\"notice\":\"Get the admin fee setter's role.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"VAULT()\":{\"notice\":\"Get the vault's address.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"adminFee()\":{\"notice\":\"Get an admin fee.\"},\"claimAdminFee(address,address)\":{\"notice\":\"Claim an admin fee.\"},\"claimRewards(address,address,bytes)\":{\"notice\":\"Claim rewards using a given token.\"},\"claimable(address,address,bytes)\":{\"notice\":\"Get an amount of rewards claimable by a particular account of a given token.\"},\"claimableAdminFee(address)\":{\"notice\":\"Get a claimable admin fee amount for a particular token.\"},\"distributeRewards(address,address,uint256,bytes)\":{\"notice\":\"Distribute rewards on behalf of a particular network using a given token.\"},\"lastUnclaimedReward(address,address,address)\":{\"notice\":\"Get the first index of the unclaimed rewards using a particular token by a given account.\"},\"rewards(address,address,uint256)\":{\"notice\":\"Get a particular reward distribution.\"},\"rewardsLength(address,address)\":{\"notice\":\"Get a total number of rewards using a particular token for a given network.\"},\"setAdminFee(uint256)\":{\"notice\":\"Set an admin fee.\"},\"version()\":{\"notice\":\"Get a version of the staker rewards contract (different versions mean different interfaces).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol\":\"DefaultStakerRewards\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/core/\",\":core/=lib/core/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0x1545b1796f0b94f811d95b8b208c0668dacfc7768247d22b63161a47c4c5ef4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1dccf7856b960b2ed7565906b457812ad8d29a15d403f17702ac7e090680300\",\"dweb:/ipfs/QmUqqibiekFv84mdq7zeyRF56mLJbFyFUxWKTrz8Twzkpn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol\":{\"keccak256\":\"0xc60f6705f87f380fd6d2ec1842556e281e8b72d16821f22b09414eae506e2234\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1264bc4bae61e14ced96c2df6b38432ad57e34ba3a1d0ed75835098952067bd8\",\"dweb:/ipfs/Qmerz4LoRqqmihxLwHgEooJoeRw1yHrC41Dne78h6LsQJn\"]},\"src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"HighAdminFee"},{"inputs":[],"type":"error","name":"InsufficientAdminFee"},{"inputs":[],"type":"error","name":"InsufficientReward"},{"inputs":[],"type":"error","name":"InvalidAdminFee"},{"inputs":[],"type":"error","name":"InvalidHintsLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidRewardTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoRewardsToClaim"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimAdminFee","anonymous":false},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false}],"type":"event","name":"ClaimRewards","anonymous":false},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"firstClaimedRewardIndex","type":"uint256","indexed":false},{"internalType":"uint256","name":"rewardsClaimed","type":"uint256","indexed":false}],"type":"event","name":"ClaimRewardsExtra","anonymous":false},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"distributeAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"adminFeeAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"timestamp","type":"uint48","indexed":false}],"type":"event","name":"DistributeRewards","anonymous":false},{"inputs":[{"internalType":"address","name":"vault","type":"address","indexed":false}],"type":"event","name":"InitVault","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"uint256","name":"adminFee","type":"uint256","indexed":false}],"type":"event","name":"SetAdminFee","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_FEE_BASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_FEE_CLAIM_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_FEE_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"adminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimAdminFee"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"claimable","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"claimableAdminFee","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"distributeRewards"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct IDefaultStakerRewards.InitParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"adminFee","type":"uint256"},{"internalType":"address","name":"defaultAdminRoleHolder","type":"address"},{"internalType":"address","name":"adminFeeClaimRoleHolder","type":"address"},{"internalType":"address","name":"adminFeeSetRoleHolder","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"lastUnclaimedReward","outputs":[{"internalType":"uint256","name":"rewardIndex","type":"uint256"}]},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"network","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"rewards","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"rewardsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"adminFee_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setAdminFee"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"claimAdminFee(address,address)":{"details":"Only the vault owner can call this function.","params":{"recipient":"account that will receive the fee","token":"address of the token"}},"claimRewards(address,address,bytes)":{"params":{"data":"some data to use","recipient":"address of the tokens' recipient","token":"address of the token"}},"claimable(address,address,bytes)":{"params":{"account":"address of the claimer","data":"some data to use","token":"address of the token"},"returns":{"amount":"of claimable tokens"}},"distributeRewards(address,address,uint256,bytes)":{"params":{"amount":"amount of tokens","data":"some data to use","network":"network on behalf of which the reward to distribute","token":"address of the token"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"multicall(bytes[])":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Receives and executes a batch of function calls on this contract."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"rewardsLength(address,address)":{"params":{"network":"address of the network","token":"address of the token"},"returns":{"_0":"total number of the rewards using the token by the network"}},"setAdminFee(uint256)":{"details":"Only the ADMIN_FEE_SET_ROLE holder can call this function.","params":{"adminFee":"admin fee (up to ADMIN_FEE_BASE inclusively)"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"ADMIN_FEE_BASE()":{"notice":"Get the maximum admin fee (= 100%)."},"ADMIN_FEE_CLAIM_ROLE()":{"notice":"Get the admin fee claimer's role."},"ADMIN_FEE_SET_ROLE()":{"notice":"Get the admin fee setter's role."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"VAULT()":{"notice":"Get the vault's address."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"adminFee()":{"notice":"Get an admin fee."},"claimAdminFee(address,address)":{"notice":"Claim an admin fee."},"claimRewards(address,address,bytes)":{"notice":"Claim rewards using a given token."},"claimable(address,address,bytes)":{"notice":"Get an amount of rewards claimable by a particular account of a given token."},"claimableAdminFee(address)":{"notice":"Get a claimable admin fee amount for a particular token."},"distributeRewards(address,address,uint256,bytes)":{"notice":"Distribute rewards on behalf of a particular network using a given token."},"lastUnclaimedReward(address,address,address)":{"notice":"Get the first index of the unclaimed rewards using a particular token by a given account."},"rewards(address,address,uint256)":{"notice":"Get a particular reward distribution."},"rewardsLength(address,address)":{"notice":"Get a total number of rewards using a particular token for a given network."},"setAdminFee(uint256)":{"notice":"Set an admin fee."},"version()":{"notice":"Get a version of the staker rewards contract (different versions mean different interfaces)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/core/","core/=lib/core/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol":"DefaultStakerRewards"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol":{"keccak256":"0x1545b1796f0b94f811d95b8b208c0668dacfc7768247d22b63161a47c4c5ef4e","urls":["bzz-raw://a1dccf7856b960b2ed7565906b457812ad8d29a15d403f17702ac7e090680300","dweb:/ipfs/QmUqqibiekFv84mdq7zeyRF56mLJbFyFUxWKTrz8Twzkpn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol":{"keccak256":"0xc60f6705f87f380fd6d2ec1842556e281e8b72d16821f22b09414eae506e2234","urls":["bzz-raw://1264bc4bae61e14ced96c2df6b38432ad57e34ba3a1d0ed75835098952067bd8","dweb:/ipfs/Qmerz4LoRqqmihxLwHgEooJoeRw1yHrC41Dne78h6LsQJn"],"license":"MIT"},"src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"}},"version":1},"id":132} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"vaultFactory","type":"address","internalType":"address"},{"name":"networkMiddlewareService","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ADMIN_FEE_BASE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ADMIN_FEE_CLAIM_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ADMIN_FEE_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"VAULT_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"adminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimAdminFee","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewards","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimable","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimableAdminFee","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"distributeRewards","inputs":[{"name":"network","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"params","type":"tuple","internalType":"struct IDefaultStakerRewards.InitParams","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"adminFee","type":"uint256","internalType":"uint256"},{"name":"defaultAdminRoleHolder","type":"address","internalType":"address"},{"name":"adminFeeClaimRoleHolder","type":"address","internalType":"address"},{"name":"adminFeeSetRoleHolder","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lastUnclaimedReward","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"rewardIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"network","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"rewardsLength","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setAdminFee","inputs":[{"name":"adminFee_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"event","name":"ClaimAdminFee","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimRewards","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimRewardsExtra","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"firstClaimedRewardIndex","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rewardsClaimed","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DistributeRewards","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"distributeAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"adminFeeAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"InitVault","inputs":[{"name":"vault","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetAdminFee","inputs":[{"name":"adminFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"HighAdminFee","inputs":[]},{"type":"error","name":"InsufficientAdminFee","inputs":[]},{"type":"error","name":"InsufficientReward","inputs":[]},{"type":"error","name":"InvalidAdminFee","inputs":[]},{"type":"error","name":"InvalidHintsLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidRewardTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoRewardsToClaim","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]},{"type":"error","name":"NotNetworkMiddleware","inputs":[]},{"type":"error","name":"NotVault","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c03461014557601f61228c38819003918201601f19168301916001600160401b0383118484101761014957808492604094855283398101031261014557610052602061004b8361015d565b920161015d565b9060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00555f51602061226c5f395f51905f525460ff8160401c16610136576002600160401b03196001600160401b038216016100e0575b5060805260a0526040516120fa9081610172823960805181818161047f0152611672015260a051818181611042015261118a0152f35b6001600160401b0319166001600160401b039081175f51602061226c5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100aa565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101455756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146116d95750806304fe4748146116a1578063103f29071461165d578063239723ed146110b0578063248a9ca3146110715780632c9d45b31461102d5780632f2ff15d14610fe357806336568abe14610f9f5780633f3be07214610f2f578063411557d114610f0857806354fd4d5014610eed5780635d0b520514610bbb57806363497dc714610b4057806376ee5656146109b65780637d1b56e51461089c5780638beb60b6146107f95780639162aaa0146107a957806391d14854146107545780639df4021d146103d5578063a01fe38e1461039b578063a0be06f91461037e578063a217fddf14610364578063ac9650d8146101e5578063c00460ea146101c9578063cb6ba75d1461018f5763d547741f1461013a575f80fd5b3461018b57604036600319011261018b57610189600435610159611742565b9061018461017f825f525f5160206120655f395f51905f52602052600160405f20015490565b611b6d565b611e52565b005b5f80fd5b3461018b575f36600319011261018b5760206040517f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa8152f35b3461018b575f36600319011261018b5760206040516127108152f35b3461018b57602036600319011261018b576004356001600160401b03811161018b573660238201121561018b578060040135906001600160401b03821161018b573660248360051b8301011161018b57604051919060206102468185611840565b5f845280840191601f19820136843761025e8461191d565b903681900360421901905f5b868110156103035760248160051b830101358381121561018b578201906024820135916001600160401b03831161018b57604401823603811361018b57826102e16102e792898b8e60019860405196879585870137840190838201905f8252519283915e01015f815203601f198101835282611840565b30611fb8565b6102f18287611966565b526102fc8186611966565b500161026a565b5050506040519082820192808352815180945260408301938160408260051b8601019301915f955b8287106103385785850386f35b909192938280610354600193603f198a8203018652885161181c565b960192019601959291909261032b565b3461018b575f36600319011261018b5760206040515f8152f35b3461018b575f36600319011261018b576020600154604051908152f35b3461018b575f36600319011261018b5760206040517fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d038152f35b3461018b5760a036600319011261018b575f5160206120a55f395f51905f525460ff8160401c1615906001600160401b0381168015908161074c575b6001149081610742575b159081610739575b5061072a5767ffffffffffffffff1981166001175f5160206120a55f395f51905f5255816106fe575b506104556119a6565b6040516302910f8b60e31b81526001600160a01b03918216600482015290602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106f3575f916106b8575b50156106a9576001600160a01b036104c56119bc565b161561061b575b6001600160a01b036104dc6119a6565b166bffffffffffffffffffffffff60a01b5f5416175f557f108cccaed2dfffe466544dfa3900b2fa5e707bb00ded59de6a950479b923216f602061051e6119a6565b6040516001600160a01b039091168152a161053a602435611f6f565b6001600160a01b0361054a6119bc565b16610605575b6001600160a01b036105606119d2565b166105ef575b6001600160a01b036105766119e8565b166105d9575b61058257005b68ff0000000000000000195f5160206120a55f395f51905f5254165f5160206120a55f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b6105e96105e46119e8565b611d08565b5061057c565b6105ff6105fa6119d2565b611c4f565b50610566565b6106156106106119bc565b611bb3565b50610550565b602435610685576001600160a01b036106326119d2565b16610661576001600160a01b036106476119e8565b16610652575b6104cc565b63183c854560e21b5f5260045ffd5b6001600160a01b036106716119e8565b1661064d5763183c854560e21b5f5260045ffd5b6001600160a01b036106956119d2565b166104cc5763183c854560e21b5f5260045ffd5b6362df054560e01b5f5260045ffd5b90506020813d6020116106eb575b816106d360209383611840565b8101031261018b5751801515810361018b57826104af565b3d91506106c6565b6040513d5f823e3d90fd5b68ffffffffffffffffff191668010000000000000001175f5160206120a55f395f51905f52558161044c565b63f92ee8a960e01b5f5260045ffd5b90501583610423565b303b15915061041b565b839150610411565b3461018b57604036600319011261018b5761076d611742565b6004355f525f5160206120655f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461018b57604036600319011261018b576107c261172c565b6107ca611742565b6001600160a01b039182165f908152600260209081526040808320949093168252928352819020549051908152f35b3461018b57602036600319011261018b57335f9081527fd8487f5b11ecc8876444ee4ba0be76a299a89e56407bc0c4ef745e8722e35cb060205260409020546004359060ff16156108655780600154146108565761018990611f6f565b63a741a04560e01b5f5260045ffd5b63e2517d3f60e01b5f52336004527fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d0360245260445ffd5b3461018b57604036600319011261018b576108b561172c565b6108bd611742565b6108c56119fe565b335f9081527fe9574111c3d75c2a60e71ea1e3f5bad97bc853dcd8d24e02cb5480dfbf98e448602052604090205460ff161561097f576001600160a01b03165f818152600460205260409020549091811561097057816109567f6059a38198b1dc42b3791087d1ff0fbd72b3179553c25f678cd246f52ffaaf5993602093865f52600485525f604081205586611eee565b604051908152a260015f5160206120855f395f51905f5255005b6319128aeb60e21b5f5260045ffd5b63e2517d3f60e01b5f52336004527f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa60245260445ffd5b3461018b576109c436611799565b91906040815f948101031261018b579060206109df83611758565b6001600160a01b039586165f818152600260209081526040808320948a168084529482528083209987168352600382528083209383529281528282209382529290925290205485549093919091013590610a3a9084906118d8565b9081808210911802185f9260018060a01b035f5416602096601f198801905b848710610a6a578888604051908152f35b90919293949596610a7b85836117ef565b509065ffffffffffff600183015416604051610a978c82611840565b5f815285368d8301378b828b610ac16040519485938493630b5cf1a760e21b85526004850161197a565b03818a5afa9384156106f3578c915f95610b0b575b50600194610afd936005879694610af79454925f525260405f205491611aba565b906118f9565b980196959401929190610a59565b9450929084813d8111610b39575b610b238183611840565b8101031261018b57925192918b90610af7610ad6565b503d610b19565b3461018b57606036600319011261018b57610b5961172c565b610b61611742565b6044359160018060a01b03165f52600260205260405f209060018060a01b03165f5260205260405f20805482101561018b57604091610b9f916117ef565b5065ffffffffffff600182549201541682519182526020820152f35b3461018b57610bc936611799565b610bd5939291936119fe565b83019260608185031261018b57610beb81611758565b6020820135916040810135906001600160401b03821161018b57019480601f8701121561018b578535610c1d81611906565b96610c2b6040519889611840565b81885260208089019260051b8201019183831161018b5760208201905b838210610ec0575050506001600160a01b039283169487938716925090508115610eb15760018060a01b031694855f52600260205260405f2060018060a01b0386165f5260205260405f2092335f52600360205260405f20875f5260205260405f2060018060a01b0387165f5260205260405f205497610cc98986546118d8565b95868082109118028087189614610ea25751859080610e885750610ced915061191d565b925b5f9388915f9160018060a01b035f54165b888410610dc55750505050335f52600360205260405f20875f5260205260405f2060018060a01b0387165f5260205260405f20558280610db4575b5050604051918252602082015283837f88744b3615a11586336358f196290c37189c924b0ce7f612d07789041af7cde460403394a460405193845260208401527facd14cc0b0a59979040123e9ce2601bfc1ec40c1360bcc405e1ca188f17b7fc660403394a460015f5160206120855f395f51905f5255005b610dbe9187611eee565b8682610d3b565b9091939296610e1090610dd885876117ef565b5065ffffffffffff600182015416906020610df38c88611966565b5160405180968192630b5cf1a760e21b835286336004850161197a565b0381885afa9384156106f3575f94610e51575b5091610af7600194610e4593869554905f52600560205260405f205491611aba565b98019301939190610d00565b9350916020843d8211610e80575b81610e6c60209383611840565b8101031261018b5792519291610af7610e23565b3d9150610e5f565b03610e935792610cef565b63fe8faedf60e01b5f5260045ffd5b6373380d9960e01b5f5260045ffd5b634e46966960e11b5f5260045ffd5b81356001600160401b03811161018b57602091610ee287848094880101611861565b815201910190610c48565b3461018b575f36600319011261018b57602060405160028152f35b3461018b575f36600319011261018b575f546040516001600160a01b039091168152602090f35b3461018b57606036600319011261018b57610f4861172c565b610f50611742565b604435916001600160a01b038316830361018b576001600160a01b039081165f908152600360209081526040808320948416835293815283822094909216815292815291819020549051908152f35b3461018b57604036600319011261018b57610fb8611742565b336001600160a01b03821603610fd45761018990600435611e52565b63334bd91960e11b5f5260045ffd5b3461018b57604036600319011261018b57610189600435611002611742565b9061102861017f825f525f5160206120655f395f51905f52602052600160405f20015490565b611dc1565b3461018b575f36600319011261018b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461018b57602036600319011261018b5760206110a86004355f525f5160206120655f395f51905f52602052600160405f20015490565b604051908152f35b3461018b57608036600319011261018b576110c961172c565b6110d1611742565b906064356001600160401b03811161018b576110f190369060040161176c565b6110fc9391936119fe565b83019060808483031261018b57833565ffffffffffff81169283820361018b5760408601356001600160401b03811161018b578161113b918801611861565b906060870135906001600160401b03821161018b5761115b918801611861565b604051635daf681960e11b81526001600160a01b039687166004820181905296919291602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106f3575f9161161b575b50336001600160a01b039091160361160c5765ffffffffffff42116115f45765ffffffffffff421685101561156057600154966020013587116115e557845f52600560205260405f2054156114c0575b50506040516370a0823160e01b81523060048201526001600160a01b039290921694919050602081602481885afa9081156106f3575f9161148e575b50604051906323b872dd60e01b5f52336004523060245260443560445260205f606481808a5af160015f511481161561146f575b826040525f6060521561145c576370a0823160e01b8252306004830152602082602481895afa80156106f3575f90611428575b6112b792506118d8565b908115611419576112cb6112d29183611a36565b80926118d8565b90845f52600460205260405f206112ea8282546118f9565b90558161133c575b907f52c39ebed294659631d22a2341c526a86ab683888dccb1429ac42c6e413d4b7b9260609260405192835260208301526040820152a360015f5160206120855f395f51905f5255005b90845f52600260205260405f20845f5260205260405f209260405192604084018481106001600160401b038211176114055760405282845260208401948286528054680100000000000000008110156114055761139e916001820181556117ef565b9590956113f25765ffffffffffff60017f52c39ebed294659631d22a2341c526a86ab683888dccb1429ac42c6e413d4b7b976060975181550191511665ffffffffffff1982541617905591925092506112f2565b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b636bbdb6db60e11b5f5260045ffd5b506020823d602011611454575b8161144260209383611840565b8101031261018b576112b791516112ad565b3d9150611435565b85635274afe760e01b5f5260045260245ffd5b600181151661148557863b15153d15161661127a565b823d5f823e3d90fd5b90506020813d6020116114b8575b816114a960209383611840565b8101031261018b575185611246565b3d915061149c565b5f54604051630a1e440d60e31b8152936001600160a01b0390911691602090859081906114f19085600484016118b6565b0381855afa9384156106f3575f946115aa575b50916020916115299360405180958194829363810da75d60e01b8452600484016118b6565b03915afa9081156106f3575f91611578575b50811590811561156f575b5061156057825f52600560205260405f205584808061120a565b636a4d842960e11b5f5260045ffd5b90501586611546565b90506020813d6020116115a2575b8161159360209383611840565b8101031261018b57518661153b565b3d9150611586565b91929093506020823d6020116115dd575b816115c860209383611840565b8101031261018b579051929091906020611504565b3d91506115bb565b6318c8358160e21b5f5260045ffd5b6306dfcc6560e41b5f5260306004524260245260445ffd5b63227bf64d60e01b5f5260045ffd5b90506020813d602011611655575b8161163660209383611840565b8101031261018b57516001600160a01b038116810361018b57886111ba565b3d9150611629565b3461018b575f36600319011261018b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461018b57602036600319011261018b576001600160a01b036116c261172c565b165f526004602052602060405f2054604051908152f35b3461018b57602036600319011261018b576004359063ffffffff60e01b821680920361018b57602091637965db0b60e01b811490811561171b575b5015158152f35b6301ffc9a760e01b14905083611714565b600435906001600160a01b038216820361018b57565b602435906001600160a01b038216820361018b57565b35906001600160a01b038216820361018b57565b9181601f8401121561018b578235916001600160401b03831161018b576020838186019501011161018b57565b606060031982011261018b576004356001600160a01b038116810361018b57916024356001600160a01b038116810361018b5791604435906001600160401b03821161018b576117eb9160040161176c565b9091565b8054821015611808575f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90601f801991011681019081106001600160401b0382111761140557604052565b81601f8201121561018b578035906001600160401b0382116114055760405192611895601f8401601f191660200185611840565b8284526020838301011161018b57815f926020809301838601378301015290565b60409065ffffffffffff6118d59493168152816020820152019061181c565b90565b919082039182116118e557565b634e487b7160e01b5f52601160045260245ffd5b919082018092116118e557565b6001600160401b0381116114055760051b60200190565b9061192782611906565b6119346040519182611840565b8281528092611945601f1991611906565b01905f5b82811061195557505050565b806060602080938501015201611949565b80518210156118085760209160051b010190565b65ffffffffffff6118d5949360609360018060a01b03168352166020820152816040820152019061181c565b6004356001600160a01b038116810361018b5790565b6044356001600160a01b038116810361018b5790565b6064356001600160a01b038116810361018b5790565b6084356001600160a01b038116810361018b5790565b60025f5160206120855f395f51905f525414611a275760025f5160206120855f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b9091905f905f198482099084810292838084109303928084039314611aad57826127101115611a9b57507fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e919394612710910990828211900360fc1b910360041c170290565b634e487b71905260116020526024601cfd5b5050506127109192500490565b90915f198383099280830292838086109503948086039514611b4b5784831115611b335790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b505080925015611b59570490565b634e487b7160e01b5f52601260045260245ffd5b5f8181525f5160206120655f395f51905f526020908152604080832033845290915290205460ff1615611b9d5750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611c4a576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f5160206120455f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fe9574111c3d75c2a60e71ea1e3f5bad97bc853dcd8d24e02cb5480dfbf98e448602052604090205460ff16611c4a576001600160a01b03165f8181527fe9574111c3d75c2a60e71ea1e3f5bad97bc853dcd8d24e02cb5480dfbf98e44860205260408120805460ff191660011790553391907f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa905f5160206120455f395f51905f529080a4600190565b6001600160a01b0381165f9081527fd8487f5b11ecc8876444ee4ba0be76a299a89e56407bc0c4ef745e8722e35cb0602052604090205460ff16611c4a576001600160a01b03165f8181527fd8487f5b11ecc8876444ee4ba0be76a299a89e56407bc0c4ef745e8722e35cb060205260408120805460ff191660011790553391907fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d03905f5160206120455f395f51905f529080a4600190565b5f8181525f5160206120655f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16611e4c575f8181525f5160206120655f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f5160206120455f395f51905f529080a4600190565b50505f90565b5f8181525f5160206120655f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615611e4c575f8181525f5160206120655f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f5114821615611f4e575b60405215611f2e5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b906001811516611f6657823b15153d15161690611f23565b503d5f823e3d90fd5b6127108111611fa9576020817f2f0d0ace1d699b471d7b39522b5c8aae053bce1b422b7a4fe8f09bd6562a4b7492600155604051908152a1565b630fb9dd3960e11b5f5260045ffd5b905f8091602081519101845af48080612031575b15611fec5750506040513d81523d5f602083013e60203d82010160405290565b1561201157639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15612022576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580611fcc5750813b1515611fcc56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212208044073537faab0d8dd28959df54d63d49b304cb78a0f88a0e222d532d3d376a64736f6c63430008230033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1104:9865:154:-:0;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;2365:1:30;;1505:66;2365:1;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;;7894:76:16;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;7983:34:16;7979:146;;-1:-1:-1;2882:28:154;;;2920:53;;1104:9865;;;;;;;;2882:28;1104:9865;;;;;;;;;;2920:53;1104:9865;;;;;;;;;;;7979:146:16;-1:-1:-1;;;;;;1104:9865:154;-1:-1:-1;;;;;1104:9865:154;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;;8085:29:16;;1104:9865:154;;8085:29:16;7979:146;;;7894:76;7936:23;;;-1:-1:-1;7936:23:16;;-1:-1:-1;7936:23:16;1104:9865:154;-1:-1:-1;1104:9865:154;;;;;;-1:-1:-1;1104:9865:154;;;;;-1:-1:-1;1104:9865:154;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146116d95750806304fe4748146116a1578063103f29071461165d578063239723ed146110b0578063248a9ca3146110715780632c9d45b31461102d5780632f2ff15d14610fe357806336568abe14610f9f5780633f3be07214610f2f578063411557d114610f0857806354fd4d5014610eed5780635d0b520514610bbb57806363497dc714610b4057806376ee5656146109b65780637d1b56e51461089c5780638beb60b6146107f95780639162aaa0146107a957806391d14854146107545780639df4021d146103d5578063a01fe38e1461039b578063a0be06f91461037e578063a217fddf14610364578063ac9650d8146101e5578063c00460ea146101c9578063cb6ba75d1461018f5763d547741f1461013a575f80fd5b3461018b57604036600319011261018b57610189600435610159611742565b9061018461017f825f525f5160206120655f395f51905f52602052600160405f20015490565b611b6d565b611e52565b005b5f80fd5b3461018b575f36600319011261018b5760206040517f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa8152f35b3461018b575f36600319011261018b5760206040516127108152f35b3461018b57602036600319011261018b576004356001600160401b03811161018b573660238201121561018b578060040135906001600160401b03821161018b573660248360051b8301011161018b57604051919060206102468185611840565b5f845280840191601f19820136843761025e8461191d565b903681900360421901905f5b868110156103035760248160051b830101358381121561018b578201906024820135916001600160401b03831161018b57604401823603811361018b57826102e16102e792898b8e60019860405196879585870137840190838201905f8252519283915e01015f815203601f198101835282611840565b30611fb8565b6102f18287611966565b526102fc8186611966565b500161026a565b5050506040519082820192808352815180945260408301938160408260051b8601019301915f955b8287106103385785850386f35b909192938280610354600193603f198a8203018652885161181c565b960192019601959291909261032b565b3461018b575f36600319011261018b5760206040515f8152f35b3461018b575f36600319011261018b576020600154604051908152f35b3461018b575f36600319011261018b5760206040517fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d038152f35b3461018b5760a036600319011261018b575f5160206120a55f395f51905f525460ff8160401c1615906001600160401b0381168015908161074c575b6001149081610742575b159081610739575b5061072a5767ffffffffffffffff1981166001175f5160206120a55f395f51905f5255816106fe575b506104556119a6565b6040516302910f8b60e31b81526001600160a01b03918216600482015290602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106f3575f916106b8575b50156106a9576001600160a01b036104c56119bc565b161561061b575b6001600160a01b036104dc6119a6565b166bffffffffffffffffffffffff60a01b5f5416175f557f108cccaed2dfffe466544dfa3900b2fa5e707bb00ded59de6a950479b923216f602061051e6119a6565b6040516001600160a01b039091168152a161053a602435611f6f565b6001600160a01b0361054a6119bc565b16610605575b6001600160a01b036105606119d2565b166105ef575b6001600160a01b036105766119e8565b166105d9575b61058257005b68ff0000000000000000195f5160206120a55f395f51905f5254165f5160206120a55f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b6105e96105e46119e8565b611d08565b5061057c565b6105ff6105fa6119d2565b611c4f565b50610566565b6106156106106119bc565b611bb3565b50610550565b602435610685576001600160a01b036106326119d2565b16610661576001600160a01b036106476119e8565b16610652575b6104cc565b63183c854560e21b5f5260045ffd5b6001600160a01b036106716119e8565b1661064d5763183c854560e21b5f5260045ffd5b6001600160a01b036106956119d2565b166104cc5763183c854560e21b5f5260045ffd5b6362df054560e01b5f5260045ffd5b90506020813d6020116106eb575b816106d360209383611840565b8101031261018b5751801515810361018b57826104af565b3d91506106c6565b6040513d5f823e3d90fd5b68ffffffffffffffffff191668010000000000000001175f5160206120a55f395f51905f52558161044c565b63f92ee8a960e01b5f5260045ffd5b90501583610423565b303b15915061041b565b839150610411565b3461018b57604036600319011261018b5761076d611742565b6004355f525f5160206120655f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b3461018b57604036600319011261018b576107c261172c565b6107ca611742565b6001600160a01b039182165f908152600260209081526040808320949093168252928352819020549051908152f35b3461018b57602036600319011261018b57335f9081527fd8487f5b11ecc8876444ee4ba0be76a299a89e56407bc0c4ef745e8722e35cb060205260409020546004359060ff16156108655780600154146108565761018990611f6f565b63a741a04560e01b5f5260045ffd5b63e2517d3f60e01b5f52336004527fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d0360245260445ffd5b3461018b57604036600319011261018b576108b561172c565b6108bd611742565b6108c56119fe565b335f9081527fe9574111c3d75c2a60e71ea1e3f5bad97bc853dcd8d24e02cb5480dfbf98e448602052604090205460ff161561097f576001600160a01b03165f818152600460205260409020549091811561097057816109567f6059a38198b1dc42b3791087d1ff0fbd72b3179553c25f678cd246f52ffaaf5993602093865f52600485525f604081205586611eee565b604051908152a260015f5160206120855f395f51905f5255005b6319128aeb60e21b5f5260045ffd5b63e2517d3f60e01b5f52336004527f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa60245260445ffd5b3461018b576109c436611799565b91906040815f948101031261018b579060206109df83611758565b6001600160a01b039586165f818152600260209081526040808320948a168084529482528083209987168352600382528083209383529281528282209382529290925290205485549093919091013590610a3a9084906118d8565b9081808210911802185f9260018060a01b035f5416602096601f198801905b848710610a6a578888604051908152f35b90919293949596610a7b85836117ef565b509065ffffffffffff600183015416604051610a978c82611840565b5f815285368d8301378b828b610ac16040519485938493630b5cf1a760e21b85526004850161197a565b03818a5afa9384156106f3578c915f95610b0b575b50600194610afd936005879694610af79454925f525260405f205491611aba565b906118f9565b980196959401929190610a59565b9450929084813d8111610b39575b610b238183611840565b8101031261018b57925192918b90610af7610ad6565b503d610b19565b3461018b57606036600319011261018b57610b5961172c565b610b61611742565b6044359160018060a01b03165f52600260205260405f209060018060a01b03165f5260205260405f20805482101561018b57604091610b9f916117ef565b5065ffffffffffff600182549201541682519182526020820152f35b3461018b57610bc936611799565b610bd5939291936119fe565b83019260608185031261018b57610beb81611758565b6020820135916040810135906001600160401b03821161018b57019480601f8701121561018b578535610c1d81611906565b96610c2b6040519889611840565b81885260208089019260051b8201019183831161018b5760208201905b838210610ec0575050506001600160a01b039283169487938716925090508115610eb15760018060a01b031694855f52600260205260405f2060018060a01b0386165f5260205260405f2092335f52600360205260405f20875f5260205260405f2060018060a01b0387165f5260205260405f205497610cc98986546118d8565b95868082109118028087189614610ea25751859080610e885750610ced915061191d565b925b5f9388915f9160018060a01b035f54165b888410610dc55750505050335f52600360205260405f20875f5260205260405f2060018060a01b0387165f5260205260405f20558280610db4575b5050604051918252602082015283837f88744b3615a11586336358f196290c37189c924b0ce7f612d07789041af7cde460403394a460405193845260208401527facd14cc0b0a59979040123e9ce2601bfc1ec40c1360bcc405e1ca188f17b7fc660403394a460015f5160206120855f395f51905f5255005b610dbe9187611eee565b8682610d3b565b9091939296610e1090610dd885876117ef565b5065ffffffffffff600182015416906020610df38c88611966565b5160405180968192630b5cf1a760e21b835286336004850161197a565b0381885afa9384156106f3575f94610e51575b5091610af7600194610e4593869554905f52600560205260405f205491611aba565b98019301939190610d00565b9350916020843d8211610e80575b81610e6c60209383611840565b8101031261018b5792519291610af7610e23565b3d9150610e5f565b03610e935792610cef565b63fe8faedf60e01b5f5260045ffd5b6373380d9960e01b5f5260045ffd5b634e46966960e11b5f5260045ffd5b81356001600160401b03811161018b57602091610ee287848094880101611861565b815201910190610c48565b3461018b575f36600319011261018b57602060405160028152f35b3461018b575f36600319011261018b575f546040516001600160a01b039091168152602090f35b3461018b57606036600319011261018b57610f4861172c565b610f50611742565b604435916001600160a01b038316830361018b576001600160a01b039081165f908152600360209081526040808320948416835293815283822094909216815292815291819020549051908152f35b3461018b57604036600319011261018b57610fb8611742565b336001600160a01b03821603610fd45761018990600435611e52565b63334bd91960e11b5f5260045ffd5b3461018b57604036600319011261018b57610189600435611002611742565b9061102861017f825f525f5160206120655f395f51905f52602052600160405f20015490565b611dc1565b3461018b575f36600319011261018b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461018b57602036600319011261018b5760206110a86004355f525f5160206120655f395f51905f52602052600160405f20015490565b604051908152f35b3461018b57608036600319011261018b576110c961172c565b6110d1611742565b906064356001600160401b03811161018b576110f190369060040161176c565b6110fc9391936119fe565b83019060808483031261018b57833565ffffffffffff81169283820361018b5760408601356001600160401b03811161018b578161113b918801611861565b906060870135906001600160401b03821161018b5761115b918801611861565b604051635daf681960e11b81526001600160a01b039687166004820181905296919291602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156106f3575f9161161b575b50336001600160a01b039091160361160c5765ffffffffffff42116115f45765ffffffffffff421685101561156057600154966020013587116115e557845f52600560205260405f2054156114c0575b50506040516370a0823160e01b81523060048201526001600160a01b039290921694919050602081602481885afa9081156106f3575f9161148e575b50604051906323b872dd60e01b5f52336004523060245260443560445260205f606481808a5af160015f511481161561146f575b826040525f6060521561145c576370a0823160e01b8252306004830152602082602481895afa80156106f3575f90611428575b6112b792506118d8565b908115611419576112cb6112d29183611a36565b80926118d8565b90845f52600460205260405f206112ea8282546118f9565b90558161133c575b907f52c39ebed294659631d22a2341c526a86ab683888dccb1429ac42c6e413d4b7b9260609260405192835260208301526040820152a360015f5160206120855f395f51905f5255005b90845f52600260205260405f20845f5260205260405f209260405192604084018481106001600160401b038211176114055760405282845260208401948286528054680100000000000000008110156114055761139e916001820181556117ef565b9590956113f25765ffffffffffff60017f52c39ebed294659631d22a2341c526a86ab683888dccb1429ac42c6e413d4b7b976060975181550191511665ffffffffffff1982541617905591925092506112f2565b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b636bbdb6db60e11b5f5260045ffd5b506020823d602011611454575b8161144260209383611840565b8101031261018b576112b791516112ad565b3d9150611435565b85635274afe760e01b5f5260045260245ffd5b600181151661148557863b15153d15161661127a565b823d5f823e3d90fd5b90506020813d6020116114b8575b816114a960209383611840565b8101031261018b575185611246565b3d915061149c565b5f54604051630a1e440d60e31b8152936001600160a01b0390911691602090859081906114f19085600484016118b6565b0381855afa9384156106f3575f946115aa575b50916020916115299360405180958194829363810da75d60e01b8452600484016118b6565b03915afa9081156106f3575f91611578575b50811590811561156f575b5061156057825f52600560205260405f205584808061120a565b636a4d842960e11b5f5260045ffd5b90501586611546565b90506020813d6020116115a2575b8161159360209383611840565b8101031261018b57518661153b565b3d9150611586565b91929093506020823d6020116115dd575b816115c860209383611840565b8101031261018b579051929091906020611504565b3d91506115bb565b6318c8358160e21b5f5260045ffd5b6306dfcc6560e41b5f5260306004524260245260445ffd5b63227bf64d60e01b5f5260045ffd5b90506020813d602011611655575b8161163660209383611840565b8101031261018b57516001600160a01b038116810361018b57886111ba565b3d9150611629565b3461018b575f36600319011261018b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461018b57602036600319011261018b576001600160a01b036116c261172c565b165f526004602052602060405f2054604051908152f35b3461018b57602036600319011261018b576004359063ffffffff60e01b821680920361018b57602091637965db0b60e01b811490811561171b575b5015158152f35b6301ffc9a760e01b14905083611714565b600435906001600160a01b038216820361018b57565b602435906001600160a01b038216820361018b57565b35906001600160a01b038216820361018b57565b9181601f8401121561018b578235916001600160401b03831161018b576020838186019501011161018b57565b606060031982011261018b576004356001600160a01b038116810361018b57916024356001600160a01b038116810361018b5791604435906001600160401b03821161018b576117eb9160040161176c565b9091565b8054821015611808575f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90601f801991011681019081106001600160401b0382111761140557604052565b81601f8201121561018b578035906001600160401b0382116114055760405192611895601f8401601f191660200185611840565b8284526020838301011161018b57815f926020809301838601378301015290565b60409065ffffffffffff6118d59493168152816020820152019061181c565b90565b919082039182116118e557565b634e487b7160e01b5f52601160045260245ffd5b919082018092116118e557565b6001600160401b0381116114055760051b60200190565b9061192782611906565b6119346040519182611840565b8281528092611945601f1991611906565b01905f5b82811061195557505050565b806060602080938501015201611949565b80518210156118085760209160051b010190565b65ffffffffffff6118d5949360609360018060a01b03168352166020820152816040820152019061181c565b6004356001600160a01b038116810361018b5790565b6044356001600160a01b038116810361018b5790565b6064356001600160a01b038116810361018b5790565b6084356001600160a01b038116810361018b5790565b60025f5160206120855f395f51905f525414611a275760025f5160206120855f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b9091905f905f198482099084810292838084109303928084039314611aad57826127101115611a9b57507fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e919394612710910990828211900360fc1b910360041c170290565b634e487b71905260116020526024601cfd5b5050506127109192500490565b90915f198383099280830292838086109503948086039514611b4b5784831115611b335790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b505080925015611b59570490565b634e487b7160e01b5f52601260045260245ffd5b5f8181525f5160206120655f395f51905f526020908152604080832033845290915290205460ff1615611b9d5750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16611c4a576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f5160206120455f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527fe9574111c3d75c2a60e71ea1e3f5bad97bc853dcd8d24e02cb5480dfbf98e448602052604090205460ff16611c4a576001600160a01b03165f8181527fe9574111c3d75c2a60e71ea1e3f5bad97bc853dcd8d24e02cb5480dfbf98e44860205260408120805460ff191660011790553391907f723d93d9e2749ff76c3a02ca5d48d83735b6f451b126d0ba0683caa16e04c6fa905f5160206120455f395f51905f529080a4600190565b6001600160a01b0381165f9081527fd8487f5b11ecc8876444ee4ba0be76a299a89e56407bc0c4ef745e8722e35cb0602052604090205460ff16611c4a576001600160a01b03165f8181527fd8487f5b11ecc8876444ee4ba0be76a299a89e56407bc0c4ef745e8722e35cb060205260408120805460ff191660011790553391907fa2e85c2f0b3a0317b9c4b4185c12b4e23dd961a7645fcbc9bb8efb8eb70e0d03905f5160206120455f395f51905f529080a4600190565b5f8181525f5160206120655f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff16611e4c575f8181525f5160206120655f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f5160206120455f395f51905f529080a4600190565b50505f90565b5f8181525f5160206120655f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1615611e4c575f8181525f5160206120655f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f5114821615611f4e575b60405215611f2e5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b906001811516611f6657823b15153d15161690611f23565b503d5f823e3d90fd5b6127108111611fa9576020817f2f0d0ace1d699b471d7b39522b5c8aae053bce1b422b7a4fe8f09bd6562a4b7492600155604051908152a1565b630fb9dd3960e11b5f5260045ffd5b905f8091602081519101845af48080612031575b15611fec5750506040513d81523d5f602083013e60203d82010160405290565b1561201157639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15612022576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580611fcc5750813b1515611fcc56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212208044073537faab0d8dd28959df54d63d49b304cb78a0f88a0e222d532d3d376a64736f6c63430008230033","sourceMap":"1104:9865:154:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;5765:26:49;1104:9865:154;;;;:::i;:::-;5735:18:49;3223:4;5735:18;;-1:-1:-1;1104:9865:154;-1:-1:-1;;;;;;;;;;;1104:9865:154;;4917:24:49;1104:9865:154;-1:-1:-1;1104:9865:154;4917:24:49;1104:9865:154;4757:191:49;;5735:18;3223:4;:::i;:::-;5765:26;:::i;:::-;1104:9865:154;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;;1613:33;1104:9865;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;;1496:6;1104:9865;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;1802:24:53;;;:::i;:::-;1841:13;1104:9865:154;;;;-1:-1:-1;;1104:9865:154;;;1873:3:53;1856:15;;;;;;1104:9865:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;1905:75:53;1104:9865:154;;;;1662:26:53;1104:9865:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1942:4:53;1905:75;:::i;:::-;1892:88;;;;:::i;:::-;;;;;;:::i;:::-;;1104:9865:154;1841:13:53;;1856:15;;;;1104:9865:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1662:26:53;1104:9865:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;2151:23;1104:9865;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;;1755:31;1104:9865;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;;4301:16:16;1104:9865:154;-1:-1:-1;;;;;1104:9865:154;;4724:16:16;;:34;;;;1104:9865:154;4803:1:16;4788:16;:50;;;;1104:9865:154;4853:13:16;:30;;;;1104:9865:154;4849:91:16;;;-1:-1:-1;;1104:9865:154;;4803:1:16;1104:9865:154;-1:-1:-1;;;;;;;;;;;1104:9865:154;;4977:67:16;;1104:9865:154;4429:12;;;:::i;:::-;1104:9865;;-1:-1:-1;;;4395:47:154;;-1:-1:-1;;;;;1104:9865:154;;;;4395:47;;1104:9865;;;;;;4395:47;;1104:9865;;4405:13;1104:9865;4395:47;;;;;;;1104:9865;4395:47;;;1104:9865;4394:48;;4390:96;;-1:-1:-1;;;;;4500:29:154;;:::i;:::-;1104:9865;4500:43;4496:565;;1104:9865;-1:-1:-1;;;;;5079:12:154;;:::i;:::-;1104:9865;;;;;;;;;;5106:23;1104:9865;5116:12;;:::i;:::-;1104:9865;;-1:-1:-1;;;;;1104:9865:154;;;;;5106:23;5153:15;4395:47;1104:9865;5153:15;:::i;:::-;-1:-1:-1;;;;;5184:29:154;;:::i;:::-;1104:9865;5180:135;;1104:9865;-1:-1:-1;;;;;5328:30:154;;:::i;:::-;1104:9865;5324:139;;1104:9865;-1:-1:-1;;;;;5476:28:154;;:::i;:::-;1104:9865;5472:133;;1104:9865;5064:101:16;;1104:9865:154;5064:101:16;1104:9865:154;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;-1:-1:-1;;;;;;;;;;;1104:9865:154;5140:14:16;1104:9865:154;;;4803:1:16;1104:9865:154;;5140:14:16;1104:9865:154;5472:133;5534:60;5565:28;;:::i;:::-;5534:60;:::i;:::-;;5472:133;;5324:139;5388:64;5421:30;;:::i;:::-;5388:64;:::i;:::-;;5324:139;;5180:135;5243:61;5274:29;;:::i;:::-;5243:61;:::i;:::-;;5180:135;;4496:565;4395:47;1104:9865;4395:47;;-1:-1:-1;;;;;4607:30:154;;:::i;:::-;1104:9865;;;-1:-1:-1;;;;;4679:28:154;;:::i;:::-;1104:9865;4675:118;;4603:324;4496:565;;4675:118;5022:14;;;1104:9865;4756:14;1104:9865;;4756:14;4603:324;-1:-1:-1;;;;;4821:28:154;;:::i;:::-;1104:9865;4603:324;4817:110;5022:14;;;1104:9865;4894:14;1104:9865;;4894:14;4559:492;-1:-1:-1;;;;;4951:30:154;;:::i;:::-;1104:9865;4496:565;4947:104;5022:14;;;1104:9865;5022:14;1104:9865;;5022:14;4390:96;4465:10;;;1104:9865;4465:10;1104:9865;;4465:10;4395:47;;;1104:9865;4395:47;;1104:9865;4395:47;;;;;;1104:9865;4395:47;;;:::i;:::-;;;1104:9865;;;;;;;;;;;;4395:47;;;;;;-1:-1:-1;4395:47:154;;;1104:9865;;;;;;;;;4977:67:16;-1:-1:-1;;1104:9865:154;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;4977:67:16;;;4849:91;4906:23;;;1104:9865:154;4906:23:16;1104:9865:154;;4906:23:16;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:16;;4724:34;;;-1:-1:-1;4724:34:16;;1104:9865:154;;;;;;-1:-1:-1;;1104:9865:154;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;3899:31:49;1104:9865:154;;;;;;-1:-1:-1;1104:9865:154;;;;;;-1:-1:-1;1104:9865:154;;;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1104:9865:154;;;;;;;3169:7;1104:9865;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;987:10:52;1104:9865:154;;;;;;;;;;;;;;;;4466:23:49;4462:108;;1104:9865:154;;;10625:21;10621:71;;10715:9;;;:::i;10621:71::-;10669:12;;;1104:9865;10669:12;1104:9865;;10669:12;4462:108:49;4512:47;;;1104:9865:154;4512:47:49;987:10:52;1104:9865:154;;1755:31;1104:9865;;;;4512:47:49;1104:9865:154;;;;;;-1:-1:-1;;1104:9865:154;;;;;;:::i;:::-;;;:::i;:::-;2989:103:30;;:::i;:::-;987:10:52;1104:9865:154;;;;;;;;;;;;;4466:23:49;4462:108;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;10208:23;;10204:83;;1104:9865;10374:18;10409:40;1104:9865;;;;;;;;;;;;;;10374:18;;:::i;:::-;1104:9865;;;;;10409:40;2365:1:30;-1:-1:-1;;;;;;;;;;;1104:9865:154;;10204:83;10254:22;;;1104:9865;10254:22;1104:9865;;10254:22;4462:108:49;4512:47;;;1104:9865:154;4512:47:49;987:10:52;1104:9865:154;;1613:33;1104:9865;;;;4512:47:49;1104:9865:154;;;;;;;:::i;:::-;;;;3396:14;1104:9865;3579:36;;;1104:9865;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1104:9865:154;;;;;;;3679:7;1104:9865;;;;;;;;;;;;;;;;;;;;;;;;;3734:19;1104:9865;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3835:42;;1104:9865;;3835:42;:::i;:::-;5725:5:43;;;;;5328;;940:4:29;5322:42:43;1104:9865:154;;;;;;;;;;;;;;;;3889:396;3905:18;;;;;;1104:9865;;;;;;;;3894:9;3976:34;;;;;;;;;;;:::i;:::-;4075:16;;1104:9865;;4075:16;;1104:9865;;;;;;;;:::i;:::-;;;;;;;;;;;;;4035:71;1104:9865;;;;;;;;;;4035:71;;1104:9865;4035:71;;;:::i;:::-;;;;;;;;;;;;;1104:9865;4035:71;;;3894:9;1104:9865;;;4025:158;1104:9865;4146:18;1104:9865;;;4035:148;1104:9865;;;;;;;;;;4035:148;;:::i;:::-;4025:158;;:::i;:::-;1104:9865;;;3894:9;;1104:9865;;3894:9;;;;4035:71;;-1:-1:-1;4035:71:154;;;;;;;;;;;;;;:::i;:::-;;;1104:9865;;;;;;;4035:71;1104:9865;;4035:148;:71;;;;;;;1104:9865;;;;;;-1:-1:-1;;1104:9865:154;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;2238:98;1104:9865;;;;;2238:98;1104:9865;;;;;;-1:-1:-1;1104:9865:154;;;;-1:-1:-1;1104:9865:154;;;2238:98;;;;;1104:9865;2238:98;;;;:::i;:::-;1104:9865;;;;;2238:98;;1104:9865;;;;;;;;;;;;;;;;;;;:::i;:::-;2989:103:30;;;;;;:::i;:::-;8361:45:154;;1104:9865;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;1104:9865:154;;;;8273:133;;1104:9865;;;-1:-1:-1;8273:133:154;-1:-1:-1;8421:23:154;;8417:79;;1104:9865;;;;;;;;;;8559:7;1104:9865;;;;;;;;;;;;-1:-1:-1;1104:9865:154;;;;-1:-1:-1;1104:9865:154;8643:10;;1104:9865;;8623:19;1104:9865;;;;;;-1:-1:-1;1104:9865:154;;;;-1:-1:-1;1104:9865:154;;;;;;;;-1:-1:-1;1104:9865:154;;;;-1:-1:-1;1104:9865:154;;;8727:51;1104:9865;;;8727:51;:::i;:::-;5725:5:43;;;;;5328;;940:4:29;5322:42:43;;;8794:19:154;;8790:75;;1104:9865;;;8879:31;;;8948:27;;;;;:::i;:::-;8875:219;;1104:9865;9128:42;;9185:9;1104:9865;;;;;;;;;;9196:18;;;;;;8643:10;;;;;1104:9865;;8623:19;1104:9865;;;;;;-1:-1:-1;1104:9865:154;;;;-1:-1:-1;1104:9865:154;;;;;;;;-1:-1:-1;1104:9865:154;;;;-1:-1:-1;1104:9865:154;;9675:10;;9671:86;;9180:409;1104:9865;;;;;;;;;;;8643:10;;9772:59;1104:9865;8643:10;9772:59;;1104:9865;;;;;;;;;9846:83;1104:9865;8643:10;9846:83;;1104:9865;-1:-1:-1;;;;;;;;;;;1104:9865:154;;9671:86;9739:6;;;;:::i;:::-;9671:86;;;;9185:9;9267:34;;;;;9326:84;9267:34;;;;;:::i;:::-;9369:16;1104:9865;;9369:16;;1104:9865;;9387:22;1104:9865;9387:22;;;;:::i;:::-;;1104:9865;;;;;;;;;9326:84;;8643:10;;1104:9865;9326:84;;;:::i;:::-;;;;;;;;;;;1104:9865;9326:84;;;9185:9;1104:9865;;9326:161;1104:9865;;9316:171;1104:9865;;;;;;;;;;;;;;9326:161;;:::i;9316:171::-;1104:9865;;;;9185:9;;;;;9326:84;;;;1104:9865;9326:84;;;;;;;;;1104:9865;9326:84;;;:::i;:::-;;;1104:9865;;;;;;;9326:84;:161;:84;;;;;-1:-1:-1;9326:84:154;;8875:219;8996:44;8992:102;;8875:219;;;8992:102;9063:20;;;1104:9865;9063:20;1104:9865;;9063:20;8790:75;8836:18;;;1104:9865;8836:18;1104:9865;;8836:18;8417:79;8467:18;;;1104:9865;8467:18;1104:9865;;8467:18;1104:9865;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;;1390:1;1104:9865;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;2400:136;1104:9865;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;:::i;:::-;987:10:52;-1:-1:-1;;;;;1104:9865:154;;6439:34:49;6435:102;;6547:37;1104:9865:154;;;6547:37:49;:::i;6435:102::-;6496:30;;;1104:9865:154;6496:30:49;1104:9865:154;;6496:30:49;1104:9865:154;;;;;;-1:-1:-1;;1104:9865:154;;;;5348:25:49;1104:9865:154;;;;:::i;:::-;5318:18:49;3223:4;5318:18;;-1:-1:-1;1104:9865:154;-1:-1:-1;;;;;;;;;;;1104:9865:154;;4917:24:49;1104:9865:154;-1:-1:-1;1104:9865:154;4917:24:49;1104:9865:154;4757:191:49;;3223:4;5348:25;:::i;1104:9865:154:-;;;;;;-1:-1:-1;;1104:9865:154;;;;;;1952:51;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;;;-1:-1:-1;1104:9865:154;-1:-1:-1;;;;;;;;;;;1104:9865:154;;4917:24:49;1104:9865:154;-1:-1:-1;1104:9865:154;4917:24:49;1104:9865:154;4757:191:49;;1104:9865:154;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;:::i;:::-;2989:103:30;;;;;:::i;:::-;6254:49:154;;1104:9865;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;6318:73:154;;-1:-1:-1;;;;;1104:9865:154;;;;6318:73;;1104:9865;;;;;;;;;;;;;;;6344:26;1104:9865;6318:73;;;;;;;1104:9865;6318:73;;;1104:9865;-1:-1:-1;6395:10:154;-1:-1:-1;;;;;1104:9865:154;;;6318:87;6314:147;;1104:9865;837:15:48;14371:24:44;14367:103;;1104:9865:154;837:15:48;1104:9865:154;6475:29;;;6471:91;;1104:9865;;;;;;6614:23;-1:-1:-1;6610:75:154;;1104:9865;;;6699:18;1104:9865;;;;;;6699:34;6695:421;;1104:9865;-1:-1:-1;;1104:9865:154;;-1:-1:-1;;;7150:38:154;;7182:4;1104:9865;7150:38;;1104:9865;-1:-1:-1;;;;;1104:9865:154;;;;;;;-1:-1:-1;1104:9865:154;;;;;7150:38;;;;;;;1104:9865;7150:38;;;1104:9865;1767:47:20;1104:9865:154;10404:1148:20;10365:28;;;;1104:9865:154;10404:1148:20;6395:10:154;1104:9865;10404:1148:20;7182:4:154;1104:9865;10404:1148:20;1104:9865:154;;;10404:1148:20;1104:9865:154;;;10404:1148:20;;;;;1104:9865:154;;10404:1148:20;;;;;;;1104:9865:154;10404:1148:20;1104:9865:154;10404:1148:20;1104:9865:154;;10404:1148:20;1766:48;1762:126;;-1:-1:-1;;;7282:38:154;;7182:4;1104:9865;7282:38;;1104:9865;;7282:38;1104:9865;7282:38;;;;;;;;1104:9865;7282:38;;;1104:9865;7282:54;;;;:::i;:::-;7351:11;;;7347:69;;7451:40;7528:23;7451:40;;;:::i;:::-;7528:23;;;:::i;:::-;1104:9865;;;;;;;;;;7562:42;1104:9865;;;7562:42;:::i;:::-;1104:9865;;7619:20;7615:149;;1104:9865;;7779:78;1104:9865;;;;;;;;;;;;;;;;7779:78;1104:9865;-1:-1:-1;;;;;;;;;;;1104:9865:154;;7615:149;1104:9865;;;;7655:7;1104:9865;;;;;;-1:-1:-1;1104:9865:154;;;;-1:-1:-1;1104:9865:154;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;7684:68;;1104:9865;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;7779:78;1104:9865;;;;;;;;;;;;;;;;;;7615:149;;;;;;;1104:9865;;;;;;;;;;;;;;;;;;;;;;;;7347:69;7385:20;;;1104:9865;7385:20;1104:9865;;7385:20;7282:38;;1104:9865;7282:38;;1104:9865;7282:38;;;;;;1104:9865;7282:38;;;:::i;:::-;;;1104:9865;;;;7282:54;1104:9865;;7282:38;;;;;-1:-1:-1;7282:38:154;;1762:126:20;1837:40;;;;1104:9865:154;1837:40:20;1104:9865:154;;;;1837:40:20;10404:1148;1104:9865:154;10404:1148:20;;;;;;;;;;;;;;;;;;1104:9865:154;10404:1148:20;;;;;7150:38:154;;;1104:9865;7150:38;;1104:9865;7150:38;;;;;;1104:9865;7150:38;;;:::i;:::-;;;1104:9865;;;;;7150:38;;;;;;-1:-1:-1;7150:38:154;;6695:421;1104:9865;;;;-1:-1:-1;;;6773:57:154;;1104:9865;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;6773:57;;1104:9865;;6773:57;;;:::i;:::-;;;;;;;;;;;1104:9865;6773:57;;;6695:421;1104:9865;;;;6867:55;1104:9865;;;;;;;;;;;;6867:55;;1104:9865;6867:55;;;:::i;:::-;;;;;;;;;;1104:9865;6867:55;;;6695:421;6941:18;;;:39;;;;;6695:421;6937:109;;;1104:9865;;;6699:18;1104:9865;;;;;;6695:421;;;;;6937:109;6527:24;;;1104:9865;7007:24;1104:9865;;7007:24;6941:39;6963:17;;;6941:39;;;6867:55;;;1104:9865;6867:55;;1104:9865;6867:55;;;;;;1104:9865;6867:55;;;:::i;:::-;;;1104:9865;;;;;6867:55;;;;;;-1:-1:-1;6867:55:154;;6773:57;;;;;;1104:9865;6773:57;;1104:9865;6773:57;;;;;;1104:9865;6773:57;;;:::i;:::-;;;1104:9865;;;;;;;6773:57;;1104:9865;;6773:57;;;;;-1:-1:-1;6773:57:154;;6610:75;6660:14;;;1104:9865;6660:14;1104:9865;;6660:14;14367:103:44;14418:41;;;1104:9865:154;14418:41:44;14449:2;1104:9865:154;;837:15:48;1104:9865:154;;;;14418:41:44;6314:147:154;6428:22;;;1104:9865;6428:22;1104:9865;;6428:22;6318:73;;;1104:9865;6318:73;;1104:9865;6318:73;;;;;;1104:9865;6318:73;;;:::i;:::-;;;1104:9865;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;6318:73;;;;;;-1:-1:-1;6318:73:154;;1104:9865;;;;;;-1:-1:-1;;1104:9865:154;;;;;;1850:38;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;-1:-1:-1;;;;;1104:9865:154;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3549:47:49;;;:87;;;;1104:9865:154;;;;;;;3549:87:49;-1:-1:-1;;;1119:40:54;;-1:-1:-1;3549:87:49;;;1104:9865:154;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1104:9865:154;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;1104:9865:154;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;-1:-1:-1;1104:9865:154;;-1:-1:-1;1104:9865:154;;;;;;-1:-1:-1;1104:9865:154;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1104:9865:154;;;;;;;;-1:-1:-1;;1104:9865:154;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1104:9865:154;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1104:9865:154;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;:::o;:::-;4500:29;1104:9865;-1:-1:-1;;;;;1104:9865:154;;;;;;;:::o;:::-;4951:30;1104:9865;-1:-1:-1;;;;;1104:9865:154;;;;;;;:::o;:::-;4821:28;1104:9865;-1:-1:-1;;;;;1104:9865:154;;;;;;;:::o;3749:292:30:-;2407:1;-1:-1:-1;;;;;;;;;;;1104:9865:154;4560:63:30;3644:93;;2407:1;-1:-1:-1;;;;;;;;;;;1104:9865:154;3749:292:30:o;3644:93::-;3696:30;;;-1:-1:-1;3696:30:30;;-1:-1:-1;3696:30:30;7296:3683:43;;;;1104:9865:154;;-1:-1:-1;;7296:3683:43;;1412:159;;;;;;;;;;;;;;;;7552:9;;7548:365;;8023:19;1496:6:154;8023:19:43;;8019:142;;8444:308;940:4:29;8444:308:43;;1496:6:154;8444:308:43;;;;;;;;940:4:29;;8444:308:43;;9016:384;;9463:18;940:4:29;7296:3683:43;:::o;8019:142::-;1829:135:29;;;940:4;1829:135;;;;;7548:365:43;1104:9865:154;;;1496:6;1104:9865;;;;7874:24:43;:::o;7296:3683::-;;;-1:-1:-1;;7296:3683:43;;1412:159;;;;;;;;;;;;;;;;7552:9;;7548:365;;8023:19;;;;8019:142;;8444:308;;;;940:4:29;1104:9865:154;940:4:29;8971:31:43;;9016:384;;;9854:1;940:4:29;9835:1:43;940:4:29;9834:21:43;940:4:29;;;9854:1:43;940:4:29;;;;;9854:1:43;940:4:29;;;;;9854:1:43;940:4:29;;;;;9854:1:43;940:4:29;;;;;9854:1:43;940:4:29;;;;;9854:1:43;940:4:29;;9016:384:43;;;;1104:9865:154;9016:384:43;;;8444:308;;;;;;940:4:29;8444:308:43;;9016:384;9463:18;940:4:29;7296:3683:43;:::o;8019:142::-;1829:135:29;;1104:9865:154;1829:135:29;8082:16:43;5328:5;940:4:29;;5322:42:43;1829:135:29;;;;;7548:365:43;1104:9865:154;;;;;;;;;7874:24:43;:::o;1104:9865:154:-;;;;;;;;;;;;4146:103:49;-1:-1:-1;1104:9865:154;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;;;;987:10:52;1104:9865:154;;;;;;;;;;4466:23:49;4462:108;;4146:103;:::o;4462:108::-;4512:47;;;-1:-1:-1;4512:47:49;987:10:52;4512:47:49;1104:9865:154;;;;-1:-1:-1;4512:47:49;7268:387;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;987:10:52;;1104:9865:154;-1:-1:-1;;;;;;;;;;;1104:9865:154;;7530:40:49;7507:4;7584:11;:::o;7430:219::-;7626:12;1104:9865:154;7626:12:49;:::o;7268:387::-;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;987:10:52;;1104:9865:154;1613:33;;-1:-1:-1;;;;;;;;;;;7530:40:49;1104:9865:154;7530:40:49;7507:4;7584:11;:::o;7268:387::-;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;987:10:52;;1104:9865:154;1755:31;;-1:-1:-1;;;;;;;;;;;7530:40:49;1104:9865:154;7530:40:49;7507:4;7584:11;:::o;7268:387::-;1104:9865:154;;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;;;987:10:52;;1104:9865:154;;-1:-1:-1;;;;;;;;;;;7530:40:49;1104:9865:154;7530:40:49;7507:4;7584:11;:::o;7430:219::-;7626:12;;1104:9865:154;7626:12:49;:::o;7892:388::-;1104:9865:154;;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1104:9865:154;;;;;;;;-1:-1:-1;;;;;1104:9865:154;;;;;;;;;;;;;;;-1:-1:-1;;1104:9865:154;;;987:10:52;;1104:9865:154;;8155:40:49;;1104:9865:154;8155:40:49;1104:9865:154;8209:11:49;:::o;1219:204:20:-;;8544:1067;;8509:24;;;;-1:-1:-1;8544:1067:20;1104:9865:154;;;;;8544:1067:20;;;;;;-1:-1:-1;8544:1067:20;;;;;;;1338:4;-1:-1:-1;8544:1067:20;;;;;;;1219:204;8544:1067;;1305:38;1301:116;;1219:204;:::o;1301:116::-;-1:-1:-1;;;;1366:40:20;;;-1:-1:-1;;;;;1104:9865:154;;;;8544:1067:20;1104:9865:154;8544:1067:20;;1366:40;8544:1067;;1338:4;8544:1067;;;;;;;;;;;;;;;;;;;-1:-1:-1;8544:1067:20;;;;;10738:229:154;1496:6;10815:26;;10811:81;;1104:9865;;10938:22;1104:9865;10902:20;1104:9865;;;;;;10938:22;10738:229::o;10811:81::-;10864:17;;;;;;;;4691:549:21;;-1:-1:-1;4691:549:21;;3526:129:28;;;;;;;;;;4874:72:21;;4691:549;4870:364;;;4816:252:28;;;;;;;;-1:-1:-1;3526:129:28;4816:252;;;3526:129;4816:252;;;;;;4962:32:21;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:21;;;-1:-1:-1;;;;;1104:9865:154;;;;5045:24:21;1104:9865:154;;;5045:24:21;5011:223;4578:73:28;5090:33:21;4578:73:28;;1104:9865:154;;;-1:-1:-1;1104:9865:154;;;;;5086:148:21;5204:19;;;-1:-1:-1;5204:19:21;;-1:-1:-1;5204:19:21;4874:72;-1:-1:-1;4578:73:28;4886:33:21;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"82556":[{"start":1151,"length":32},{"start":5746,"length":32}],"82559":[{"start":4162,"length":32},{"start":4490,"length":32}]}},"methodIdentifiers":{"ADMIN_FEE_BASE()":"c00460ea","ADMIN_FEE_CLAIM_ROLE()":"cb6ba75d","ADMIN_FEE_SET_ROLE()":"a01fe38e","DEFAULT_ADMIN_ROLE()":"a217fddf","NETWORK_MIDDLEWARE_SERVICE()":"2c9d45b3","VAULT()":"411557d1","VAULT_FACTORY()":"103f2907","adminFee()":"a0be06f9","claimAdminFee(address,address)":"7d1b56e5","claimRewards(address,address,bytes)":"5d0b5205","claimable(address,address,bytes)":"76ee5656","claimableAdminFee(address)":"04fe4748","distributeRewards(address,address,uint256,bytes)":"239723ed","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize((address,uint256,address,address,address))":"9df4021d","lastUnclaimedReward(address,address,address)":"3f3be072","multicall(bytes[])":"ac9650d8","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rewards(address,address,uint256)":"63497dc7","rewardsLength(address,address)":"9162aaa0","setAdminFee(uint256)":"8beb60b6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkMiddlewareService\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HighAdminFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAdminFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientReward\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAdminFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidHintsLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRewardTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetworkMiddleware\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimAdminFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ClaimRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstClaimedRewardIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardsClaimed\",\"type\":\"uint256\"}],\"name\":\"ClaimRewardsExtra\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"distributeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"adminFeeAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"DistributeRewards\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"InitVault\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"adminFee\",\"type\":\"uint256\"}],\"name\":\"SetAdminFee\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADMIN_FEE_BASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADMIN_FEE_CLAIM_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADMIN_FEE_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NETWORK_MIDDLEWARE_SERVICE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VAULT_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"adminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"claimAdminFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"claimRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"claimable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"claimableAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"distributeRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"adminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"defaultAdminRoleHolder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adminFeeClaimRoleHolder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adminFeeSetRoleHolder\",\"type\":\"address\"}],\"internalType\":\"struct IDefaultStakerRewards.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"lastUnclaimedReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rewardIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"rewardsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"adminFee_\",\"type\":\"uint256\"}],\"name\":\"setAdminFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in a uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"ClaimAdminFee(address,uint256)\":{\"params\":{\"amount\":\"amount of the fee claimed\",\"recipient\":\"account that received the fee\"}},\"ClaimRewards(address,address,address,uint256,address)\":{\"params\":{\"amount\":\"amount of tokens\",\"claimer\":\"address of the claimer\",\"network\":\"network whose rewards are claimed\",\"recipient\":\"address of the tokens' recipient\",\"token\":\"address of the token\"}},\"ClaimRewardsExtra(address,address,address,uint256,uint256)\":{\"params\":{\"claimer\":\"address of the claimer\",\"firstClaimedRewardIndex\":\"first claimed reward index\",\"network\":\"network whose rewards are claimed\",\"rewardsClaimed\":\"number of rewards claimed\",\"token\":\"address of the token\"}},\"DistributeRewards(address,address,uint256,uint256,uint48)\":{\"params\":{\"adminFeeAmount\":\"amount of tokens to keep as an admin fee\",\"distributeAmount\":\"amount of tokens to distribute\",\"network\":\"network on behalf of which the reward is distributed\",\"timestamp\":\"timestamp of the distribution\",\"token\":\"address of the token\"}},\"InitVault(address)\":{\"params\":{\"vault\":\"address of the vault\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetAdminFee(uint256)\":{\"params\":{\"adminFee\":\"new admin fee\"}}},\"kind\":\"dev\",\"methods\":{\"claimAdminFee(address,address)\":{\"details\":\"Only the vault owner can call this function.\",\"params\":{\"recipient\":\"account that will receive the fee\",\"token\":\"address of the token\"}},\"claimRewards(address,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"recipient\":\"address of the tokens' recipient\",\"token\":\"address of the token\"}},\"claimable(address,address,bytes)\":{\"params\":{\"account\":\"address of the claimer\",\"data\":\"some data to use\",\"token\":\"address of the token\"},\"returns\":{\"amount\":\"of claimable tokens\"}},\"distributeRewards(address,address,uint256,bytes)\":{\"params\":{\"amount\":\"amount of tokens\",\"data\":\"some data to use\",\"network\":\"network on behalf of which the reward to distribute\",\"token\":\"address of the token\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"rewardsLength(address,address)\":{\"params\":{\"network\":\"address of the network\",\"token\":\"address of the token\"},\"returns\":{\"_0\":\"total number of the rewards using the token by the network\"}},\"setAdminFee(uint256)\":{\"details\":\"Only the ADMIN_FEE_SET_ROLE holder can call this function.\",\"params\":{\"adminFee\":\"admin fee (up to ADMIN_FEE_BASE inclusively)\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"stateVariables\":{\"ADMIN_FEE_BASE\":{\"return\":\"maximum admin fee\",\"returns\":{\"_0\":\"maximum admin fee\"}},\"ADMIN_FEE_CLAIM_ROLE\":{\"return\":\"identifier of the admin fee claimer role\",\"returns\":{\"_0\":\"identifier of the admin fee claimer role\"}},\"ADMIN_FEE_SET_ROLE\":{\"return\":\"identifier of the admin fee setter role\",\"returns\":{\"_0\":\"identifier of the admin fee setter role\"}},\"NETWORK_MIDDLEWARE_SERVICE\":{\"return\":\"address of the network middleware service\",\"returns\":{\"_0\":\"address of the network middleware service\"}},\"VAULT\":{\"return\":\"address of the vault\",\"returns\":{\"_0\":\"address of the vault\"}},\"VAULT_FACTORY\":{\"return\":\"address of the vault factory\",\"returns\":{\"_0\":\"address of the vault factory\"}},\"adminFee\":{\"return\":\"admin fee\",\"returns\":{\"_0\":\"admin fee\"}},\"claimableAdminFee\":{\"params\":{\"token\":\"address of the token\"},\"return\":\"amount claimable admin fee\",\"returns\":{\"amount\":\"claimable admin fee\"}},\"lastUnclaimedReward\":{\"params\":{\"account\":\"address of the account\",\"network\":\"address of the network\",\"token\":\"address of the token\"},\"return\":\"rewardIndex first index of the unclaimed rewards\",\"returns\":{\"rewardIndex\":\"first index of the unclaimed rewards\"}},\"rewards\":{\"params\":{\"network\":\"address of the network\",\"rewardIndex\":\"index of the reward distribution using the token\",\"token\":\"address of the token\"},\"returns\":{\"amount\":\"amount of tokens to be distributed\",\"timestamp\":\"time point stakes must taken into account at\"}},\"version\":{\"details\":\"Must return 2 for this one.\",\"return\":\"version of the staker rewards contract\",\"returns\":{\"_0\":\"version of the staker rewards contract\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimAdminFee(address,uint256)\":{\"notice\":\"Emitted when an admin fee is claimed.\"},\"ClaimRewards(address,address,address,uint256,address)\":{\"notice\":\"Emitted when a reward is claimed.\"},\"ClaimRewardsExtra(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a reward is claimed.\"},\"DistributeRewards(address,address,uint256,uint256,uint48)\":{\"notice\":\"Emitted when a reward is distributed.\"},\"InitVault(address)\":{\"notice\":\"Emitted when a vault is initialized.\"},\"SetAdminFee(uint256)\":{\"notice\":\"Emitted when the admin fee is set.\"}},\"kind\":\"user\",\"methods\":{\"ADMIN_FEE_BASE()\":{\"notice\":\"Get the maximum admin fee (= 100%).\"},\"ADMIN_FEE_CLAIM_ROLE()\":{\"notice\":\"Get the admin fee claimer's role.\"},\"ADMIN_FEE_SET_ROLE()\":{\"notice\":\"Get the admin fee setter's role.\"},\"NETWORK_MIDDLEWARE_SERVICE()\":{\"notice\":\"Get the network middleware service's address.\"},\"VAULT()\":{\"notice\":\"Get the vault's address.\"},\"VAULT_FACTORY()\":{\"notice\":\"Get the vault factory's address.\"},\"adminFee()\":{\"notice\":\"Get an admin fee.\"},\"claimAdminFee(address,address)\":{\"notice\":\"Claim an admin fee.\"},\"claimRewards(address,address,bytes)\":{\"notice\":\"Claim rewards using a given token.\"},\"claimable(address,address,bytes)\":{\"notice\":\"Get an amount of rewards claimable by a particular account of a given token.\"},\"claimableAdminFee(address)\":{\"notice\":\"Get a claimable admin fee amount for a particular token.\"},\"distributeRewards(address,address,uint256,bytes)\":{\"notice\":\"Distribute rewards on behalf of a particular network using a given token.\"},\"lastUnclaimedReward(address,address,address)\":{\"notice\":\"Get the first index of the unclaimed rewards using a particular token by a given account.\"},\"rewards(address,address,uint256)\":{\"notice\":\"Get a particular reward distribution.\"},\"rewardsLength(address,address)\":{\"notice\":\"Get a total number of rewards using a particular token for a given network.\"},\"setAdminFee(uint256)\":{\"notice\":\"Set an admin fee.\"},\"version()\":{\"notice\":\"Get a version of the staker rewards contract (different versions mean different interfaces).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol\":\"DefaultStakerRewards\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0\",\"dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99\",\"dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xe3a2cff969716ebedd6f9fc7f4cbc499449e9bd0377afa49dab9e9c21212a50e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b14eb6728d660a790b2c49df0e96fe31e467ec30fc02ae41944b5d5a628610d8\",\"dweb:/ipfs/QmSP2j6xhEbCRzDyv5HTwvJV14vBtyZFog3LUh7wp94YHc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0x842cc1aad7ab31fce63200401deddce3a84f73fef96b3a4841b310b09ab9aa7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90c6d93642c21475ba6240ad13a8d75f5df215e0363efc4cbe13f71e779d38d2\",\"dweb:/ipfs/QmXCGRb3aYGf9js21UfV7tATAo26o3gWRgM539WamvniP6\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812\",\"dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8\",\"dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78\",\"dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0\",\"dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC\"]},\"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol\":{\"keccak256\":\"0x6b8db8f6a491dcf7923837cf51798b97e673959c8812c34dbd52c780bb25482b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f22cb82be0716820cd627f0ddadd7207e2e565b120b4f70612f8374934e393\",\"dweb:/ipfs/QmW44HHqTs5389mgwSiEcbePtbYjfQ8YK4uyqTjaYg9JLG\"]},\"src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6\",\"dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD\"]},\"src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85\",\"dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"vaultFactory","type":"address"},{"internalType":"address","name":"networkMiddlewareService","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"HighAdminFee"},{"inputs":[],"type":"error","name":"InsufficientAdminFee"},{"inputs":[],"type":"error","name":"InsufficientReward"},{"inputs":[],"type":"error","name":"InvalidAdminFee"},{"inputs":[],"type":"error","name":"InvalidHintsLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidRewardTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoRewardsToClaim"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[],"type":"error","name":"NotNetworkMiddleware"},{"inputs":[],"type":"error","name":"NotVault"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimAdminFee","anonymous":false},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":false}],"type":"event","name":"ClaimRewards","anonymous":false},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"firstClaimedRewardIndex","type":"uint256","indexed":false},{"internalType":"uint256","name":"rewardsClaimed","type":"uint256","indexed":false}],"type":"event","name":"ClaimRewardsExtra","anonymous":false},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"distributeAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"adminFeeAmount","type":"uint256","indexed":false},{"internalType":"uint48","name":"timestamp","type":"uint48","indexed":false}],"type":"event","name":"DistributeRewards","anonymous":false},{"inputs":[{"internalType":"address","name":"vault","type":"address","indexed":false}],"type":"event","name":"InitVault","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"uint256","name":"adminFee","type":"uint256","indexed":false}],"type":"event","name":"SetAdminFee","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_FEE_BASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_FEE_CLAIM_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADMIN_FEE_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_MIDDLEWARE_SERVICE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"adminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claimAdminFee"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"claimRewards"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"claimable","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"claimableAdminFee","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"distributeRewards"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct IDefaultStakerRewards.InitParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"adminFee","type":"uint256"},{"internalType":"address","name":"defaultAdminRoleHolder","type":"address"},{"internalType":"address","name":"adminFeeClaimRoleHolder","type":"address"},{"internalType":"address","name":"adminFeeSetRoleHolder","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"lastUnclaimedReward","outputs":[{"internalType":"uint256","name":"rewardIndex","type":"uint256"}]},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"network","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"rewards","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"rewardsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"adminFee_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setAdminFee"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"claimAdminFee(address,address)":{"details":"Only the vault owner can call this function.","params":{"recipient":"account that will receive the fee","token":"address of the token"}},"claimRewards(address,address,bytes)":{"params":{"data":"some data to use","recipient":"address of the tokens' recipient","token":"address of the token"}},"claimable(address,address,bytes)":{"params":{"account":"address of the claimer","data":"some data to use","token":"address of the token"},"returns":{"amount":"of claimable tokens"}},"distributeRewards(address,address,uint256,bytes)":{"params":{"amount":"amount of tokens","data":"some data to use","network":"network on behalf of which the reward to distribute","token":"address of the token"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"multicall(bytes[])":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Receives and executes a batch of function calls on this contract."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"rewardsLength(address,address)":{"params":{"network":"address of the network","token":"address of the token"},"returns":{"_0":"total number of the rewards using the token by the network"}},"setAdminFee(uint256)":{"details":"Only the ADMIN_FEE_SET_ROLE holder can call this function.","params":{"adminFee":"admin fee (up to ADMIN_FEE_BASE inclusively)"}},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{"ADMIN_FEE_BASE()":{"notice":"Get the maximum admin fee (= 100%)."},"ADMIN_FEE_CLAIM_ROLE()":{"notice":"Get the admin fee claimer's role."},"ADMIN_FEE_SET_ROLE()":{"notice":"Get the admin fee setter's role."},"NETWORK_MIDDLEWARE_SERVICE()":{"notice":"Get the network middleware service's address."},"VAULT()":{"notice":"Get the vault's address."},"VAULT_FACTORY()":{"notice":"Get the vault factory's address."},"adminFee()":{"notice":"Get an admin fee."},"claimAdminFee(address,address)":{"notice":"Claim an admin fee."},"claimRewards(address,address,bytes)":{"notice":"Claim rewards using a given token."},"claimable(address,address,bytes)":{"notice":"Get an amount of rewards claimable by a particular account of a given token."},"claimableAdminFee(address)":{"notice":"Get a claimable admin fee amount for a particular token."},"distributeRewards(address,address,uint256,bytes)":{"notice":"Distribute rewards on behalf of a particular network using a given token."},"lastUnclaimedReward(address,address,address)":{"notice":"Get the first index of the unclaimed rewards using a particular token by a given account."},"rewards(address,address,uint256)":{"notice":"Get a particular reward distribution."},"rewardsLength(address,address)":{"notice":"Get a total number of rewards using a particular token for a given network."},"setAdminFee(uint256)":{"notice":"Set an admin fee."},"version()":{"notice":"Get a version of the staker rewards contract (different versions mean different interfaces)."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol":"DefaultStakerRewards"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098","urls":["bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0","dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuard.sol":{"keccak256":"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53","urls":["bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99","dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/AccessControlUpgradeable.sol":{"keccak256":"0xe3a2cff969716ebedd6f9fc7f4cbc499449e9bd0377afa49dab9e9c21212a50e","urls":["bzz-raw://b14eb6728d660a790b2c49df0e96fe31e467ec30fc02ae41944b5d5a628610d8","dweb:/ipfs/QmSP2j6xhEbCRzDyv5HTwvJV14vBtyZFog3LUh7wp94YHc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/MulticallUpgradeable.sol":{"keccak256":"0x842cc1aad7ab31fce63200401deddce3a84f73fef96b3a4841b310b09ab9aa7a","urls":["bzz-raw://90c6d93642c21475ba6240ad13a8d75f5df215e0363efc4cbe13f71e779d38d2","dweb:/ipfs/QmXCGRb3aYGf9js21UfV7tATAo26o3gWRgM539WamvniP6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224","urls":["bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812","dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791","urls":["bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8","dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol":{"keccak256":"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d","urls":["bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78","dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1","urls":["bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0","dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC"],"license":"MIT"},"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol":{"keccak256":"0x6b8db8f6a491dcf7923837cf51798b97e673959c8812c34dbd52c780bb25482b","urls":["bzz-raw://11f22cb82be0716820cd627f0ddadd7207e2e565b120b4f70612f8374934e393","dweb:/ipfs/QmW44HHqTs5389mgwSiEcbePtbYjfQ8YK4uyqTjaYg9JLG"],"license":"MIT"},"src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2","urls":["bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6","dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD"],"license":"MIT"},"src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d","urls":["bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85","dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh"],"license":"MIT"}},"version":1},"id":154} \ No newline at end of file diff --git a/ethexe/ethereum/abi/DefaultStakerRewardsFactory.json b/ethexe/ethereum/abi/DefaultStakerRewardsFactory.json index 250126214a2..85dd08f5a96 100644 --- a/ethexe/ethereum/abi/DefaultStakerRewardsFactory.json +++ b/ethexe/ethereum/abi/DefaultStakerRewardsFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"stakerRewardsImplementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"create","inputs":[{"name":"params","type":"tuple","internalType":"struct IDefaultStakerRewards.InitParams","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"adminFee","type":"uint256","internalType":"uint256"},{"name":"defaultAdminRoleHolder","type":"address","internalType":"address"},{"name":"adminFeeClaimRoleHolder","type":"address","internalType":"address"},{"name":"adminFeeSetRoleHolder","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]}],"bytecode":{"object":"0x60a034606557601f61046938819003918201601f19168301916001600160401b03831184841017606957808492602094604052833981010312606557516001600160a01b03811681036065576080526040516103eb908161007e82396080518160d00152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604081815260049182361015610015575f80fd5b5f905f3560e01c90816314887c5814610288575080635cd8b15e1461026b57806361ca1df2146100bb5763b42ba2a21461004d575f80fd5b346100b85760203660031901126100b8575081355f548110156100a5575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b5082346102465760a0366003190112610246577f0000000000000000000000000000000000000000000000000000000000000000905f5491845190602082019384526101088683016102c2565b60c0825260e082019367ffffffffffffffff928086108487111761025857906e5af43d82803e903d91602b57fd5bf39186895251902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff51692831561024a5750823b15610246578451639df4021d60e01b8152906101a08383016102c2565b5f8260a48183885af1801561023c576101ee575b505050807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b6020946101e58361031a565b50519380a28152f35b9080929594501161022957602093508252807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f93946101b4565b604184634e487b7160e01b5f525260245ffd5b86513d5f823e3d90fd5b5f80fd5b6330be1a3d60e21b81529050fd5b604185634e487b7160e01b5f525260245ffd5b8234610246575f366003190112610246576020905f549051908152f35b8390853461024657602036600319011261024657356001600160a01b0381169290839003610246576020925f52600183525f205415158152f35b6001600160a01b03906004358281169081900361024657815260243560208201526044358281168091036102465760408201526064358281168091036102465760608201526084359182168092036102465760800152565b805f52600160205260405f2054155f146103b0575f546801000000000000000081101561039c5760018101805f558110156103885781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b505f9056fea2646970667358221220e3090ab78a289a4bb16d87e7aa2b14bd7b6b3499b28ee50d4c35d6defded947364736f6c63430008190033","sourceMap":"386:775:133:-:0;;;;;;;;;;;;;-1:-1:-1;;386:775:133;;;;-1:-1:-1;;;;;386:775:133;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;386:775:133;;;;;;637:59;;386:775;;;;;;;;637:59;386:775;;;;;;;-1:-1:-1;386:775:133;;;;;;-1:-1:-1;386:775:133;;;;;-1:-1:-1;386:775:133","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260049182361015610015575f80fd5b5f905f3560e01c90816314887c5814610288575080635cd8b15e1461026b57806361ca1df2146100bb5763b42ba2a21461004d575f80fd5b346100b85760203660031901126100b8575081355f548110156100a5575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b5082346102465760a0366003190112610246577f0000000000000000000000000000000000000000000000000000000000000000905f5491845190602082019384526101088683016102c2565b60c0825260e082019367ffffffffffffffff928086108487111761025857906e5af43d82803e903d91602b57fd5bf39186895251902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff51692831561024a5750823b15610246578451639df4021d60e01b8152906101a08383016102c2565b5f8260a48183885af1801561023c576101ee575b505050807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b6020946101e58361031a565b50519380a28152f35b9080929594501161022957602093508252807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f93946101b4565b604184634e487b7160e01b5f525260245ffd5b86513d5f823e3d90fd5b5f80fd5b6330be1a3d60e21b81529050fd5b604185634e487b7160e01b5f525260245ffd5b8234610246575f366003190112610246576020905f549051908152f35b8390853461024657602036600319011261024657356001600160a01b0381169290839003610246576020925f52600183525f205415158152f35b6001600160a01b03906004358281169081900361024657815260243560208201526044358281168091036102465760408201526064358281168091036102465760608201526084359182168092036102465760800152565b805f52600160205260405f2054155f146103b0575f546801000000000000000081101561039c5760018101805f558110156103885781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b505f9056fea2646970667358221220e3090ab78a289a4bb16d87e7aa2b14bd7b6b3499b28ee50d4c35d6defded947364736f6c63430008190033","sourceMap":"386:775:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;984:35;;;386:775;;;;;;;;;-1:-1:-1;;386:775:133;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;386:775:133;;;;;;;-1:-1:-1;386:775:133;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;386:775:133;;;;925:29;386:775;;;;;;984:35;;;;386:775;;;;;;;;:::i;:::-;984:35;;;386:775;;;;;;;;;;;;;;;;2364:565:105;386:775:133;;;;;974:46;;2364:565:105;;;;;;;;386:775:133;2364:565:105;;;;984:35:133;2364:565:105;386:775:133;;;;;2364:565:105;;;386:775:133;2364:565:105;386:775:133;2942:22:105;;;2938:86;;1031:54:133;;;;;;386:775;;-1:-1:-1;;;1031:54:133;;386:775;;1031:54;;;386:775;:::i;:::-;;1031:54;386:775;1031:54;;;;;;;;;;;386:775;8409:50:130;;;;1077:18:11;984:35:133;8409:50:130;;;;:::i;:::-;;386:775:133;1077:18:11;;;386:775:133;;;1031:54;386:775;;;;;;;;;984:35;386:775;;;;;1077:18:11;386:775:133;1031:54;;;;386:775;;;;;;;;;;;;1031:54;386:775;;;;;;;;;1031:54;386:775;;;2938:86:105;-1:-1:-1;;;2987:26:105;;;-1:-1:-1;2987:26:105;386:775:133;;;;;;;;;;;;;;;;;;;-1:-1:-1;;386:775:133;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;386:775:133;;;;;-1:-1:-1;;;;;386:775:133;;;;;;;;;;;;;4360:14:130;386:775:133;;;;;4360:26:130;;386:775:133;;;;-1:-1:-1;;;;;386:775:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2241:406:130:-;386:775:133;;;4360:14:130;386:775:133;;;;;;4360:26:130;2320:321;386:775:133;;;;;;;;;;;4360:14:130;386:775:133;;;;;;;;;;;;;;;;;;;;4360:14:130;386:775:133;;;;;;4360:14:130;2576:11;:::o;386:775:133:-;;;;;;;;;;;;;;;;;;;;;;;;2320:321:130;2618:12;386:775:133;2618:12:130;:::o","linkReferences":{},"immutableReferences":{"79504":[{"start":208,"length":32}]}},"methodIdentifiers":{"create((address,uint256,address,address,address))":"61ca1df2","entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerRewardsImplementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"adminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"defaultAdminRoleHolder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adminFeeClaimRoleHolder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adminFeeSetRoleHolder\",\"type\":\"address\"}],\"internalType\":\"struct IDefaultStakerRewards.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"create((address,uint256,address,address,address))\":{\"params\":{\"params\":\"initial parameters needed for a staker rewards contract deployment\"},\"returns\":{\"_0\":\"address of the created staker rewards contract\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"create((address,uint256,address,address,address))\":{\"notice\":\"Create a default staker rewards contract for a given vault.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/defaultStakerRewards/DefaultStakerRewardsFactory.sol\":\"DefaultStakerRewardsFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/core/\",\":core/=lib/core/\",\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/core/src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"lib/core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0x1545b1796f0b94f811d95b8b208c0668dacfc7768247d22b63161a47c4c5ef4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1dccf7856b960b2ed7565906b457812ad8d29a15d403f17702ac7e090680300\",\"dweb:/ipfs/QmUqqibiekFv84mdq7zeyRF56mLJbFyFUxWKTrz8Twzkpn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol\":{\"keccak256\":\"0xc60f6705f87f380fd6d2ec1842556e281e8b72d16821f22b09414eae506e2234\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1264bc4bae61e14ced96c2df6b38432ad57e34ba3a1d0ed75835098952067bd8\",\"dweb:/ipfs/Qmerz4LoRqqmihxLwHgEooJoeRw1yHrC41Dne78h6LsQJn\"]},\"src/contracts/defaultStakerRewards/DefaultStakerRewardsFactory.sol\":{\"keccak256\":\"0x7fbcc19c3183b7d8c35d10ebd06ac6cdba50e629cee9a270472e1c927196902a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaf27047b79a2be8cd6d16780fcd246d68af92005b2040242c975a4479825da1\",\"dweb:/ipfs/Qmd35ms7cYRLMpyyop6w8YM8wfDxpW5EVqiRptnHcDJ5am\"]},\"src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"src/interfaces/defaultStakerRewards/IDefaultStakerRewardsFactory.sol\":{\"keccak256\":\"0xdd1d37613e362407adc859f2d5620a52033e98658915c7f46d9b540920a7e2ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a12a6a7769c9f9668dfde17afae0d44158e21026c9f11e1e5df8f14aedcf1422\",\"dweb:/ipfs/Qmevvss7c7HaTGm4GJuNyFG4J2t9aEbjTBLVi74N6m67fw\"]},\"src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"stakerRewardsImplementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"struct IDefaultStakerRewards.InitParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"adminFee","type":"uint256"},{"internalType":"address","name":"defaultAdminRoleHolder","type":"address"},{"internalType":"address","name":"adminFeeClaimRoleHolder","type":"address"},{"internalType":"address","name":"adminFeeSetRoleHolder","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"create((address,uint256,address,address,address))":{"params":{"params":"initial parameters needed for a staker rewards contract deployment"},"returns":{"_0":"address of the created staker rewards contract"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"create((address,uint256,address,address,address))":{"notice":"Create a default staker rewards contract for a given vault."},"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/core/","core/=lib/core/","ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/defaultStakerRewards/DefaultStakerRewardsFactory.sol":"DefaultStakerRewardsFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/core/src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"lib/core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/MulticallUpgradeable.sol":{"keccak256":"0x1545b1796f0b94f811d95b8b208c0668dacfc7768247d22b63161a47c4c5ef4e","urls":["bzz-raw://a1dccf7856b960b2ed7565906b457812ad8d29a15d403f17702ac7e090680300","dweb:/ipfs/QmUqqibiekFv84mdq7zeyRF56mLJbFyFUxWKTrz8Twzkpn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol":{"keccak256":"0xc60f6705f87f380fd6d2ec1842556e281e8b72d16821f22b09414eae506e2234","urls":["bzz-raw://1264bc4bae61e14ced96c2df6b38432ad57e34ba3a1d0ed75835098952067bd8","dweb:/ipfs/Qmerz4LoRqqmihxLwHgEooJoeRw1yHrC41Dne78h6LsQJn"],"license":"MIT"},"src/contracts/defaultStakerRewards/DefaultStakerRewardsFactory.sol":{"keccak256":"0x7fbcc19c3183b7d8c35d10ebd06ac6cdba50e629cee9a270472e1c927196902a","urls":["bzz-raw://eaf27047b79a2be8cd6d16780fcd246d68af92005b2040242c975a4479825da1","dweb:/ipfs/Qmd35ms7cYRLMpyyop6w8YM8wfDxpW5EVqiRptnHcDJ5am"],"license":"MIT"},"src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"src/interfaces/defaultStakerRewards/IDefaultStakerRewardsFactory.sol":{"keccak256":"0xdd1d37613e362407adc859f2d5620a52033e98658915c7f46d9b540920a7e2ab","urls":["bzz-raw://a12a6a7769c9f9668dfde17afae0d44158e21026c9f11e1e5df8f14aedcf1422","dweb:/ipfs/Qmevvss7c7HaTGm4GJuNyFG4J2t9aEbjTBLVi74N6m67fw"],"license":"MIT"},"src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"}},"version":1},"id":133} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"stakerRewardsImplementation","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"create","inputs":[{"name":"params","type":"tuple","internalType":"struct IDefaultStakerRewards.InitParams","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"adminFee","type":"uint256","internalType":"uint256"},{"name":"defaultAdminRoleHolder","type":"address","internalType":"address"},{"name":"adminFeeClaimRoleHolder","type":"address","internalType":"address"},{"name":"adminFeeSetRoleHolder","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60a034606557601f61041138819003918201601f19168301916001600160401b03831184841017606957808492602094604052833981010312606557516001600160a01b0381168103606557608052604051610393908161007e82396080518160b20152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f5f3560e01c806314887c581461020c5780635cd8b15e146101f057806361ca1df21461009e5763b42ba2a214610046575f80fd5b3461009b57602036600319011261009b576004359080548210156100875780805260208082209092015460405160039290921b1c6001600160a01b03168152f35b634e487b7160e01b81526032600452602490fd5b80fd5b50346101dd5760a03660031901126101dd577f00000000000000000000000000000000000000000000000000000000000000006e5af43d82803e903d91602b57fd5bf35f54604051602081019182526100f96040820161024a565b60c0815261010860e0826102b9565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169081156101e157813b156101dd57604051639df4021d60e01b81529161016e6004840161024a565b5f8360a48183855af19283156101d2576020936101bd575b50610190816102ef565b50807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b6040519380a28152f35b6101ca9192505f906102b9565b5f905f610186565b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b346101dd575f3660031901126101dd5760205f54604051908152f35b346101dd5760203660031901126101dd576004356001600160a01b038116908190036101dd575f526001602052602060405f20541515604051908152f35b6004356001600160a01b038116908190036101dd57815260243560208201526044356001600160a01b038116908190036101dd5760408201526064356001600160a01b038116908190036101dd5760608201526084356001600160a01b03811691908290036101dd5760800152565b90601f8019910116810190811067ffffffffffffffff8211176102db57604052565b634e487b7160e01b5f52604160045260245ffd5b805f52600160205260405f2054155f14610358575f54680100000000000000008110156102db57600181015f555f548110156103445781905f805260205f2001555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52603260045260245ffd5b505f9056fea2646970667358221220fc6a7a05b98b3e9c5bb0140e713d3cc90c85e6f5a1ccc5ab6641f61fbda3a7e464736f6c63430008230033","sourceMap":"387:775:155:-:0;;;;;;;;;;;;;-1:-1:-1;;387:775:155;;;;-1:-1:-1;;;;;387:775:155;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;387:775:155;;;;;;638:59;;387:775;;;;;;;;638:59;387:775;;;;;;;-1:-1:-1;387:775:155;;;;;;-1:-1:-1;387:775:155;;;;;-1:-1:-1;387:775:155","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806314887c581461020c5780635cd8b15e146101f057806361ca1df21461009e5763b42ba2a214610046575f80fd5b3461009b57602036600319011261009b576004359080548210156100875780805260208082209092015460405160039290921b1c6001600160a01b03168152f35b634e487b7160e01b81526032600452602490fd5b80fd5b50346101dd5760a03660031901126101dd577f00000000000000000000000000000000000000000000000000000000000000006e5af43d82803e903d91602b57fd5bf35f54604051602081019182526100f96040820161024a565b60c0815261010860e0826102b9565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169081156101e157813b156101dd57604051639df4021d60e01b81529161016e6004840161024a565b5f8360a48183855af19283156101d2576020936101bd575b50610190816102ef565b50807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b6040519380a28152f35b6101ca9192505f906102b9565b5f905f610186565b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b346101dd575f3660031901126101dd5760205f54604051908152f35b346101dd5760203660031901126101dd576004356001600160a01b038116908190036101dd575f526001602052602060405f20541515604051908152f35b6004356001600160a01b038116908190036101dd57815260243560208201526044356001600160a01b038116908190036101dd5760408201526064356001600160a01b038116908190036101dd5760608201526084356001600160a01b03811691908290036101dd5760800152565b90601f8019910116810190811067ffffffffffffffff8211176102db57604052565b634e487b7160e01b5f52604160045260245ffd5b805f52600160205260405f2054155f14610358575f54680100000000000000008110156102db57600181015f555f548110156103445781905f805260205f2001555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52603260045260245ffd5b505f9056fea2646970667358221220fc6a7a05b98b3e9c5bb0140e713d3cc90c85e6f5a1ccc5ab6641f61fbda3a7e464736f6c63430008230033","sourceMap":"387:775:155:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;985:35;;;387:775;;;;;;;;;-1:-1:-1;;387:775:155;;;;;;5894:18:47;387:775:155;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;387:775:155;;;;;-1:-1:-1;;;387:775:155;;;;;;;;;;;;;;;;;;-1:-1:-1;;387:775:155;;;;926:29;5090:581:11;387:775:155;;;;985:35;;;387:775;;;;;;;;:::i;:::-;985:35;;;;387:775;985:35;;:::i;:::-;387:775;975:46;;5090:581:11;;;;;;;;387:775:155;5090:581:11;;;;985:35:155;5090:581:11;387:775:155;;;;;5090:581:11;;;387:775:155;5090:581:11;387:775:155;5684:22:11;;;5680:85;;1032:54:155;;;;;387:775;;-1:-1:-1;;;1032:54:155;;387:775;;;1032:54;;387:775;:::i;:::-;;1032:54;;;;;;;;;;;;985:35;1032:54;;;387:775;15182:50:47;;;;:::i;:::-;;387:775:155;1021:18:86;387:775:155;;1021:18:86;;;387:775:155;;;1032:54;;;;;387:775;1032:54;;:::i;:::-;387:775;1032:54;;;;;387:775;;;;;;;;;1032:54;387:775;;;5680:85:11;5729:25;;;387:775:155;5729:25:11;387:775:155;;5729:25:11;387:775:155;;;;;;-1:-1:-1;;387:775:155;;;;;;;;;;;;;;;;;;;-1:-1:-1;;387:775:155;;;;;;-1:-1:-1;;;;;387:775:155;;;;;;;;;;5238:14:47;387:775:155;;;;;;;5238:26:47;;387:775:155;;;;;;;;;-1:-1:-1;;;;;387:775:155;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;387:775:155;;;;;;;;;;;;;;-1:-1:-1;;;;;387:775:155;;;;;;;;;;;;;;-1:-1:-1;;;;;387:775:155;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;387:775:155;;;;;-1:-1:-1;387:775:155;2538:406:47;387:775:155;;;5238:14:47;387:775:155;;;;;;5238:26:47;2617:321;2621:22;;;387:775:155;;;;;;;;5238:14:47;387:775:155;;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:47;387:775:155;;;;;;5238:14:47;2873:11;:::o;387:775:155:-;;;;;;;;;;;;2617:321:47;2915:12;387:775:155;2915:12:47;:::o","linkReferences":{},"immutableReferences":{"83401":[{"start":178,"length":32}]}},"methodIdentifiers":{"create((address,uint256,address,address,address))":"61ca1df2","entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stakerRewardsImplementation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"adminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"defaultAdminRoleHolder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adminFeeClaimRoleHolder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adminFeeSetRoleHolder\",\"type\":\"address\"}],\"internalType\":\"struct IDefaultStakerRewards.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"create((address,uint256,address,address,address))\":{\"params\":{\"params\":\"initial parameters needed for a staker rewards contract deployment\"},\"returns\":{\"_0\":\"address of the created staker rewards contract\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"create((address,uint256,address,address,address))\":{\"notice\":\"Create a default staker rewards contract for a given vault.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/defaultStakerRewards/DefaultStakerRewardsFactory.sol\":\"DefaultStakerRewardsFactory\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/Clones.sol\":{\"keccak256\":\"0x5a1847c0c6b92d60711f04cba9eaff572ae1f657cff1b8ca4ba065bcdbd68d8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://403f015277242179edf64150e044b4a18f6ee2cc5edaf6b067a7791545732ed9\",\"dweb:/ipfs/QmYoLCcvqZDofK8ZcvbQcv3Wj5HHku7nF8Y3pXx2efawJb\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0\",\"dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Create2.sol\":{\"keccak256\":\"0xe06ddfff69f3ba154d92102d9a85db2780e045303a587360cf12195216e851ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac19cc390a227758c239c06d3a11d0a2c40c8f58eabb034154b661269d4a0851\",\"dweb:/ipfs/QmdSsfYsPX5RyAXSfHRvR5zdY9MffAgZVa3vdxQUypFBa5\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99\",\"dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xe3a2cff969716ebedd6f9fc7f4cbc499449e9bd0377afa49dab9e9c21212a50e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b14eb6728d660a790b2c49df0e96fe31e467ec30fc02ae41944b5d5a628610d8\",\"dweb:/ipfs/QmSP2j6xhEbCRzDyv5HTwvJV14vBtyZFog3LUh7wp94YHc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0x842cc1aad7ab31fce63200401deddce3a84f73fef96b3a4841b310b09ab9aa7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90c6d93642c21475ba6240ad13a8d75f5df215e0363efc4cbe13f71e779d38d2\",\"dweb:/ipfs/QmXCGRb3aYGf9js21UfV7tATAo26o3gWRgM539WamvniP6\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812\",\"dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y\"]},\"dependencies/symbiotic-core-main/src/contracts/common/Registry.sol\":{\"keccak256\":\"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6\",\"dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8\",\"dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78\",\"dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0\",\"dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC\"]},\"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol\":{\"keccak256\":\"0x6b8db8f6a491dcf7923837cf51798b97e673959c8812c34dbd52c780bb25482b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f22cb82be0716820cd627f0ddadd7207e2e565b120b4f70612f8374934e393\",\"dweb:/ipfs/QmW44HHqTs5389mgwSiEcbePtbYjfQ8YK4uyqTjaYg9JLG\"]},\"src/contracts/defaultStakerRewards/DefaultStakerRewardsFactory.sol\":{\"keccak256\":\"0x48e529ae8c0d2cee8923e004fbeea17d06a558ad87b9f2be431533c341cb3acf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6abd770b98e78a41f403907a0d954d8c68006b6542712f04081f9cc0f27f9189\",\"dweb:/ipfs/QmVznb4u3yPQSSTgf18tY2vCW2T4JnqhttbKniZBChQJSw\"]},\"src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6\",\"dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD\"]},\"src/interfaces/defaultStakerRewards/IDefaultStakerRewardsFactory.sol\":{\"keccak256\":\"0xdd1d37613e362407adc859f2d5620a52033e98658915c7f46d9b540920a7e2ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a12a6a7769c9f9668dfde17afae0d44158e21026c9f11e1e5df8f14aedcf1422\",\"dweb:/ipfs/Qmevvss7c7HaTGm4GJuNyFG4J2t9aEbjTBLVi74N6m67fw\"]},\"src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85\",\"dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"stakerRewardsImplementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"struct IDefaultStakerRewards.InitParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"adminFee","type":"uint256"},{"internalType":"address","name":"defaultAdminRoleHolder","type":"address"},{"internalType":"address","name":"adminFeeClaimRoleHolder","type":"address"},{"internalType":"address","name":"adminFeeSetRoleHolder","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"create((address,uint256,address,address,address))":{"params":{"params":"initial parameters needed for a staker rewards contract deployment"},"returns":{"_0":"address of the created staker rewards contract"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"create((address,uint256,address,address,address))":{"notice":"Create a default staker rewards contract for a given vault."},"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/defaultStakerRewards/DefaultStakerRewardsFactory.sol":"DefaultStakerRewardsFactory"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/Clones.sol":{"keccak256":"0x5a1847c0c6b92d60711f04cba9eaff572ae1f657cff1b8ca4ba065bcdbd68d8b","urls":["bzz-raw://403f015277242179edf64150e044b4a18f6ee2cc5edaf6b067a7791545732ed9","dweb:/ipfs/QmYoLCcvqZDofK8ZcvbQcv3Wj5HHku7nF8Y3pXx2efawJb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098","urls":["bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0","dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Create2.sol":{"keccak256":"0xe06ddfff69f3ba154d92102d9a85db2780e045303a587360cf12195216e851ca","urls":["bzz-raw://ac19cc390a227758c239c06d3a11d0a2c40c8f58eabb034154b661269d4a0851","dweb:/ipfs/QmdSsfYsPX5RyAXSfHRvR5zdY9MffAgZVa3vdxQUypFBa5"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuard.sol":{"keccak256":"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53","urls":["bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99","dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/AccessControlUpgradeable.sol":{"keccak256":"0xe3a2cff969716ebedd6f9fc7f4cbc499449e9bd0377afa49dab9e9c21212a50e","urls":["bzz-raw://b14eb6728d660a790b2c49df0e96fe31e467ec30fc02ae41944b5d5a628610d8","dweb:/ipfs/QmSP2j6xhEbCRzDyv5HTwvJV14vBtyZFog3LUh7wp94YHc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/MulticallUpgradeable.sol":{"keccak256":"0x842cc1aad7ab31fce63200401deddce3a84f73fef96b3a4841b310b09ab9aa7a","urls":["bzz-raw://90c6d93642c21475ba6240ad13a8d75f5df215e0363efc4cbe13f71e779d38d2","dweb:/ipfs/QmXCGRb3aYGf9js21UfV7tATAo26o3gWRgM539WamvniP6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224","urls":["bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812","dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y"],"license":"MIT"},"dependencies/symbiotic-core-main/src/contracts/common/Registry.sol":{"keccak256":"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907","urls":["bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6","dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH"],"license":"BUSL-1.1"},"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791","urls":["bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8","dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol":{"keccak256":"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d","urls":["bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78","dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1","urls":["bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0","dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC"],"license":"MIT"},"src/contracts/defaultStakerRewards/DefaultStakerRewards.sol":{"keccak256":"0x6b8db8f6a491dcf7923837cf51798b97e673959c8812c34dbd52c780bb25482b","urls":["bzz-raw://11f22cb82be0716820cd627f0ddadd7207e2e565b120b4f70612f8374934e393","dweb:/ipfs/QmW44HHqTs5389mgwSiEcbePtbYjfQ8YK4uyqTjaYg9JLG"],"license":"MIT"},"src/contracts/defaultStakerRewards/DefaultStakerRewardsFactory.sol":{"keccak256":"0x48e529ae8c0d2cee8923e004fbeea17d06a558ad87b9f2be431533c341cb3acf","urls":["bzz-raw://6abd770b98e78a41f403907a0d954d8c68006b6542712f04081f9cc0f27f9189","dweb:/ipfs/QmVznb4u3yPQSSTgf18tY2vCW2T4JnqhttbKniZBChQJSw"],"license":"MIT"},"src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2","urls":["bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6","dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD"],"license":"MIT"},"src/interfaces/defaultStakerRewards/IDefaultStakerRewardsFactory.sol":{"keccak256":"0xdd1d37613e362407adc859f2d5620a52033e98658915c7f46d9b540920a7e2ab","urls":["bzz-raw://a12a6a7769c9f9668dfde17afae0d44158e21026c9f11e1e5df8f14aedcf1422","dweb:/ipfs/Qmevvss7c7HaTGm4GJuNyFG4J2t9aEbjTBLVi74N6m67fw"],"license":"MIT"},"src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d","urls":["bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85","dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh"],"license":"MIT"}},"version":1},"id":155} \ No newline at end of file diff --git a/ethexe/ethereum/abi/DelegatorFactory.json b/ethexe/ethereum/abi/DelegatorFactory.json index 17b3eec23fc..97b5c5ad105 100644 --- a/ethexe/ethereum/abi/DelegatorFactory.json +++ b/ethexe/ethereum/abi/DelegatorFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220377c7c8f4b9c9b6585fa533deadc519659538dd3b8b8fd22fffd3bbad02b228064736f6c63430008190033","sourceMap":"181:124:63:-:0;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;1273:26:32;;1269:95;;3004:6;181:124:63;;-1:-1:-1;;;;;;181:124:63;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;181:124:63;;;;;;;1269:95:32;181:124:63;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;181:124:63;;;1322:31:32;181:124:63;-1:-1:-1;181:124:63;;;;;;-1:-1:-1;181:124:63;;;;;-1:-1:-1;181:124:63","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220377c7c8f4b9c9b6585fa533deadc519659538dd3b8b8fd22fffd3bbad02b228064736f6c63430008190033","sourceMap":"181:124:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;2627:22;;2623:91;;181:124:63;;3004:6:32;181:124:63;;;;;;;;3004:6:32;181:124:63;;3052:40:32;181:124:63;3052:40:32;;181:124:63;2623:91:32;181:124:63;;;;;2672:31:32;;;;;;;;181:124:63;2672:31:32;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:36;2248:21:70;;;:::i;:::-;181:124:63;;;;;;;2299:40:70;181:124:63;2299:40:70;;181:124:63;;;;;;;;;;;;;2299:40:70;181:124:63;;;;;;;;:::i;:::-;2299:40:70;;;;;;;;;:::i;:::-;181:124:63;2289:51:70;;2364:565:36;;;;;;;;181:124:63;2364:565:36;;;;181:124:63;2364:565:36;181:124:63;;;;;2364:565:36;;;181:124:63;2364:565:36;181:124:63;2942:22:36;;;2938:86;;8409:50:61;;;:::i;:::-;;181:124:63;;1077:18:74;;;181:124:63;1077:18:74;;2382:33:70;;;;;181:124:63;;;;;;;;;2382:33:70;;181:124:63;2382:33:70;;;181:124:63;;;;;;:::i;:::-;2382:33:70;;;;;;;;;;;;181:124:63;;;;;;;;;2382:33:70;181:124:63;;;;;;;;;2382:33:70;;;;181:124:63;;;;;;;;;;;;2382:33:70;181:124:63;;;;;;;;;2938:86:36;181:124:63;;-1:-1:-1;;;2987:26:36;;181:124:63;;2987:26:36;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;:::i;:::-;;;;633:54:70;181:124:63;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;181:124:63;;;;;;;822:21:70;;;;818:72;;181:124:63;;;1946:11:70;181:124:63;;;;;;;;1942:76:70;;181:124:63;;;;1946:11:70;181:124:63;;;;2049:4:70;181:124:63;;;;;;;;2069:16:70;181:124:63;2069:16:70;;181:124:63;1942:76:70;181:124:63;;-1:-1:-1;;;1987:20:70;;;818:72;181:124:63;;-1:-1:-1;;;866:13:70;;;181:124:63;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;-1:-1:-1;181:124:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;1500:62:32;;:::i;:::-;181:124:63;;-1:-1:-1;;;1476:34:70;;181:124:63;1476:34:70;181:124:63;1476:34:70;181:124:63;1476:34:70;;;;;;;;181:124:63;1476:34:70;;;181:124:63;-1:-1:-1;181:124:63;1522:4:70;1476:51;;;;;:102;;181:124:63;1472:163:70;;;8409:50:61;;;:::i;:::-;1648:49:70;1644:107;;1766:26;;181:124:63;1766:26:70;;181:124:63;1644:107:70;181:124:63;-1:-1:-1;;;1720:20:70;;;1472:163;181:124:63;-1:-1:-1;;;1601:23:70;;;1476:102;181:124:63;;-1:-1:-1;;;1531:31:70;;181:124:63;;-1:-1:-1;181:124:63;;1531:31:70;181:124:63;1531:31:70;;;;;;;;181:124:63;1531:31:70;;;1476:102;181:124:63;;;;;;;;;1531:47:70;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:63;;;;;;;;;;;;1531:31:70;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;181:124:63;;;;;;;;;;;;1476:34:70;;;;;;;;;;181:124:63;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;1710:6:32;181:124:63;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;1500:62:32;;:::i;:::-;3004:6;181:124:63;;-1:-1:-1;;;;;;181:124:63;;;;;;;-1:-1:-1;;;;;181:124:63;3052:40:32;181:124:63;;3052:40:32;181:124:63;;;;;;;;-1:-1:-1;;181:124:63;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:124:63;;;;;-1:-1:-1;;;;;181:124:63;;;;;;;;;;;;;4360:14:61;181:124:63;;;;;4360:26:61;;181:124:63;;;;;;;;;;;;;;:::o;:::-;;;2299:40:70;;181:124:63;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:63;;;;;;;;-1:-1:-1;;181:124:63;;;;:::o;1192:143:70:-;181:124:63;;1291:27:70;181:124:63;;;;;;1291:27:70;-1:-1:-1;181:124:63;;;;-1:-1:-1;;;;;181:124:63;;1192:143:70:o;181:124:63:-;;;;-1:-1:-1;181:124:63;;1291:27:70;181:124:63;;-1:-1:-1;181:124:63;1796:162:32;1710:6;181:124:63;-1:-1:-1;;;;;181:124:63;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;181:124:63;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;181:124:63;;;1901:40:32;2241:406:61;181:124:63;-1:-1:-1;181:124:63;4360:14:61;181:124:63;;;-1:-1:-1;181:124:63;;4360:26:61;2320:321;181:124:63;;;;;-1:-1:-1;;;181:124:63;;;;;4360:14:61;181:124:63;;;;;;;;;;;;;;;;;;-1:-1:-1;181:124:63;4360:14:61;181:124:63;;;-1:-1:-1;181:124:63;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:61;:::o;2241:406::-;181:124:63;;;4360:14:61;181:124:63;;;;;;4360:26:61;2320:321;181:124:63;;;;;-1:-1:-1;;;181:124:63;;;;;4360:14:61;181:124:63;;;;;;;;;;;;;;;;;;;;4360:14:61;181:124:63;;;;;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/DelegatorFactory.sol\":\"DelegatorFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68\",\"dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/DelegatorFactory.sol":"DelegatorFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0x3c3fb62c441302f4f75d94703779f5c4bb755c06f310b4c923dbf24d6e0adda9","urls":["bzz-raw://597fa8be7179d8a555bf942c1dea0504273a1d34f6ac4c206fc2e816da143e68","dweb:/ipfs/Qmf54DKNYXC7fTMcAFABw68RC6ZFenVgyAPGhbPTf6s5TR"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b757601f61099538819003918201601f19168301916001600160401b0383118484101760bb5780849260209460405283398101031260b757516001600160a01b0381169081900360b757801560a457600280546001600160a01b03198116831790915560405191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108c590816100d08239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f5f3560e01c806314887c58146106a45780635cd8b15e14610688578063715018a61461062d5780638da5cb5b146106055780639b19251a14610488578063b42ba2a21461041c578063b572a96614610374578063b6caa11914610336578063cd108ef81461018f578063f15df2e514610167578063f2fde38b146100d65763f96616021461009e575f80fd5b346100d35760203660031901126100d35760206100c16100bc6106e2565b61074f565b6040516001600160a01b039091168152f35b80fd5b50346100d35760203660031901126100d3576004356001600160a01b0381169081900361016357610105610796565b801561014f57600280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b50346100d357806003193601126100d357602067ffffffffffffffff60045416604051908152f35b34610323576040366003190112610323576101a86106e2565b60243567ffffffffffffffff811161032357366023820112156103235780600401359167ffffffffffffffff83116103235760248201916024843692010111610323576e5af43d82803e903d91602b57fd5bf36102048261074f565b915f549067ffffffffffffffff60405191602083019384521660408201526060808201526102488161023a60808201898961072f565b03601f1981018352826106f9565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169081156103275761029682610835565b5060405192827fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2823b1561032357836102ea5f93829363439fab9160e01b845260206004850152602484019161072f565b038183855af191821561031857602092610308575b50604051908152f35b5f610312916106f9565b5f6102ff565b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b346103235760203660031901126103235767ffffffffffffffff6103586106e2565b165f526003602052602060ff60405f2054166040519015158152f35b346103235760203660031901126103235761038d6106e2565b610395610796565b67ffffffffffffffff806004541691169081101561040d57805f52600360205260ff60405f2054166103fe57805f52600360205260405f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b63f53de75f60e01b5f5260045ffd5b63b968846160e01b5f5260045ffd5b34610323576020366003190112610323576004355f54811015610474575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b34610323576020366003190112610323576004356001600160a01b03811690819003610323576104b6610796565b6040516202dd3160ec1b8152602081600481855afa908115610318575f916105c3575b506001600160a01b03163014801590610543575b610534576104fa816107d2565b15610525577feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b63b73e95e160e01b5f5260045ffd5b63340aafcd60e11b5f5260045ffd5b50604051635d927f4560e11b8152602081600481855afa908115610318575f91610580575b5067ffffffffffffffff8060045416911614156104ed565b90506020813d6020116105bb575b8161059b602093836106f9565b81010312610323575167ffffffffffffffff811681036103235782610568565b3d915061058e565b90506020813d6020116105fd575b816105de602093836106f9565b8101031261032357516001600160a01b038116810361032357826104d9565b3d91506105d1565b34610323575f366003190112610323576002546040516001600160a01b039091168152602090f35b34610323575f36600319011261032357610645610796565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610323575f3660031901126103235760205f54604051908152f35b34610323576020366003190112610323576004356001600160a01b03811690819003610323575f526001602052602060405f20541515604051908152f35b6004359067ffffffffffffffff8216820361032357565b90601f8019910116810190811067ffffffffffffffff82111761071b57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156104745760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b6002546001600160a01b031633036107aa57565b63118cdaa760e01b5f523360045260245ffd5b8054821015610474575f5260205f2001905f90565b805f52600560205260405f2054155f1461083057600454600160401b81101561071b57806001610807920160045560046107bd565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610830575f54600160401b81101561071b5780600161086792015f555f6107bd565b81549060031b9083821b915f19901b19161790555f54905f52600160205260405f205560019056fea264697066735822122005452b1fb8e231e2393cd396ec69455d8aa91db56f02c2338aa8efcd38ec59d064736f6c63430008230033","sourceMap":"182:110:116:-:0;;;;;;;;;;;;;-1:-1:-1;;182:110:116;;;;-1:-1:-1;;;;;182:110:116;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;182:110:116;;;;;;;;1273:26:1;;1269:95;;3004:6;182:110:116;;-1:-1:-1;;;;;;182:110:116;;;;;;;;;;;-1:-1:-1;;;;;182:110:116;3052:40:1;-1:-1:-1;;3052:40:1;182:110:116;;;;;;;1269:95:1;1322:31;;;-1:-1:-1;1322:31:1;-1:-1:-1;1322:31:1;182:110:116;;-1:-1:-1;1322:31:1;182:110:116;-1:-1:-1;182:110:116;;;;;;-1:-1:-1;182:110:116;;;;;-1:-1:-1;182:110:116","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806314887c58146106a45780635cd8b15e14610688578063715018a61461062d5780638da5cb5b146106055780639b19251a14610488578063b42ba2a21461041c578063b572a96614610374578063b6caa11914610336578063cd108ef81461018f578063f15df2e514610167578063f2fde38b146100d65763f96616021461009e575f80fd5b346100d35760203660031901126100d35760206100c16100bc6106e2565b61074f565b6040516001600160a01b039091168152f35b80fd5b50346100d35760203660031901126100d3576004356001600160a01b0381169081900361016357610105610796565b801561014f57600280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b50346100d357806003193601126100d357602067ffffffffffffffff60045416604051908152f35b34610323576040366003190112610323576101a86106e2565b60243567ffffffffffffffff811161032357366023820112156103235780600401359167ffffffffffffffff83116103235760248201916024843692010111610323576e5af43d82803e903d91602b57fd5bf36102048261074f565b915f549067ffffffffffffffff60405191602083019384521660408201526060808201526102488161023a60808201898961072f565b03601f1981018352826106f9565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169081156103275761029682610835565b5060405192827fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2823b1561032357836102ea5f93829363439fab9160e01b845260206004850152602484019161072f565b038183855af191821561031857602092610308575b50604051908152f35b5f610312916106f9565b5f6102ff565b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b346103235760203660031901126103235767ffffffffffffffff6103586106e2565b165f526003602052602060ff60405f2054166040519015158152f35b346103235760203660031901126103235761038d6106e2565b610395610796565b67ffffffffffffffff806004541691169081101561040d57805f52600360205260ff60405f2054166103fe57805f52600360205260405f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b63f53de75f60e01b5f5260045ffd5b63b968846160e01b5f5260045ffd5b34610323576020366003190112610323576004355f54811015610474575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b34610323576020366003190112610323576004356001600160a01b03811690819003610323576104b6610796565b6040516202dd3160ec1b8152602081600481855afa908115610318575f916105c3575b506001600160a01b03163014801590610543575b610534576104fa816107d2565b15610525577feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b63b73e95e160e01b5f5260045ffd5b63340aafcd60e11b5f5260045ffd5b50604051635d927f4560e11b8152602081600481855afa908115610318575f91610580575b5067ffffffffffffffff8060045416911614156104ed565b90506020813d6020116105bb575b8161059b602093836106f9565b81010312610323575167ffffffffffffffff811681036103235782610568565b3d915061058e565b90506020813d6020116105fd575b816105de602093836106f9565b8101031261032357516001600160a01b038116810361032357826104d9565b3d91506105d1565b34610323575f366003190112610323576002546040516001600160a01b039091168152602090f35b34610323575f36600319011261032357610645610796565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610323575f3660031901126103235760205f54604051908152f35b34610323576020366003190112610323576004356001600160a01b03811690819003610323575f526001602052602060405f20541515604051908152f35b6004359067ffffffffffffffff8216820361032357565b90601f8019910116810190811067ffffffffffffffff82111761071b57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156104745760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b6002546001600160a01b031633036107aa57565b63118cdaa760e01b5f523360045260245ffd5b8054821015610474575f5260205f2001905f90565b805f52600560205260405f2054155f1461083057600454600160401b81101561071b57806001610807920160045560046107bd565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610830575f54600160401b81101561071b5780600161086792015f555f6107bd565b81549060031b9083821b915f19901b19161790555f54905f52600160205260405f205560019056fea264697066735822122005452b1fb8e231e2393cd396ec69455d8aa91db56f02c2338aa8efcd38ec59d064736f6c63430008230033","sourceMap":"182:110:116:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;182:110:116;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;182:110:116;;;;;;;;;;;;;;;;-1:-1:-1;;182:110:116;;;;;;-1:-1:-1;;;;;182:110:116;;;;;;;;1500:62:1;;:::i;:::-;2627:22;;2623:91;;3004:6;182:110:116;;-1:-1:-1;;;;;;182:110:116;;;;;;;-1:-1:-1;;;;;182:110:116;3052:40:1;;;;182:110:116;;2623:91:1;-1:-1:-1;;;2672:31:1;;182:110:116;;;;;2672:31:1;;182:110:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;182:110:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5090:581:10;2179:21:123;;;:::i;:::-;182:110:116;;;;;;;2230:40:123;182:110:116;2230:40:123;;182:110:116;;;;;;;;;;;;;2230:40:123;182:110:116;;;;;;;;:::i;:::-;2230:40:123;;;;;;;;;:::i;:::-;182:110:116;2220:51:123;;5090:581:10;;;;;;;;182:110:116;5090:581:10;;;;182:110:116;5090:581:10;182:110:116;;;;;5090:581:10;;;182:110:116;5090:581:10;182:110:116;5684:22:10;;;5680:85;;15182:50:42;;;:::i;:::-;;182:110:116;;1021:18:127;;;182:110:116;1021:18:127;;2313:33:123;;;;;182:110:116;;;;;;;;;2313:33:123;;182:110:116;;2313:33:123;;182:110:116;;;;;;:::i;:::-;2313:33:123;;;;;;;;;;;182:110:116;2313:33:123;;;182:110:116;;;;;;;;2313:33:123;182:110:116;2313:33:123;;;:::i;:::-;182:110:116;2313:33:123;;;182:110:116;;;;;;;;;2313:33:123;182:110:116;;;5680:85:10;5729:25;;;182:110:116;5729:25:10;182:110:116;;5729:25:10;182:110:116;;;;;;-1:-1:-1;;182:110:116;;;;;;;:::i;:::-;;;;634:54:123;182:110:116;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;182:110:116;;;;;;:::i;:::-;1500:62:1;;:::i;:::-;182:110:116;;;;;;;809:21:123;;;;805:72;;182:110:116;;;1877:11:123;182:110:116;;;;;;;;1873:76:123;;182:110:116;;;1877:11:123;182:110:116;;;;;1980:4:123;182:110:116;;;;;;;;2000:16:123;182:110:116;2000:16:123;;182:110:116;1873:76:123;1918:20;;;182:110:116;1918:20:123;182:110:116;;1918:20:123;805:72;853:13;;;182:110:116;853:13:123;182:110:116;;853:13:123;182:110:116;;;;;;-1:-1:-1;;182:110:116;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;182:110:116;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;182:110:116;;;;;;-1:-1:-1;;;;;182:110:116;;;;;;;;1500:62:1;;:::i;:::-;182:110:116;;-1:-1:-1;;;1421:34:123;;182:110:116;;;;1421:34:123;;;;;;;;182:110:116;1421:34:123;;;182:110:116;-1:-1:-1;;;;;;182:110:116;1467:4:123;1421:51;;;;:102;;182:110:116;1417:163:123;;15182:50:42;;;:::i;:::-;1593:49:123;1589:107;;1711:26;182:110:116;1711:26:123;;182:110:116;1589:107:123;1665:20;;;182:110:116;1665:20:123;182:110:116;;1665:20:123;1417:163;1546:23;;;182:110:116;1546:23:123;182:110:116;;1546:23:123;1421:102;-1:-1:-1;182:110:116;;-1:-1:-1;;;1476:31:123;;182:110:116;;;;1476:31:123;;;;;;;;182:110:116;1476:31:123;;;1421:102;182:110:116;;;;;;;;1476:47:123;;1421:102;;1476:31;;;182:110:116;1476:31:123;;182:110:116;1476:31:123;;;;;;182:110:116;1476:31:123;;;:::i;:::-;;;182:110:116;;;;;;;;;;;;1476:31:123;;;;;;-1:-1:-1;1476:31:123;;1421:34;;;182:110:116;1421:34:123;;182:110:116;1421:34:123;;;;;;182:110:116;1421:34:123;;;:::i;:::-;;;182:110:116;;;;;-1:-1:-1;;;;;182:110:116;;;;;;1421:34:123;;;;;;-1:-1:-1;1421:34:123;;182:110:116;;;;;;-1:-1:-1;;182:110:116;;;;1710:6:1;182:110:116;;;-1:-1:-1;;;;;182:110:116;;;;;;;;;;;;;;-1:-1:-1;;182:110:116;;;;1500:62:1;;:::i;:::-;3004:6;182:110:116;;-1:-1:-1;;;;;;182:110:116;;;;;;;-1:-1:-1;;;;;182:110:116;3052:40:1;182:110:116;;3052:40:1;182:110:116;;;;;;;-1:-1:-1;;182:110:116;;;;;;;;;;;;;;;;;;;-1:-1:-1;;182:110:116;;;;;;-1:-1:-1;;;;;182:110:116;;;;;;;;;;5238:14:42;182:110:116;;;;;;;5238:26:42;;182:110:116;;;;;;;;;;;;;;;;;:::o;:::-;;;2230:40:123;;182:110:116;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;182:110:116;;;;;-1:-1:-1;182:110:116;;;;;;;;;;;;;;-1:-1:-1;182:110:116;;;;;;;;-1:-1:-1;;182:110:116;;;;:::o;1165:129:123:-;182:110:116;;1250:27:123;182:110:116;;;;;;1250:27:123;-1:-1:-1;182:110:116;;;;-1:-1:-1;;;;;182:110:116;;1165:129:123:o;1796:162:1:-;1710:6;182:110:116;-1:-1:-1;;;;;182:110:116;735:10:23;1855:23:1;1851:101;;1796:162::o;1851:101::-;1901:40;;;-1:-1:-1;1901:40:1;735:10:23;1901:40:1;182:110:116;;-1:-1:-1;1901:40:1;182:110:116;;;;;;;;-1:-1:-1;182:110:116;;-1:-1:-1;182:110:116;;;-1:-1:-1;182:110:116;:::o;2538:406:42:-;182:110:116;;;5238:14:42;182:110:116;;;;;;5238:26:42;2617:321;2621:22;;;182:110:116;;-1:-1:-1;;;182:110:116;;;;;;5238:14:42;182:110:116;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:42;182:110:116;;;;;;5238:14:42;2873:11;:::o;2617:321::-;2915:12;182:110:116;2915:12:42;:::o;2538:406::-;182:110:116;;;5238:14:42;182:110:116;;;;;;5238:26:42;2617:321;2621:22;;;182:110:116;;-1:-1:-1;;;182:110:116;;;;;;5238:14:42;182:110:116;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:42;182:110:116;;;;;;5238:14:42;2873:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/DelegatorFactory.sol\":\"DelegatorFactory\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/Clones.sol\":{\"keccak256\":\"0x5a1847c0c6b92d60711f04cba9eaff572ae1f657cff1b8ca4ba065bcdbd68d8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://403f015277242179edf64150e044b4a18f6ee2cc5edaf6b067a7791545732ed9\",\"dweb:/ipfs/QmYoLCcvqZDofK8ZcvbQcv3Wj5HHku7nF8Y3pXx2efawJb\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Create2.sol\":{\"keccak256\":\"0xe06ddfff69f3ba154d92102d9a85db2780e045303a587360cf12195216e851ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac19cc390a227758c239c06d3a11d0a2c40c8f58eabb034154b661269d4a0851\",\"dweb:/ipfs/QmdSsfYsPX5RyAXSfHRvR5zdY9MffAgZVa3vdxQUypFBa5\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"src/contracts/DelegatorFactory.sol\":{\"keccak256\":\"0xec4b274acc5a73e725a38a4afbdab1211ec97c11e5aa411c7845b31b6162c82a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5d8edc7fcddb694e53fb999f60219862a77d77b8608c6b9bd5cf128a1ec68f12\",\"dweb:/ipfs/QmUX7nM1rM6ju9WjQ9yaRFd7tvu9W6DrLJWWmqYo1ynHKB\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0xae5fb573e2f8948397053196d49731b6149c57a9419b056532d5d130bb9581d7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a7cfe6b272398e5790165eebcdfb908edfe19871dccb5bab0d8b2a1134985763\",\"dweb:/ipfs/QmdFkfcNHiC9VwDezXPgQMFmEJHyVS6o3GRrSfhr8Zomx3\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6\",\"dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH\"]},\"src/interfaces/IDelegatorFactory.sol\":{\"keccak256\":\"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80\",\"dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8\",\"dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0x8187a08243bdf52ab99f349fdfdc9adf34714a6176e8022a8979687b5bd8a1c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6528ca643908c924129728656b27b7eedf949ab964d5251591aaa2988865b93\",\"dweb:/ipfs/QmenDVpgUMP6aQ97jTK6HYzS82VEM4FhfHBtXNEjbHBiXA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/","forge-std/=dependencies/forge-std-1.16.1/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/DelegatorFactory.sol":"DelegatorFactory"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/Clones.sol":{"keccak256":"0x5a1847c0c6b92d60711f04cba9eaff572ae1f657cff1b8ca4ba065bcdbd68d8b","urls":["bzz-raw://403f015277242179edf64150e044b4a18f6ee2cc5edaf6b067a7791545732ed9","dweb:/ipfs/QmYoLCcvqZDofK8ZcvbQcv3Wj5HHku7nF8Y3pXx2efawJb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Create2.sol":{"keccak256":"0xe06ddfff69f3ba154d92102d9a85db2780e045303a587360cf12195216e851ca","urls":["bzz-raw://ac19cc390a227758c239c06d3a11d0a2c40c8f58eabb034154b661269d4a0851","dweb:/ipfs/QmdSsfYsPX5RyAXSfHRvR5zdY9MffAgZVa3vdxQUypFBa5"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"src/contracts/DelegatorFactory.sol":{"keccak256":"0xec4b274acc5a73e725a38a4afbdab1211ec97c11e5aa411c7845b31b6162c82a","urls":["bzz-raw://5d8edc7fcddb694e53fb999f60219862a77d77b8608c6b9bd5cf128a1ec68f12","dweb:/ipfs/QmUX7nM1rM6ju9WjQ9yaRFd7tvu9W6DrLJWWmqYo1ynHKB"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0xae5fb573e2f8948397053196d49731b6149c57a9419b056532d5d130bb9581d7","urls":["bzz-raw://a7cfe6b272398e5790165eebcdfb908edfe19871dccb5bab0d8b2a1134985763","dweb:/ipfs/QmdFkfcNHiC9VwDezXPgQMFmEJHyVS6o3GRrSfhr8Zomx3"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907","urls":["bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6","dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH"],"license":"BUSL-1.1"},"src/interfaces/IDelegatorFactory.sol":{"keccak256":"0x7850453237ca93b301393506d2489a38830a60be0c29f39a4a1aee3508d836e6","urls":["bzz-raw://8f418702b883c90e046af92d5654a25849baf79b61c11401ad603b861fed7b80","dweb:/ipfs/Qmdju1XFJXx3uJidzoS7srcoSnzT8jUoPAmGEdbceYgB7j"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2","urls":["bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8","dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0x8187a08243bdf52ab99f349fdfdc9adf34714a6176e8022a8979687b5bd8a1c9","urls":["bzz-raw://a6528ca643908c924129728656b27b7eedf949ab964d5251591aaa2988865b93","dweb:/ipfs/QmenDVpgUMP6aQ97jTK6HYzS82VEM4FhfHBtXNEjbHBiXA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"}},"version":1},"id":117} \ No newline at end of file diff --git a/ethexe/ethereum/abi/DemoCaller.json b/ethexe/ethereum/abi/DemoCaller.json index 30689a6ebf5..1cc2e29aad9 100644 --- a/ethexe/ethereum/abi/DemoCaller.json +++ b/ethexe/ethereum/abi/DemoCaller.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_varaEthProgram","type":"address","internalType":"contract IMirror"}],"stateMutability":"nonpayable"},{"type":"function","name":"VARA_ETH_PROGRAM","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMirror"}],"stateMutability":"view"},{"type":"function","name":"methodName","inputs":[{"name":"isPanic","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"onErrorReply","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onErrorReplyCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOnMethodNameCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOn_methodName","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ErrorReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"replyCode","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"MethodNameReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"UnauthorizedCaller","inputs":[]}],"bytecode":{"object":"0x60a034607357601f61040d38819003918201601f19168301916001600160401b03831184841017607757808492602094604052833981010312607357516001600160a01b0381168103607357608052604051610381908161008c823960805181818160700152818161019b01526103420152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:1305:173;;;;;;574:34;;198:1305;;;;;;;;574:34;198:1305;;;;;;;;;;;;;;;;;-1:-1:-1;198:1305:173;;;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;242:41;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;621:79;;:::i;:::-;198:1305;;;;;;;;;1212:28;198:1305;;;;;;;1212:28;198:1305;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;977:25;;;198:1305;;;;;;977:25;;;;;;:::i;:::-;198:1305;;;;;;;;;;948:61;;198:1305;;948:61;;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:61;;198:1305;;;;;;;948:16;198:1305;948:61;;;;;;198:1305;948:61;;;198:1305;;;;;;;;;948:61;;198:1305;948:61;;198:1305;948:61;;;;;;198:1305;948:61;;;:::i;:::-;;;198:1305;;;;;;;948:61;;;;;-1:-1:-1;948:61:173;;;198:1305;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1451:43;621:79;198:1305;621:79;198:1305;621:79;;;:::i;:::-;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;1451:43;;;;198:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173;706:158;787:16;-1:-1:-1;;;;;198:1305:173;765:10;:39;761:97;;706:158::o;761:97::-;827:20;;;;;;;","linkReferences":{},"immutableReferences":{"86346":[{"start":112,"length":32},{"start":411,"length":32},{"start":834,"length":32}]}},"methodIdentifiers":{"VARA_ETH_PROGRAM()":"dab506b2","methodName(bool)":"96b3d5a9","onErrorReply(bytes32,bytes,bytes4)":"4a646c7f","onErrorReplyCalled()":"8ed2570c","replyOnMethodNameCalled()":"d24012f8","replyOn_methodName(bytes32)":"b52ab555"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"_varaEthProgram\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UnauthorizedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ErrorReplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MethodNameReplied\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VARA_ETH_PROGRAM\",\"outputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isPanic\",\"type\":\"bool\"}],\"name\":\"methodName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"onErrorReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onErrorReplyCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"replyOnMethodNameCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"replyOn_methodName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onErrorReply(bytes32,bytes,bytes4)\":{\"details\":\"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.\",\"params\":{\"messageId\":\"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.\",\"payload\":\"Payload of reply (e.g., error message in case of `UserspacePanic`).\",\"replyCode\":\"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`).\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"replyOn_methodName(bytes32)\":{\"notice\":\"forge-lint: disable-next-line(mixed-case-function)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/DemoCaller.sol\":\"DemoCaller\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"test/DemoCaller.sol\":{\"keccak256\":\"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186\",\"dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz\"]},\"test/IDemoCallbacks.sol\":{\"keccak256\":\"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d\",\"dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IMirror","name":"_varaEthProgram","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"UnauthorizedCaller"},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":false}],"type":"event","name":"ErrorReplied","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false}],"type":"event","name":"MethodNameReplied","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"VARA_ETH_PROGRAM","outputs":[{"internalType":"contract IMirror","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"isPanic","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"methodName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"payable","type":"function","name":"onErrorReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"onErrorReplyCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"replyOnMethodNameCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"replyOn_methodName"}],"devdoc":{"kind":"dev","methods":{"onErrorReply(bytes32,bytes,bytes4)":{"details":"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.","params":{"messageId":"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.","payload":"Payload of reply (e.g., error message in case of `UserspacePanic`).","replyCode":"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`)."}}},"version":1},"userdoc":{"kind":"user","methods":{"replyOn_methodName(bytes32)":{"notice":"forge-lint: disable-next-line(mixed-case-function)"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"test/DemoCaller.sol":"DemoCaller"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/DemoCaller.sol":{"keccak256":"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97","urls":["bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186","dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/IDemoCallbacks.sol":{"keccak256":"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46","urls":["bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d","dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":86348,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":86350,"contract":"test/DemoCaller.sol:DemoCaller","label":"onErrorReplyCalled","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"ast":{"absolutePath":"test/DemoCaller.sol","id":86456,"exportedSymbols":{"DemoCaller":[86455],"IDemoCallbacks":[86468],"IMirror":[74395]},"nodeType":"SourceUnit","src":"74:1430:173","nodes":[{"id":86337,"nodeType":"PragmaDirective","src":"74:24:173","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":86339,"nodeType":"ImportDirective","src":"100:40:173","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":86456,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":86338,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86341,"nodeType":"ImportDirective","src":"141:55:173","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":86456,"sourceUnit":86469,"symbolAliases":[{"foreign":{"id":86340,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86468,"src":"149:14:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86455,"nodeType":"ContractDefinition","src":"198:1305:173","nodes":[{"id":86346,"nodeType":"VariableDeclaration","src":"242:41:173","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"267:16:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86345,"nodeType":"UserDefinedTypeName","pathNode":{"id":86344,"name":"IMirror","nameLocations":["242:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"242:7:173"},"referencedDeclaration":74395,"src":"242:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"public"},{"id":86348,"nodeType":"VariableDeclaration","src":"290:35:173","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"302:23:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86347,"name":"bool","nodeType":"ElementaryTypeName","src":"290:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86350,"nodeType":"VariableDeclaration","src":"331:30:173","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"343:18:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86349,"name":"bool","nodeType":"ElementaryTypeName","src":"331:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86354,"nodeType":"EventDefinition","src":"368:43:173","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"374:17:173","parameters":{"id":86353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86352,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"400:9:173","nodeType":"VariableDeclaration","scope":86354,"src":"392:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"391:19:173"}},{"id":86362,"nodeType":"EventDefinition","src":"417:71:173","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"423:12:173","parameters":{"id":86361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86356,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"444:9:173","nodeType":"VariableDeclaration","scope":86362,"src":"436:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86358,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"461:7:173","nodeType":"VariableDeclaration","scope":86362,"src":"455:13:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86357,"name":"bytes","nodeType":"ElementaryTypeName","src":"455:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86360,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"477:9:173","nodeType":"VariableDeclaration","scope":86362,"src":"470:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86359,"name":"bytes4","nodeType":"ElementaryTypeName","src":"470:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"435:52:173"}},{"id":86364,"nodeType":"ErrorDefinition","src":"494:27:173","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"500:18:173","parameters":{"id":86363,"nodeType":"ParameterList","parameters":[],"src":"518:2:173"}},{"id":86375,"nodeType":"FunctionDefinition","src":"527:88:173","nodes":[],"body":{"id":86374,"nodeType":"Block","src":"564:51:173","nodes":[],"statements":[{"expression":{"id":86372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86370,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"574:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86371,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86367,"src":"593:15:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"src":"574:34:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86373,"nodeType":"ExpressionStatement","src":"574:34:173"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86367,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"547:15:173","nodeType":"VariableDeclaration","scope":86375,"src":"539:23:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86366,"nodeType":"UserDefinedTypeName","pathNode":{"id":86365,"name":"IMirror","nameLocations":["539:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"539:7:173"},"referencedDeclaration":74395,"src":"539:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"538:25:173"},"returnParameters":{"id":86369,"nodeType":"ParameterList","parameters":[],"src":"564:0:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86382,"nodeType":"ModifierDefinition","src":"621:79:173","nodes":[],"body":{"id":86381,"nodeType":"Block","src":"651:49:173","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":86377,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86398,"src":"661:19:173","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":86378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:21:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86379,"nodeType":"ExpressionStatement","src":"661:21:173"},{"id":86380,"nodeType":"PlaceholderStatement","src":"692:1:173"}]},"name":"onlyVaraEthProgram","nameLocation":"630:18:173","parameters":{"id":86376,"nodeType":"ParameterList","parameters":[],"src":"648:2:173"},"virtual":false,"visibility":"internal"},{"id":86398,"nodeType":"FunctionDefinition","src":"706:158:173","nodes":[],"body":{"id":86397,"nodeType":"Block","src":"751:113:173","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86385,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"765:3:173","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"769:6:173","memberName":"sender","nodeType":"MemberAccess","src":"765:10:173","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":86389,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"787:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}],"id":86388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"779:7:173","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86387,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:173","typeDescriptions":{}}},"id":86390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"765:39:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86396,"nodeType":"IfStatement","src":"761:97:173","trueBody":{"id":86395,"nodeType":"Block","src":"806:52:173","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86392,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86364,"src":"827:18:173","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"827:20:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":86394,"nodeType":"RevertStatement","src":"820:27:173"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"715:19:173","parameters":{"id":86383,"nodeType":"ParameterList","parameters":[],"src":"734:2:173"},"returnParameters":{"id":86384,"nodeType":"ParameterList","parameters":[],"src":"751:0:173"},"scope":86455,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86415,"nodeType":"FunctionDefinition","src":"870:146:173","nodes":[],"body":{"id":86414,"nodeType":"Block","src":"931:85:173","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86409,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86400,"src":"994:7:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86407,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"977:3:173","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"981:12:173","memberName":"encodePacked","nodeType":"MemberAccess","src":"977:16:173","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":86411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1004:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86405,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"948:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"965:11:173","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"948:28:173","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":86412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:61:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86404,"id":86413,"nodeType":"Return","src":"941:68:173"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"879:10:173","parameters":{"id":86401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86400,"mutability":"mutable","name":"isPanic","nameLocation":"895:7:173","nodeType":"VariableDeclaration","scope":86415,"src":"890:12:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86399,"name":"bool","nodeType":"ElementaryTypeName","src":"890:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"889:14:173"},"returnParameters":{"id":86404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86415,"src":"922:7:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"921:9:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86432,"nodeType":"FunctionDefinition","src":"1081:166:173","nodes":[],"body":{"id":86431,"nodeType":"Block","src":"1156:91:173","nodes":[],"statements":[{"expression":{"id":86425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86423,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86348,"src":"1166:23:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1192:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1166:30:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86426,"nodeType":"ExpressionStatement","src":"1166:30:173"},{"eventCall":{"arguments":[{"id":86428,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86418,"src":"1230:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":86427,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86354,"src":"1212:17:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":86429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:28:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86430,"nodeType":"EmitStatement","src":"1207:33:173"}]},"baseFunctions":[86467],"documentation":{"id":86416,"nodeType":"StructuredDocumentation","src":"1022:54:173","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":86421,"kind":"modifierInvocation","modifierName":{"id":86420,"name":"onlyVaraEthProgram","nameLocations":["1137:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86382,"src":"1137:18:173"},"nodeType":"ModifierInvocation","src":"1137:18:173"}],"name":"replyOn_methodName","nameLocation":"1090:18:173","parameters":{"id":86419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86418,"mutability":"mutable","name":"messageId","nameLocation":"1117:9:173","nodeType":"VariableDeclaration","scope":86432,"src":"1109:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1108:19:173"},"returnParameters":{"id":86422,"nodeType":"ParameterList","parameters":[],"src":"1156:0:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86454,"nodeType":"FunctionDefinition","src":"1253:248:173","nodes":[],"body":{"id":86453,"nodeType":"Block","src":"1400:101:173","nodes":[],"statements":[{"expression":{"id":86445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86443,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86350,"src":"1410:18:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1431:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1410:25:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86446,"nodeType":"ExpressionStatement","src":"1410:25:173"},{"eventCall":{"arguments":[{"id":86448,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86434,"src":"1464:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86449,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86436,"src":"1475:7:173","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":86450,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86438,"src":"1484:9:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":86447,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86362,"src":"1451:12:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":86451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:43:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86452,"nodeType":"EmitStatement","src":"1446:48:173"}]},"baseFunctions":[73741],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":86441,"kind":"modifierInvocation","modifierName":{"id":86440,"name":"onlyVaraEthProgram","nameLocations":["1377:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86382,"src":"1377:18:173"},"nodeType":"ModifierInvocation","src":"1377:18:173"}],"name":"onErrorReply","nameLocation":"1262:12:173","parameters":{"id":86439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86434,"mutability":"mutable","name":"messageId","nameLocation":"1283:9:173","nodeType":"VariableDeclaration","scope":86454,"src":"1275:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86436,"mutability":"mutable","name":"payload","nameLocation":"1309:7:173","nodeType":"VariableDeclaration","scope":86454,"src":"1294:22:173","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86435,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86438,"mutability":"mutable","name":"replyCode","nameLocation":"1325:9:173","nodeType":"VariableDeclaration","scope":86454,"src":"1318:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86437,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1318:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1274:61:173"},"returnParameters":{"id":86442,"nodeType":"ParameterList","parameters":[],"src":"1400:0:173"},"scope":86455,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":86342,"name":"IDemoCallbacks","nameLocations":["221:14:173"],"nodeType":"IdentifierPath","referencedDeclaration":86468,"src":"221:14:173"},"id":86343,"nodeType":"InheritanceSpecifier","src":"221:14:173"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[86455,86468,73742],"name":"DemoCaller","nameLocation":"207:10:173","scope":86456,"usedErrors":[86364],"usedEvents":[86354,86362]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":173} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_varaEthProgram","type":"address","internalType":"contract IMirror"}],"stateMutability":"nonpayable"},{"type":"function","name":"VARA_ETH_PROGRAM","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMirror"}],"stateMutability":"view"},{"type":"function","name":"methodName","inputs":[{"name":"isPanic","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"onErrorReply","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onErrorReplyCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOnMethodNameCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOn_methodName","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ErrorReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"replyCode","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"MethodNameReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"UnauthorizedCaller","inputs":[]}],"bytecode":{"object":"0x60a034607357601f61040d38819003918201601f19168301916001600160401b03831184841017607757808492602094604052833981010312607357516001600160a01b0381168103607357608052604051610381908161008c823960805181818160700152818161019b01526103420152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"238:1305:174:-:0;;;;;;;;;;;;;-1:-1:-1;;238:1305:174;;;;-1:-1:-1;;;;;238:1305:174;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:1305:174;;;;;;614:34;;238:1305;;;;;;;;614:34;238:1305;;;;;;;;;;;;;;;;;-1:-1:-1;238:1305:174;;;;;;-1:-1:-1;238:1305:174;;;;;-1:-1:-1;238:1305:174","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"238:1305:174:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:174;;;;;;282:41;-1:-1:-1;;;;;238:1305:174;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:174;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:174;;;;661:79;;:::i;:::-;238:1305;;;;;;;;;1252:28;238:1305;;;;;;;1252:28;238:1305;;;;;;;-1:-1:-1;;238:1305:174;;;;;;;;;;;;;;;;;1017:25;;;238:1305;;;;;;1017:25;;;;;;:::i;:::-;238:1305;;;;;;;;;;988:61;;238:1305;;988:61;;238:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:61;;238:1305;;;;;;;988:16;238:1305;988:61;;;;;;238:1305;988:61;;;238:1305;;;;;;;;;988:61;;238:1305;988:61;;238:1305;988:61;;;;;;238:1305;988:61;;;:::i;:::-;;;238:1305;;;;;;;988:61;;;;;-1:-1:-1;988:61:174;;;238:1305;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:174;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1491:43;661:79;238:1305;661:79;238:1305;661:79;;;:::i;:::-;238:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;238:1305:174;;;1491:43;;;;238:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;238:1305:174;;;;;-1:-1:-1;238:1305:174;746:158;827:16;-1:-1:-1;;;;;238:1305:174;805:10;:39;801:97;;746:158::o;801:97::-;867:20;;;;;;;","linkReferences":{},"immutableReferences":{"89520":[{"start":112,"length":32},{"start":411,"length":32},{"start":834,"length":32}]}},"methodIdentifiers":{"VARA_ETH_PROGRAM()":"dab506b2","methodName(bool)":"96b3d5a9","onErrorReply(bytes32,bytes,bytes4)":"4a646c7f","onErrorReplyCalled()":"8ed2570c","replyOnMethodNameCalled()":"d24012f8","replyOn_methodName(bytes32)":"b52ab555"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"_varaEthProgram\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UnauthorizedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ErrorReplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MethodNameReplied\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VARA_ETH_PROGRAM\",\"outputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isPanic\",\"type\":\"bool\"}],\"name\":\"methodName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"onErrorReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onErrorReplyCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"replyOnMethodNameCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"replyOn_methodName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onErrorReply(bytes32,bytes,bytes4)\":{\"details\":\"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.\",\"params\":{\"messageId\":\"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.\",\"payload\":\"Payload of reply (e.g., error message in case of `UserspacePanic`).\",\"replyCode\":\"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`).\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"replyOn_methodName(bytes32)\":{\"notice\":\"forge-lint: disable-next-line(mixed-case-function)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/DemoCaller.sol\":\"DemoCaller\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54\",\"dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xcab25323c350222e48ad9dfd84325ffd36b4e34d4ae3a0a49932d8a1c95e501e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://71df44d61da238cb41cf2701c7cb15af7815f1b7cab46d3a0c0fa5ba0a15aed7\",\"dweb:/ipfs/QmT78yRqQoPHGafTzKyjUK6Dnm7XLpV4RnUQsEZ62PHWUi\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19\",\"dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd\",\"dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1\"]},\"test/DemoCaller.sol\":{\"keccak256\":\"0xa9c197c211fd8e4f8883ed62392d9439e2f23d3d1b22aaac8c3b2e0f3d50deda\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://933ca6dbb8ad27483486e5447ad957f42c89f0581809ef9bbea3ee83ca200d9e\",\"dweb:/ipfs/Qmcf2wXok7zjVYppB7DCG9jSKGdCJWo76Wum5V9uKzbuPz\"]},\"test/IDemoCallbacks.sol\":{\"keccak256\":\"0xb7bcfb91b00f3d253c6ed45dc9b12c4a8991fa72769500f674c6bea1d67286b5\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://87af68f30cf64d04bc24d793981639f2cb04f649f0ee6944bd0cbb5b198b6bfd\",\"dweb:/ipfs/QmbTrXKJ9s2SmozY3QHfFwTdwkxuB3JCNBiQBDc6gWHb6R\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IMirror","name":"_varaEthProgram","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"UnauthorizedCaller"},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":false}],"type":"event","name":"ErrorReplied","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false}],"type":"event","name":"MethodNameReplied","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"VARA_ETH_PROGRAM","outputs":[{"internalType":"contract IMirror","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"isPanic","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"methodName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"payable","type":"function","name":"onErrorReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"onErrorReplyCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"replyOnMethodNameCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"replyOn_methodName"}],"devdoc":{"kind":"dev","methods":{"onErrorReply(bytes32,bytes,bytes4)":{"details":"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.","params":{"messageId":"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.","payload":"Payload of reply (e.g., error message in case of `UserspacePanic`).","replyCode":"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`)."}}},"version":1},"userdoc":{"kind":"user","methods":{"replyOn_methodName(bytes32)":{"notice":"forge-lint: disable-next-line(mixed-case-function)"}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"test/DemoCaller.sol":"DemoCaller"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1","urls":["bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54","dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xcab25323c350222e48ad9dfd84325ffd36b4e34d4ae3a0a49932d8a1c95e501e","urls":["bzz-raw://71df44d61da238cb41cf2701c7cb15af7815f1b7cab46d3a0c0fa5ba0a15aed7","dweb:/ipfs/QmT78yRqQoPHGafTzKyjUK6Dnm7XLpV4RnUQsEZ62PHWUi"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4","urls":["bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19","dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d","urls":["bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd","dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/DemoCaller.sol":{"keccak256":"0xa9c197c211fd8e4f8883ed62392d9439e2f23d3d1b22aaac8c3b2e0f3d50deda","urls":["bzz-raw://933ca6dbb8ad27483486e5447ad957f42c89f0581809ef9bbea3ee83ca200d9e","dweb:/ipfs/Qmcf2wXok7zjVYppB7DCG9jSKGdCJWo76Wum5V9uKzbuPz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/IDemoCallbacks.sol":{"keccak256":"0xb7bcfb91b00f3d253c6ed45dc9b12c4a8991fa72769500f674c6bea1d67286b5","urls":["bzz-raw://87af68f30cf64d04bc24d793981639f2cb04f649f0ee6944bd0cbb5b198b6bfd","dweb:/ipfs/QmbTrXKJ9s2SmozY3QHfFwTdwkxuB3JCNBiQBDc6gWHb6R"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":89522,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":89524,"contract":"test/DemoCaller.sol:DemoCaller","label":"onErrorReplyCalled","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"ast":{"absolutePath":"test/DemoCaller.sol","id":89630,"exportedSymbols":{"DemoCaller":[89629],"IDemoCallbacks":[89642],"IMirror":[76363]},"nodeType":"SourceUnit","src":"114:1430:174","nodes":[{"id":89511,"nodeType":"PragmaDirective","src":"114:24:174","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":89513,"nodeType":"ImportDirective","src":"140:40:174","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":89630,"sourceUnit":76364,"symbolAliases":[{"foreign":{"id":89512,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"148:7:174","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89515,"nodeType":"ImportDirective","src":"181:55:174","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":89630,"sourceUnit":89643,"symbolAliases":[{"foreign":{"id":89514,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89642,"src":"189:14:174","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89629,"nodeType":"ContractDefinition","src":"238:1305:174","nodes":[{"id":89520,"nodeType":"VariableDeclaration","src":"282:41:174","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"307:16:174","scope":89629,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"},"typeName":{"id":89519,"nodeType":"UserDefinedTypeName","pathNode":{"id":89518,"name":"IMirror","nameLocations":["282:7:174"],"nodeType":"IdentifierPath","referencedDeclaration":76363,"src":"282:7:174"},"referencedDeclaration":76363,"src":"282:7:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"visibility":"public"},{"id":89522,"nodeType":"VariableDeclaration","src":"330:35:174","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"342:23:174","scope":89629,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89521,"name":"bool","nodeType":"ElementaryTypeName","src":"330:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":89524,"nodeType":"VariableDeclaration","src":"371:30:174","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"383:18:174","scope":89629,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89523,"name":"bool","nodeType":"ElementaryTypeName","src":"371:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":89528,"nodeType":"EventDefinition","src":"408:43:174","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"414:17:174","parameters":{"id":89527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89526,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"440:9:174","nodeType":"VariableDeclaration","scope":89528,"src":"432:17:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89525,"name":"bytes32","nodeType":"ElementaryTypeName","src":"432:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"431:19:174"}},{"id":89536,"nodeType":"EventDefinition","src":"457:71:174","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"463:12:174","parameters":{"id":89535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89530,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"484:9:174","nodeType":"VariableDeclaration","scope":89536,"src":"476:17:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"476:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":89532,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"501:7:174","nodeType":"VariableDeclaration","scope":89536,"src":"495:13:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":89531,"name":"bytes","nodeType":"ElementaryTypeName","src":"495:5:174","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":89534,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"517:9:174","nodeType":"VariableDeclaration","scope":89536,"src":"510:16:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":89533,"name":"bytes4","nodeType":"ElementaryTypeName","src":"510:6:174","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"475:52:174"}},{"id":89538,"nodeType":"ErrorDefinition","src":"534:27:174","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"540:18:174","parameters":{"id":89537,"nodeType":"ParameterList","parameters":[],"src":"558:2:174"}},{"id":89549,"nodeType":"FunctionDefinition","src":"567:88:174","nodes":[],"body":{"id":89548,"nodeType":"Block","src":"604:51:174","nodes":[],"statements":[{"expression":{"id":89546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89544,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89520,"src":"614:16:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":89545,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89541,"src":"633:15:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"src":"614:34:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":89547,"nodeType":"ExpressionStatement","src":"614:34:174"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":89542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89541,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"587:15:174","nodeType":"VariableDeclaration","scope":89549,"src":"579:23:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"},"typeName":{"id":89540,"nodeType":"UserDefinedTypeName","pathNode":{"id":89539,"name":"IMirror","nameLocations":["579:7:174"],"nodeType":"IdentifierPath","referencedDeclaration":76363,"src":"579:7:174"},"referencedDeclaration":76363,"src":"579:7:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"578:25:174"},"returnParameters":{"id":89543,"nodeType":"ParameterList","parameters":[],"src":"604:0:174"},"scope":89629,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89556,"nodeType":"ModifierDefinition","src":"661:79:174","nodes":[],"body":{"id":89555,"nodeType":"Block","src":"691:49:174","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":89551,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89572,"src":"701:19:174","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":89552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"701:21:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89553,"nodeType":"ExpressionStatement","src":"701:21:174"},{"id":89554,"nodeType":"PlaceholderStatement","src":"732:1:174"}]},"name":"onlyVaraEthProgram","nameLocation":"670:18:174","parameters":{"id":89550,"nodeType":"ParameterList","parameters":[],"src":"688:2:174"},"virtual":false,"visibility":"internal"},{"id":89572,"nodeType":"FunctionDefinition","src":"746:158:174","nodes":[],"body":{"id":89571,"nodeType":"Block","src":"791:113:174","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":89565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":89559,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"805:3:174","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":89560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"809:6:174","memberName":"sender","nodeType":"MemberAccess","src":"805:10:174","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":89563,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89520,"src":"827:16:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}],"id":89562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"819:7:174","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":89561,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:174","typeDescriptions":{}}},"id":89564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"819:25:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"805:39:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89570,"nodeType":"IfStatement","src":"801:97:174","trueBody":{"id":89569,"nodeType":"Block","src":"846:52:174","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":89566,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89538,"src":"867:18:174","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":89567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:20:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":89568,"nodeType":"RevertStatement","src":"860:27:174"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"755:19:174","parameters":{"id":89557,"nodeType":"ParameterList","parameters":[],"src":"774:2:174"},"returnParameters":{"id":89558,"nodeType":"ParameterList","parameters":[],"src":"791:0:174"},"scope":89629,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":89589,"nodeType":"FunctionDefinition","src":"910:146:174","nodes":[],"body":{"id":89588,"nodeType":"Block","src":"971:85:174","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":89583,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89574,"src":"1034:7:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":89581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1017:3:174","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":89582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1021:12:174","memberName":"encodePacked","nodeType":"MemberAccess","src":"1017:16:174","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":89584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:25:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":89585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1044:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":89579,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89520,"src":"988:16:174","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":89580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1005:11:174","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":76288,"src":"988:28:174","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":89586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:61:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":89578,"id":89587,"nodeType":"Return","src":"981:68:174"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"919:10:174","parameters":{"id":89575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89574,"mutability":"mutable","name":"isPanic","nameLocation":"935:7:174","nodeType":"VariableDeclaration","scope":89589,"src":"930:12:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89573,"name":"bool","nodeType":"ElementaryTypeName","src":"930:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"929:14:174"},"returnParameters":{"id":89578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89589,"src":"962:7:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"961:9:174"},"scope":89629,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":89606,"nodeType":"FunctionDefinition","src":"1121:166:174","nodes":[],"body":{"id":89605,"nodeType":"Block","src":"1196:91:174","nodes":[],"statements":[{"expression":{"id":89599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89597,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89522,"src":"1206:23:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":89598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1232:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1206:30:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89600,"nodeType":"ExpressionStatement","src":"1206:30:174"},{"eventCall":{"arguments":[{"id":89602,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89592,"src":"1270:9:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":89601,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89528,"src":"1252:17:174","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":89603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1252:28:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89604,"nodeType":"EmitStatement","src":"1247:33:174"}]},"baseFunctions":[89641],"documentation":{"id":89590,"nodeType":"StructuredDocumentation","src":"1062:54:174","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":89595,"kind":"modifierInvocation","modifierName":{"id":89594,"name":"onlyVaraEthProgram","nameLocations":["1177:18:174"],"nodeType":"IdentifierPath","referencedDeclaration":89556,"src":"1177:18:174"},"nodeType":"ModifierInvocation","src":"1177:18:174"}],"name":"replyOn_methodName","nameLocation":"1130:18:174","parameters":{"id":89593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89592,"mutability":"mutable","name":"messageId","nameLocation":"1157:9:174","nodeType":"VariableDeclaration","scope":89606,"src":"1149:17:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1149:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1148:19:174"},"returnParameters":{"id":89596,"nodeType":"ParameterList","parameters":[],"src":"1196:0:174"},"scope":89629,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":89628,"nodeType":"FunctionDefinition","src":"1293:248:174","nodes":[],"body":{"id":89627,"nodeType":"Block","src":"1440:101:174","nodes":[],"statements":[{"expression":{"id":89619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89617,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89524,"src":"1450:18:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":89618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1471:4:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1450:25:174","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89620,"nodeType":"ExpressionStatement","src":"1450:25:174"},{"eventCall":{"arguments":[{"id":89622,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89608,"src":"1504:9:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":89623,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89610,"src":"1515:7:174","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":89624,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89612,"src":"1524:9:174","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":89621,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89536,"src":"1491:12:174","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":89625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:43:174","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89626,"nodeType":"EmitStatement","src":"1486:48:174"}]},"baseFunctions":[75664],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":89615,"kind":"modifierInvocation","modifierName":{"id":89614,"name":"onlyVaraEthProgram","nameLocations":["1417:18:174"],"nodeType":"IdentifierPath","referencedDeclaration":89556,"src":"1417:18:174"},"nodeType":"ModifierInvocation","src":"1417:18:174"}],"name":"onErrorReply","nameLocation":"1302:12:174","parameters":{"id":89613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89608,"mutability":"mutable","name":"messageId","nameLocation":"1323:9:174","nodeType":"VariableDeclaration","scope":89628,"src":"1315:17:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":89607,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1315:7:174","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":89610,"mutability":"mutable","name":"payload","nameLocation":"1349:7:174","nodeType":"VariableDeclaration","scope":89628,"src":"1334:22:174","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":89609,"name":"bytes","nodeType":"ElementaryTypeName","src":"1334:5:174","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":89612,"mutability":"mutable","name":"replyCode","nameLocation":"1365:9:174","nodeType":"VariableDeclaration","scope":89628,"src":"1358:16:174","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":89611,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1358:6:174","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1314:61:174"},"returnParameters":{"id":89616,"nodeType":"ParameterList","parameters":[],"src":"1440:0:174"},"scope":89629,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":89516,"name":"IDemoCallbacks","nameLocations":["261:14:174"],"nodeType":"IdentifierPath","referencedDeclaration":89642,"src":"261:14:174"},"id":89517,"nodeType":"InheritanceSpecifier","src":"261:14:174"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[89629,89642,75665],"name":"DemoCaller","nameLocation":"247:10:174","scope":89630,"usedErrors":[89538],"usedEvents":[89528,89536]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":174} \ No newline at end of file diff --git a/ethexe/ethereum/abi/ERC1967Proxy.json b/ethexe/ethereum/abi/ERC1967Proxy.json index 85e614af5fd..17536691608 100644 --- a/ethexe/ethereum/abi/ERC1967Proxy.json +++ b/ethexe/ethereum/abi/ERC1967Proxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"fallback","stateMutability":"payable"},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]}],"bytecode":{"object":"0x60806040526102678038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051604c908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffd","sourceMap":"600:1117:52:-:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;;;;;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;600:1117:52;;;;;;;;;;;1748:29:53;;:34;1744:119;;811:66;;;-1:-1:-1;;;;;;811:66:53;;;;;2407:36;-1:-1:-1;;2407:36:53;600:1117:52;;2458:15:53;:11;;-1:-1:-1;4065:25:66;;4107:55;4065:25;;;;;;600:1117:52;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;600:1117:52;;;;4107:55:66;:::i;:::-;;2454:148:53;600:1117:52;;;;;;;;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;2454:148;6159:70;6199:19;;;-1:-1:-1;6199:19:53;;-1:-1:-1;6199:19:53;1744:119;1805:47;;;-1:-1:-1;1805:47:53;;600:1117:52;;-1:-1:-1;1805:47:53;600:1117:52;-1:-1:-1;600:1117:52;;;;;;;;;-1:-1:-1;;600:1117:52;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;600:1117:52;;;;;-1:-1:-1;600:1117:52;;-1:-1:-1;;;;;600:1117:52;;;;;;-1:-1:-1;;600:1117:52;;;;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;600:1117:52;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;600:1117:52;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;600:1117:52;;;;4933:24:66;600:1117:52;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffd","sourceMap":"600:1117:52:-:0;;;811:66:53;;-1:-1:-1;;;;;;;;;811:66:53;1019:819:54;-1:-1:-1;;1019:819:54;;;;;;;-1:-1:-1;1019:819:54;;;;;;-1:-1:-1;1019:819:54;;;-1:-1:-1;1019:819:54","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":"ERC1967Proxy"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e","urls":["bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049","dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol","id":45408,"exportedSymbols":{"ERC1967Proxy":[45407],"ERC1967Utils":[45701],"Proxy":[45737]},"nodeType":"SourceUnit","src":"114:1604:52","nodes":[{"id":45371,"nodeType":"PragmaDirective","src":"114:24:52","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":45373,"nodeType":"ImportDirective","src":"140:35:52","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"../Proxy.sol","nameLocation":"-1:-1:-1","scope":45408,"sourceUnit":45738,"symbolAliases":[{"foreign":{"id":45372,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45737,"src":"148:5:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45375,"nodeType":"ImportDirective","src":"176:48:52","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"./ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":45408,"sourceUnit":45702,"symbolAliases":[{"foreign":{"id":45374,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"184:12:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45407,"nodeType":"ContractDefinition","src":"600:1117:52","nodes":[{"id":45394,"nodeType":"FunctionDefinition","src":"1081:133:52","nodes":[],"body":{"id":45393,"nodeType":"Block","src":"1145:69:52","nodes":[],"statements":[{"expression":{"arguments":[{"id":45389,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45381,"src":"1185:14:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45390,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"1201:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":45386,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"1155:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":45388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1168:16:52","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":45516,"src":"1155:29:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":45391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1155:52:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45392,"nodeType":"ExpressionStatement","src":"1155:52:52"}]},"documentation":{"id":45379,"nodeType":"StructuredDocumentation","src":"637:439:52","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":45384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45381,"mutability":"mutable","name":"implementation","nameLocation":"1101:14:52","nodeType":"VariableDeclaration","scope":45394,"src":"1093:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45380,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45383,"mutability":"mutable","name":"_data","nameLocation":"1130:5:52","nodeType":"VariableDeclaration","scope":45394,"src":"1117:18:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45382,"name":"bytes","nodeType":"ElementaryTypeName","src":"1117:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1092:44:52"},"returnParameters":{"id":45385,"nodeType":"ParameterList","parameters":[],"src":"1145:0:52"},"scope":45407,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":45406,"nodeType":"FunctionDefinition","src":"1583:132:52","nodes":[],"body":{"id":45405,"nodeType":"Block","src":"1659:56:52","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45401,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"1676:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":45402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1689:17:52","memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":45453,"src":"1676:30:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":45403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1676:32:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":45400,"id":45404,"nodeType":"Return","src":"1669:39:52"}]},"baseFunctions":[45718],"documentation":{"id":45395,"nodeType":"StructuredDocumentation","src":"1220:358:52","text":" @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1592:15:52","overrides":{"id":45397,"nodeType":"OverrideSpecifier","overrides":[],"src":"1632:8:52"},"parameters":{"id":45396,"nodeType":"ParameterList","parameters":[],"src":"1607:2:52"},"returnParameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45406,"src":"1650:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1649:9:52"},"scope":45407,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":45377,"name":"Proxy","nameLocations":["625:5:52"],"nodeType":"IdentifierPath","referencedDeclaration":45737,"src":"625:5:52"},"id":45378,"nodeType":"InheritanceSpecifier","src":"625:5:52"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":45376,"nodeType":"StructuredDocumentation","src":"226:373:52","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"linearizedBaseContracts":[45407,45737],"name":"ERC1967Proxy","nameLocation":"609:12:52","scope":45408,"usedErrors":[45427,45440,47372,48774],"usedEvents":[44781]}],"license":"MIT"},"id":52} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"fallback","stateMutability":"payable"},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ERC1967ProxyUninitialized","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]}],"bytecode":{"object":"0x608060405261026c803803806100148161016e565b9283398101604082820312610156578151916001600160a01b03831690818403610156576020810151906001600160401b038211610156570182601f82011215610156578051906001600160401b03821161015a5761007c601f8301601f191660200161016e565b938285526020838301011161015657815f9260208093018387015e8401015281511561014757823b15610135577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a280511561011e5761010e91610193565b505b604051604c90816102208239f35b505034156101105763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b6330a289cf60e21b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b0381118382101761015a57604052565b905f8091602081519101845af4808061020c575b156101c75750506040513d81523d5f602083013e60203d82010160405290565b156101ec57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d156101fd576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806101a75750813b15156101a756fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffd","sourceMap":"600:2035:10:-:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;600:2035:10;;;;;;;;;;;;;-1:-1:-1;;;;;600:2035:10;;;;;;;;;;;;;;;;-1:-1:-1;;;;;600:2035:10;;;;;;;;-1:-1:-1;;600:2035:10;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;600:2035:10;;;;;;;;;;;;;;;1563:17;1527:114;;1748:29:11;;:34;1744:119;;811:66;;;-1:-1:-1;;;;;;811:66:11;;;;;2407:36;-1:-1:-1;;2407:36:11;600:2035:10;;2458:15:11;:11;;2489:53;;;:::i;:::-;;2454:148;600:2035:10;;;;;;;;;2454:148:11;6185:9;;;6181:70;2454:148;6181:70;6221:19;;;-1:-1:-1;6221:19:11;;-1:-1:-1;6221:19:11;1744:119;1805:47;;;-1:-1:-1;1805:47:11;;600:2035:10;;-1:-1:-1;1805:47:11;1527:114:10;1603:27;;;-1:-1:-1;1603:27:10;;-1:-1:-1;1603:27:10;600:2035;-1:-1:-1;600:2035:10;;;;;;-1:-1:-1;600:2035:10;;;;;-1:-1:-1;600:2035:10;;;;;;;;-1:-1:-1;;600:2035:10;;;-1:-1:-1;;;;;600:2035:10;;;;;;;;;;:::o;4691:549:25:-;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;600:2035:10;;;;5045:24:25;600:2035:10;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;5189:169;;;-1:-1:-1;5189:169:32;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffd","sourceMap":"600:2035:10:-:0;;;811:66:11;;-1:-1:-1;;;;;;;;;811:66:11;1019:846:12;-1:-1:-1;;1019:846:12;;;;;;;-1:-1:-1;1019:846:12;;;;;;-1:-1:-1;1019:846:12;;;-1:-1:-1;1019:846:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967ProxyUninitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC1967ProxyUninitialized()\":[{\"details\":\"The proxy is left uninitialized.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. Provided `_data` is passed in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. By default construction will fail if `_data` is empty. This behavior can be overridden using a custom {_unsafeAllowUninitialized} that returns true. In that case, empty `_data` is ignored and no delegate call to the implementation is performed during construction. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0ba33f46520b83144086db1c93072c12228edc7cc70a9edd09b530f5a40ce440\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e924fb7d3a76f56a468886039b1288335a3cd4284a325360cba229eda1e5568\",\"dweb:/ipfs/Qmcv6vSGaqgGYoSSGCExEhmFL9iwt6oWQuMDb9vJe9vQFC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/Proxy.sol\":{\"keccak256\":\"0x80935e4fae2c414f4e7789e13a820d06901182a5733ab006f8d68b5b09db993f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://752d991d6ca1087587b48103bc623f74888054f58581ff29166d90889c4765c5\",\"dweb:/ipfs/QmRBsa6K2ChKxVWYY54YiyYhDBPbmY5HyKCtij5LoWh56o\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ERC1967ProxyUninitialized"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. Provided `_data` is passed in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. By default construction will fail if `_data` is empty. This behavior can be overridden using a custom {_unsafeAllowUninitialized} that returns true. In that case, empty `_data` is ignored and no delegate call to the implementation is performed during construction. Requirements: - If `data` is empty, `msg.value` must be zero."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Proxy.sol":"ERC1967Proxy"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0x0ba33f46520b83144086db1c93072c12228edc7cc70a9edd09b530f5a40ce440","urls":["bzz-raw://9e924fb7d3a76f56a468886039b1288335a3cd4284a325360cba229eda1e5568","dweb:/ipfs/Qmcv6vSGaqgGYoSSGCExEhmFL9iwt6oWQuMDb9vJe9vQFC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/Proxy.sol":{"keccak256":"0x80935e4fae2c414f4e7789e13a820d06901182a5733ab006f8d68b5b09db993f","urls":["bzz-raw://752d991d6ca1087587b48103bc623f74888054f58581ff29166d90889c4765c5","dweb:/ipfs/QmRBsa6K2ChKxVWYY54YiyYhDBPbmY5HyKCtij5LoWh56o"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Proxy.sol","id":976,"exportedSymbols":{"ERC1967Proxy":[975],"ERC1967Utils":[1269],"Proxy":[1305]},"nodeType":"SourceUnit","src":"114:2522:10","nodes":[{"id":914,"nodeType":"PragmaDirective","src":"114:24:10","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":916,"nodeType":"ImportDirective","src":"140:35:10","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/Proxy.sol","file":"../Proxy.sol","nameLocation":"-1:-1:-1","scope":976,"sourceUnit":1306,"symbolAliases":[{"foreign":{"id":915,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"148:5:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":918,"nodeType":"ImportDirective","src":"176:48:10","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol","file":"./ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":976,"sourceUnit":1270,"symbolAliases":[{"foreign":{"id":917,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"184:12:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":975,"nodeType":"ContractDefinition","src":"600:2035:10","nodes":[{"id":924,"nodeType":"ErrorDefinition","src":"698:34:10","nodes":[],"documentation":{"id":922,"nodeType":"StructuredDocumentation","src":"637:56:10","text":" @dev The proxy is left uninitialized."},"errorSelector":"c28a273c","name":"ERC1967ProxyUninitialized","nameLocation":"704:25:10","parameters":{"id":923,"nodeType":"ParameterList","parameters":[],"src":"729:2:10"}},{"id":953,"nodeType":"FunctionDefinition","src":"1453:256:10","nodes":[],"body":{"id":952,"nodeType":"Block","src":"1517:192:10","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1531:28:10","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":932,"name":"_unsafeAllowUninitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"1532:25:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bool_$","typeString":"function () pure returns (bool)"}},"id":933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1532:27:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":935,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"1563:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1569:6:10","memberName":"length","nodeType":"MemberAccess","src":"1563:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1579:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1563:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1531:49:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":944,"nodeType":"IfStatement","src":"1527:114:10","trueBody":{"id":943,"nodeType":"Block","src":"1582:59:10","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":940,"name":"ERC1967ProxyUninitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"1603:25:10","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:27:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":942,"nodeType":"RevertStatement","src":"1596:34:10"}]}},{"expression":{"arguments":[{"id":948,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"1680:14:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":949,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"1696:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":945,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"1650:12:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$1269_$","typeString":"type(library ERC1967Utils)"}},"id":947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1663:16:10","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":1084,"src":"1650:29:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:52:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":951,"nodeType":"ExpressionStatement","src":"1650:52:10"}]},"documentation":{"id":925,"nodeType":"StructuredDocumentation","src":"738:710:10","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n Provided `_data` is passed in a delegate call to `implementation`. This will typically be an encoded function\n call, and allows initializing the storage of the proxy like a Solidity constructor. By default construction\n will fail if `_data` is empty. This behavior can be overridden using a custom {_unsafeAllowUninitialized} that\n returns true. In that case, empty `_data` is ignored and no delegate call to the implementation is performed\n during construction.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":927,"mutability":"mutable","name":"implementation","nameLocation":"1473:14:10","nodeType":"VariableDeclaration","scope":953,"src":"1465:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":926,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":929,"mutability":"mutable","name":"_data","nameLocation":"1502:5:10","nodeType":"VariableDeclaration","scope":953,"src":"1489:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":928,"name":"bytes","nodeType":"ElementaryTypeName","src":"1489:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1464:44:10"},"returnParameters":{"id":931,"nodeType":"ParameterList","parameters":[],"src":"1517:0:10"},"scope":975,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":965,"nodeType":"FunctionDefinition","src":"2078:132:10","nodes":[],"body":{"id":964,"nodeType":"Block","src":"2154:56:10","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":960,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"2171:12:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$1269_$","typeString":"type(library ERC1967Utils)"}},"id":961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2184:17:10","memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":1021,"src":"2171:30:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2171:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":959,"id":963,"nodeType":"Return","src":"2164:39:10"}]},"baseFunctions":[1286],"documentation":{"id":954,"nodeType":"StructuredDocumentation","src":"1715:358:10","text":" @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2087:15:10","overrides":{"id":956,"nodeType":"OverrideSpecifier","overrides":[],"src":"2127:8:10"},"parameters":{"id":955,"nodeType":"ParameterList","parameters":[],"src":"2102:2:10"},"returnParameters":{"id":959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":965,"src":"2145:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":957,"name":"address","nodeType":"ElementaryTypeName","src":"2145:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2144:9:10"},"scope":975,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":974,"nodeType":"FunctionDefinition","src":"2530:103:10","nodes":[],"body":{"id":973,"nodeType":"Block","src":"2604:29:10","nodes":[],"statements":[{"expression":{"hexValue":"66616c7365","id":971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2621:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":970,"id":972,"nodeType":"Return","src":"2614:12:10"}]},"documentation":{"id":966,"nodeType":"StructuredDocumentation","src":"2216:309:10","text":" @dev Returns whether the proxy can be left uninitialized.\n NOTE: Override this function to allow the proxy to be left uninitialized.\n Consider uninitialized proxies might be susceptible to man-in-the-middle threats\n where the proxy is replaced with a malicious one."},"implemented":true,"kind":"function","modifiers":[],"name":"_unsafeAllowUninitialized","nameLocation":"2539:25:10","parameters":{"id":967,"nodeType":"ParameterList","parameters":[],"src":"2564:2:10"},"returnParameters":{"id":970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":974,"src":"2598:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":968,"name":"bool","nodeType":"ElementaryTypeName","src":"2598:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2597:6:10"},"scope":975,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":920,"name":"Proxy","nameLocations":["625:5:10"],"nodeType":"IdentifierPath","referencedDeclaration":1305,"src":"625:5:10"},"id":921,"nodeType":"InheritanceSpecifier","src":"625:5:10"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":919,"nodeType":"StructuredDocumentation","src":"226:373:10","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"linearizedBaseContracts":[975,1305],"name":"ERC1967Proxy","nameLocation":"609:12:10","scope":976,"usedErrors":[924,995,1008,3201,6168],"usedEvents":[324]}],"license":"MIT"},"id":10} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Gear.json b/ethexe/ethereum/abi/Gear.json index 22391659fde..165642676ae 100644 --- a/ethexe/ethereum/abi/Gear.json +++ b/ethexe/ethereum/abi/Gear.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"COMPUTATION_THRESHOLD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"WVARA_PER_SECOND","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760a19081601c823930815050f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:32858:169:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:32858:169:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;2071:1;1515:32858;;;;;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;1855:13;1515:32858;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;2383:18;1515:32858;;;;;;-1:-1:-1;;1515:32858:169;;;;;2203:1;1515:32858;;;","linkReferences":{}},"methodIdentifiers":{"COMPUTATION_THRESHOLD()":"7841919a","VALIDATORS_THRESHOLD_DENOMINATOR()":"0279472c","VALIDATORS_THRESHOLD_NUMERATOR()":"db3fe3f1","WVARA_PER_SECOND()":"2c184e1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"COMPUTATION_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WVARA_PER_SECOND\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Library for core protocol utility functions for hashing, validation, and consensus-related logic. It provides: - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions) - Validator set management with era-based switching and threshold configuration - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures with transient storage to prevent double counting of signatures - Era and timeline utilities for selecting correct validator sets based on timestamp The library acts as a shared foundation for consensus, validation, and commitment verification across all protocol components.\",\"errors\":{\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"COMPUTATION_THRESHOLD\":{\"details\":\"The threshold for computation cost in gear gas. 2.5 * (10 ** 9) of gear gas.\"},\"VALIDATORS_THRESHOLD_DENOMINATOR\":{\"details\":\"The validators threshold denominator.\"},\"VALIDATORS_THRESHOLD_NUMERATOR\":{\"details\":\"2/3 of validators must sign the commitment for it to be valid.The validators threshold numerator.\"},\"WVARA_PER_SECOND\":{\"details\":\"The amount of WVara tokens to be paid per compute second. 10 WVARA tokens per compute second.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Gear.sol\":\"Gear\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"stateMutability":"view","type":"function","name":"COMPUTATION_THRESHOLD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WVARA_PER_SECOND","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libraries/Gear.sol":"Gear"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":84100,"exportedSymbols":{"ECDSA":[51038],"FROST":[40965],"Gear":[84099],"Hashes":[41483],"IRouter":[74990],"MessageHashUtils":[52237],"SafeCast":[55635],"SlotDerivation":[48965],"Time":[60343],"TransientSlot":[50690]},"nodeType":"SourceUnit","src":"74:34300:169","nodes":[{"id":82835,"nodeType":"PragmaDirective","src":"74:24:169","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82837,"nodeType":"ImportDirective","src":"100:80:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":82836,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"108:14:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82839,"nodeType":"ImportDirective","src":"181:78:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":50691,"symbolAliases":[{"foreign":{"id":82838,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"189:13:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82841,"nodeType":"ImportDirective","src":"260:75:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":82840,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"268:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82843,"nodeType":"ImportDirective","src":"336:97:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":52238,"symbolAliases":[{"foreign":{"id":82842,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52237,"src":"344:16:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82845,"nodeType":"ImportDirective","src":"434:73:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":55636,"symbolAliases":[{"foreign":{"id":82844,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"442:8:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82847,"nodeType":"ImportDirective","src":"508:66:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":82846,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"516:4:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82849,"nodeType":"ImportDirective","src":"575:52:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":82848,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"583:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82851,"nodeType":"ImportDirective","src":"628:73:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":82850,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"636:6:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82853,"nodeType":"ImportDirective","src":"702:40:169","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":82852,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"710:7:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84099,"nodeType":"ContractDefinition","src":"1515:32858:169","nodes":[{"id":82857,"nodeType":"UsingForDirective","src":"1534:24:169","nodes":[],"global":false,"libraryName":{"id":82855,"name":"ECDSA","nameLocations":["1540:5:169"],"nodeType":"IdentifierPath","referencedDeclaration":51038,"src":"1540:5:169"},"typeName":{"id":82856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1550:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":82860,"nodeType":"UsingForDirective","src":"1563:35:169","nodes":[],"global":false,"libraryName":{"id":82858,"name":"MessageHashUtils","nameLocations":["1569:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":52237,"src":"1569:16:169"},"typeName":{"id":82859,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":82862,"nodeType":"UsingForDirective","src":"1604:26:169","nodes":[],"global":false,"libraryName":{"id":82861,"name":"TransientSlot","nameLocations":["1610:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":50690,"src":"1610:13:169"}},{"id":82864,"nodeType":"UsingForDirective","src":"1635:27:169","nodes":[],"global":false,"libraryName":{"id":82863,"name":"SlotDerivation","nameLocations":["1641:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":48965,"src":"1641:14:169"}},{"id":82868,"nodeType":"VariableDeclaration","src":"1808:60:169","nodes":[],"constant":true,"documentation":{"id":82865,"nodeType":"StructuredDocumentation","src":"1691:112:169","text":" @dev The threshold for computation cost in gear gas.\n 2.5 * (10 ** 9) of gear gas."},"functionSelector":"7841919a","mutability":"constant","name":"COMPUTATION_THRESHOLD","nameLocation":"1831:21:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":82866,"name":"uint64","nodeType":"ElementaryTypeName","src":"1808:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":82867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1855:13:169","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":82872,"nodeType":"VariableDeclaration","src":"2014:58:169","nodes":[],"constant":true,"documentation":{"id":82869,"nodeType":"StructuredDocumentation","src":"1875:134:169","text":" @dev 2/3 of validators must sign the commitment for it to be valid.\n @dev The validators threshold numerator."},"functionSelector":"db3fe3f1","mutability":"constant","name":"VALIDATORS_THRESHOLD_NUMERATOR","nameLocation":"2038:30:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82870,"name":"uint128","nodeType":"ElementaryTypeName","src":"2014:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":82871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2071:1:169","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":82876,"nodeType":"VariableDeclaration","src":"2144:60:169","nodes":[],"constant":true,"documentation":{"id":82873,"nodeType":"StructuredDocumentation","src":"2078:61:169","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2168:32:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82874,"name":"uint128","nodeType":"ElementaryTypeName","src":"2144:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":82875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2203:1:169","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":82880,"nodeType":"VariableDeclaration","src":"2340:61:169","nodes":[],"constant":true,"documentation":{"id":82877,"nodeType":"StructuredDocumentation","src":"2211:124:169","text":" @dev The amount of WVara tokens to be paid per compute second.\n 10 WVARA tokens per compute second."},"functionSelector":"2c184e1c","mutability":"constant","name":"WVARA_PER_SECOND","nameLocation":"2364:16:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82878,"name":"uint128","nodeType":"ElementaryTypeName","src":"2340:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":82879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:18:169","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":82883,"nodeType":"ErrorDefinition","src":"2528:32:169","nodes":[],"documentation":{"id":82881,"nodeType":"StructuredDocumentation","src":"2428:95:169","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2534:23:169","parameters":{"id":82882,"nodeType":"ParameterList","parameters":[],"src":"2557:2:169"}},{"id":82886,"nodeType":"ErrorDefinition","src":"2652:38:169","nodes":[],"documentation":{"id":82884,"nodeType":"StructuredDocumentation","src":"2566:81:169","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"2658:29:169","parameters":{"id":82885,"nodeType":"ParameterList","parameters":[],"src":"2687:2:169"}},{"id":82889,"nodeType":"ErrorDefinition","src":"2768:26:169","nodes":[],"documentation":{"id":82887,"nodeType":"StructuredDocumentation","src":"2696:67:169","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"2774:17:169","parameters":{"id":82888,"nodeType":"ParameterList","parameters":[],"src":"2791:2:169"}},{"id":82892,"nodeType":"ErrorDefinition","src":"2883:35:169","nodes":[],"documentation":{"id":82890,"nodeType":"StructuredDocumentation","src":"2800:78:169","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"2889:26:169","parameters":{"id":82891,"nodeType":"ParameterList","parameters":[],"src":"2915:2:169"}},{"id":82895,"nodeType":"ErrorDefinition","src":"3037:36:169","nodes":[],"documentation":{"id":82893,"nodeType":"StructuredDocumentation","src":"2924:108:169","text":" @dev Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes."},"errorSelector":"2ce466bf","name":"InvalidFrostSignatureLength","nameLocation":"3043:27:169","parameters":{"id":82894,"nodeType":"ParameterList","parameters":[],"src":"3070:2:169"}},{"id":82898,"nodeType":"ErrorDefinition","src":"3251:36:169","nodes":[],"documentation":{"id":82896,"nodeType":"StructuredDocumentation","src":"3079:167:169","text":" @dev Thrown when the timestamp of an era is equal to the timestamp of the previous era.\n Should never happen, because the implementation."},"errorSelector":"f26224af","name":"ErasTimestampMustNotBeEqual","nameLocation":"3257:27:169","parameters":{"id":82897,"nodeType":"ParameterList","parameters":[],"src":"3284:2:169"}},{"id":82901,"nodeType":"ErrorDefinition","src":"3441:39:169","nodes":[],"documentation":{"id":82899,"nodeType":"StructuredDocumentation","src":"3293:143:169","text":" @dev Thrown when no validators are found for a given timestamp.\n Should never happen, because the implementation."},"errorSelector":"98715d2a","name":"ValidatorsNotFoundForTimestamp","nameLocation":"3447:30:169","parameters":{"id":82900,"nodeType":"ParameterList","parameters":[],"src":"3477:2:169"}},{"id":82907,"nodeType":"StructDefinition","src":"3768:72:169","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":82902,"nodeType":"StructuredDocumentation","src":"3507:256:169","text":" @dev Represents an aggregated public key.\n When present (`hasAggregatedPublicKey` is `true`), it is checked with `FROST.isValidPublicKey(x, y)` in `Router._resetValidators(...)`,\n so we can be sure that it is valid."},"members":[{"constant":false,"id":82904,"mutability":"mutable","name":"x","nameLocation":"3813:1:169","nodeType":"VariableDeclaration","scope":82907,"src":"3805:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82903,"name":"uint256","nodeType":"ElementaryTypeName","src":"3805:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82906,"mutability":"mutable","name":"y","nameLocation":"3832:1:169","nodeType":"VariableDeclaration","scope":82907,"src":"3824:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82905,"name":"uint256","nodeType":"ElementaryTypeName","src":"3824:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3775:19:169","scope":84099,"visibility":"public"},{"id":82928,"nodeType":"StructDefinition","src":"3909:1200:169","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":82908,"nodeType":"StructuredDocumentation","src":"3846:58:169","text":" @dev Represents validators information."},"members":[{"constant":false,"id":82912,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4299:19:169","nodeType":"VariableDeclaration","scope":82928,"src":"4279:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82911,"nodeType":"UserDefinedTypeName","pathNode":{"id":82910,"name":"AggregatedPublicKey","nameLocations":["4279:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"4279:19:169"},"referencedDeclaration":82907,"src":"4279:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82915,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4626:40:169","nodeType":"VariableDeclaration","scope":82928,"src":"4618:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82914,"name":"address","nodeType":"ElementaryTypeName","src":"4618:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82920,"mutability":"mutable","name":"map","nameLocation":"4884:3:169","nodeType":"VariableDeclaration","scope":82928,"src":"4859:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":82919,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":82917,"name":"address","nodeType":"ElementaryTypeName","src":"4867:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4859:24:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":82918,"name":"bool","nodeType":"ElementaryTypeName","src":"4878:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":82924,"mutability":"mutable","name":"list","nameLocation":"4976:4:169","nodeType":"VariableDeclaration","scope":82928,"src":"4966:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82922,"name":"address","nodeType":"ElementaryTypeName","src":"4966:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82923,"nodeType":"ArrayTypeName","src":"4966:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82927,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5086:16:169","nodeType":"VariableDeclaration","scope":82928,"src":"5078:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82926,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3916:10:169","scope":84099,"visibility":"public"},{"id":82940,"nodeType":"StructDefinition","src":"5186:194:169","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":82929,"nodeType":"StructuredDocumentation","src":"5115:66:169","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":82932,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5238:19:169","nodeType":"VariableDeclaration","scope":82940,"src":"5218:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82931,"nodeType":"UserDefinedTypeName","pathNode":{"id":82930,"name":"AggregatedPublicKey","nameLocations":["5218:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"5218:19:169"},"referencedDeclaration":82907,"src":"5218:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82934,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5275:40:169","nodeType":"VariableDeclaration","scope":82940,"src":"5267:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82933,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82937,"mutability":"mutable","name":"list","nameLocation":"5335:4:169","nodeType":"VariableDeclaration","scope":82940,"src":"5325:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82935,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82936,"nodeType":"ArrayTypeName","src":"5325:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82939,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5357:16:169","nodeType":"VariableDeclaration","scope":82940,"src":"5349:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82938,"name":"uint256","nodeType":"ElementaryTypeName","src":"5349:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5193:14:169","scope":84099,"visibility":"public"},{"id":82951,"nodeType":"StructDefinition","src":"5451:353:169","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":82941,"nodeType":"StructuredDocumentation","src":"5386:60:169","text":" @dev Represents address book information."},"members":[{"constant":false,"id":82944,"mutability":"mutable","name":"mirror","nameLocation":"5566:6:169","nodeType":"VariableDeclaration","scope":82951,"src":"5558:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82943,"name":"address","nodeType":"ElementaryTypeName","src":"5558:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82947,"mutability":"mutable","name":"wrappedVara","nameLocation":"5673:11:169","nodeType":"VariableDeclaration","scope":82951,"src":"5665:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82946,"name":"address","nodeType":"ElementaryTypeName","src":"5665:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82950,"mutability":"mutable","name":"middleware","nameLocation":"5787:10:169","nodeType":"VariableDeclaration","scope":82951,"src":"5779:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82949,"name":"address","nodeType":"ElementaryTypeName","src":"5779:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5458:11:169","scope":84099,"visibility":"public"},{"id":82959,"nodeType":"StructDefinition","src":"5866:248:169","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":82952,"nodeType":"StructuredDocumentation","src":"5810:51:169","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":82955,"mutability":"mutable","name":"id","nameLocation":"6010:2:169","nodeType":"VariableDeclaration","scope":82959,"src":"6002:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6002:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82958,"mutability":"mutable","name":"valid","nameLocation":"6102:5:169","nodeType":"VariableDeclaration","scope":82959,"src":"6097:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82957,"name":"bool","nodeType":"ElementaryTypeName","src":"6097:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5873:14:169","scope":84099,"visibility":"public"},{"id":82972,"nodeType":"StructDefinition","src":"6177:541:169","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":82960,"nodeType":"StructuredDocumentation","src":"6120:52:169","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":82965,"mutability":"mutable","name":"transitions","nameLocation":"6319:11:169","nodeType":"VariableDeclaration","scope":82972,"src":"6301:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82963,"nodeType":"UserDefinedTypeName","pathNode":{"id":82962,"name":"StateTransition","nameLocations":["6301:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"6301:15:169"},"referencedDeclaration":83167,"src":"6301:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82964,"nodeType":"ArrayTypeName","src":"6301:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":82968,"mutability":"mutable","name":"head","nameLocation":"6436:4:169","nodeType":"VariableDeclaration","scope":82972,"src":"6428:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6428:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82971,"mutability":"mutable","name":"lastAdvancedEthBlock","nameLocation":"6691:20:169","nodeType":"VariableDeclaration","scope":82972,"src":"6683:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6683:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6184:15:169","scope":84099,"visibility":"public"},{"id":82986,"nodeType":"StructDefinition","src":"6786:226:169","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":82973,"nodeType":"StructuredDocumentation","src":"6724:57:169","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":82975,"mutability":"mutable","name":"hasAggregatedPublicKey","nameLocation":"6829:22:169","nodeType":"VariableDeclaration","scope":82986,"src":"6824:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82974,"name":"bool","nodeType":"ElementaryTypeName","src":"6824:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":82978,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6881:19:169","nodeType":"VariableDeclaration","scope":82986,"src":"6861:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82977,"nodeType":"UserDefinedTypeName","pathNode":{"id":82976,"name":"AggregatedPublicKey","nameLocations":["6861:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"6861:19:169"},"referencedDeclaration":82907,"src":"6861:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82980,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6916:33:169","nodeType":"VariableDeclaration","scope":82986,"src":"6910:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":82979,"name":"bytes","nodeType":"ElementaryTypeName","src":"6910:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82983,"mutability":"mutable","name":"validators","nameLocation":"6969:10:169","nodeType":"VariableDeclaration","scope":82986,"src":"6959:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82981,"name":"address","nodeType":"ElementaryTypeName","src":"6959:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82982,"nodeType":"ArrayTypeName","src":"6959:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82985,"mutability":"mutable","name":"eraIndex","nameLocation":"6997:8:169","nodeType":"VariableDeclaration","scope":82986,"src":"6989:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82984,"name":"uint256","nodeType":"ElementaryTypeName","src":"6989:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6793:20:169","scope":84099,"visibility":"public"},{"id":83020,"nodeType":"StructDefinition","src":"7075:1206:169","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":82987,"nodeType":"StructuredDocumentation","src":"7018:52:169","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":82990,"mutability":"mutable","name":"blockHash","nameLocation":"7212:9:169","nodeType":"VariableDeclaration","scope":83020,"src":"7204:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7204:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82993,"mutability":"mutable","name":"blockTimestamp","nameLocation":"7340:14:169","nodeType":"VariableDeclaration","scope":83020,"src":"7333:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82992,"name":"uint48","nodeType":"ElementaryTypeName","src":"7333:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":82996,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7453:26:169","nodeType":"VariableDeclaration","scope":83020,"src":"7445:34:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7445:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82999,"mutability":"mutable","name":"expiry","nameLocation":"7715:6:169","nodeType":"VariableDeclaration","scope":83020,"src":"7709:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82998,"name":"uint8","nodeType":"ElementaryTypeName","src":"7709:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83004,"mutability":"mutable","name":"chainCommitment","nameLocation":"7841:15:169","nodeType":"VariableDeclaration","scope":83020,"src":"7823:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":83002,"nodeType":"UserDefinedTypeName","pathNode":{"id":83001,"name":"ChainCommitment","nameLocations":["7823:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":82972,"src":"7823:15:169"},"referencedDeclaration":82972,"src":"7823:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":83003,"nodeType":"ArrayTypeName","src":"7823:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83009,"mutability":"mutable","name":"codeCommitments","nameLocation":"7968:15:169","nodeType":"VariableDeclaration","scope":83020,"src":"7951:32:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":83007,"nodeType":"UserDefinedTypeName","pathNode":{"id":83006,"name":"CodeCommitment","nameLocations":["7951:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82959,"src":"7951:14:169"},"referencedDeclaration":82959,"src":"7951:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":83008,"nodeType":"ArrayTypeName","src":"7951:16:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83014,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"8107:17:169","nodeType":"VariableDeclaration","scope":83020,"src":"8087:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":83012,"nodeType":"UserDefinedTypeName","pathNode":{"id":83011,"name":"RewardsCommitment","nameLocations":["8087:17:169"],"nodeType":"IdentifierPath","referencedDeclaration":83030,"src":"8087:17:169"},"referencedDeclaration":83030,"src":"8087:17:169","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":83013,"nodeType":"ArrayTypeName","src":"8087:19:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83019,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"8254:20:169","nodeType":"VariableDeclaration","scope":83020,"src":"8231:43:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":83017,"nodeType":"UserDefinedTypeName","pathNode":{"id":83016,"name":"ValidatorsCommitment","nameLocations":["8231:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"8231:20:169"},"referencedDeclaration":82986,"src":"8231:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":83018,"nodeType":"ArrayTypeName","src":"8231:22:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"7082:15:169","scope":84099,"visibility":"public"},{"id":83030,"nodeType":"StructDefinition","src":"8346:144:169","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":83021,"nodeType":"StructuredDocumentation","src":"8287:54:169","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":83024,"mutability":"mutable","name":"operators","nameLocation":"8407:9:169","nodeType":"VariableDeclaration","scope":83030,"src":"8381:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":83023,"nodeType":"UserDefinedTypeName","pathNode":{"id":83022,"name":"OperatorRewardsCommitment","nameLocations":["8381:25:169"],"nodeType":"IdentifierPath","referencedDeclaration":83036,"src":"8381:25:169"},"referencedDeclaration":83036,"src":"8381:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83027,"mutability":"mutable","name":"stakers","nameLocation":"8450:7:169","nodeType":"VariableDeclaration","scope":83030,"src":"8426:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":83026,"nodeType":"UserDefinedTypeName","pathNode":{"id":83025,"name":"StakerRewardsCommitment","nameLocations":["8426:23:169"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"8426:23:169"},"referencedDeclaration":83046,"src":"8426:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83029,"mutability":"mutable","name":"timestamp","nameLocation":"8474:9:169","nodeType":"VariableDeclaration","scope":83030,"src":"8467:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83028,"name":"uint48","nodeType":"ElementaryTypeName","src":"8467:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"8353:17:169","scope":84099,"visibility":"public"},{"id":83036,"nodeType":"StructDefinition","src":"8564:86:169","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":83031,"nodeType":"StructuredDocumentation","src":"8496:63:169","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":83033,"mutability":"mutable","name":"amount","nameLocation":"8615:6:169","nodeType":"VariableDeclaration","scope":83036,"src":"8607:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83032,"name":"uint256","nodeType":"ElementaryTypeName","src":"8607:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83035,"mutability":"mutable","name":"root","nameLocation":"8639:4:169","nodeType":"VariableDeclaration","scope":83036,"src":"8631:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8631:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8571:25:169","scope":84099,"visibility":"public"},{"id":83046,"nodeType":"StructDefinition","src":"8722:128:169","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":83037,"nodeType":"StructuredDocumentation","src":"8656:61:169","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":83041,"mutability":"mutable","name":"distribution","nameLocation":"8779:12:169","nodeType":"VariableDeclaration","scope":83046,"src":"8763:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":83039,"nodeType":"UserDefinedTypeName","pathNode":{"id":83038,"name":"StakerRewards","nameLocations":["8763:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83052,"src":"8763:13:169"},"referencedDeclaration":83052,"src":"8763:13:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":83040,"nodeType":"ArrayTypeName","src":"8763:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":83043,"mutability":"mutable","name":"totalAmount","nameLocation":"8809:11:169","nodeType":"VariableDeclaration","scope":83046,"src":"8801:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83042,"name":"uint256","nodeType":"ElementaryTypeName","src":"8801:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83045,"mutability":"mutable","name":"token","nameLocation":"8838:5:169","nodeType":"VariableDeclaration","scope":83046,"src":"8830:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83044,"name":"address","nodeType":"ElementaryTypeName","src":"8830:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8729:23:169","scope":84099,"visibility":"public"},{"id":83052,"nodeType":"StructDefinition","src":"8911:75:169","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":83047,"nodeType":"StructuredDocumentation","src":"8856:50:169","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":83049,"mutability":"mutable","name":"vault","nameLocation":"8950:5:169","nodeType":"VariableDeclaration","scope":83052,"src":"8942:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83048,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83051,"mutability":"mutable","name":"amount","nameLocation":"8973:6:169","nodeType":"VariableDeclaration","scope":83052,"src":"8965:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83050,"name":"uint256","nodeType":"ElementaryTypeName","src":"8965:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8918:13:169","scope":84099,"visibility":"public"},{"id":83060,"nodeType":"EnumDefinition","src":"9061:960:169","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":83053,"nodeType":"StructuredDocumentation","src":"8992:64:169","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":83054,"nodeType":"StructuredDocumentation","src":"9086:260:169","text":" @dev The code commitment is in an unknown state (`CodeState.Unknown = 0 as uint8`).\n This is the default state for all code commitments,\n and it means that the code commitment has not been processed yet."},"id":83055,"name":"Unknown","nameLocation":"9355:7:169","nodeType":"EnumValue","src":"9355:7:169"},{"documentation":{"id":83056,"nodeType":"StructuredDocumentation","src":"9372:465:169","text":" @dev The code commitment has requested validation by user (`CodeState.ValidationRequested = 1 as uint8`).\n Users calls `IRouter(router).requestCodeValidation(bytes32 _codeId)` to request code validation and\n attaches sidecar to this transaction (the transaction is encoded in EIP-7594 format),\n then validators can validate the code commitment and set `CodeState.Validated` in case of success."},"id":83057,"name":"ValidationRequested","nameLocation":"9846:19:169","nodeType":"EnumValue","src":"9846:19:169"},{"documentation":{"id":83058,"nodeType":"StructuredDocumentation","src":"9875:122:169","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":83059,"name":"Validated","nameLocation":"10006:9:169","nodeType":"EnumValue","src":"10006:9:169"}],"name":"CodeState","nameLocation":"9066:9:169"},{"id":83066,"nodeType":"StructDefinition","src":"10101:81:169","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":83061,"nodeType":"StructuredDocumentation","src":"10027:69:169","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":83063,"mutability":"mutable","name":"hash","nameLocation":"10145:4:169","nodeType":"VariableDeclaration","scope":83066,"src":"10137:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10137:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83065,"mutability":"mutable","name":"timestamp","nameLocation":"10166:9:169","nodeType":"VariableDeclaration","scope":83066,"src":"10159:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83064,"name":"uint48","nodeType":"ElementaryTypeName","src":"10159:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"10108:18:169","scope":84099,"visibility":"public"},{"id":83072,"nodeType":"StructDefinition","src":"10249:92:169","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":83067,"nodeType":"StructuredDocumentation","src":"10188:56:169","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":83069,"mutability":"mutable","name":"threshold","nameLocation":"10293:9:169","nodeType":"VariableDeclaration","scope":83072,"src":"10286:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83068,"name":"uint64","nodeType":"ElementaryTypeName","src":"10286:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":83071,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"10320:14:169","nodeType":"VariableDeclaration","scope":83072,"src":"10312:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83070,"name":"uint128","nodeType":"ElementaryTypeName","src":"10312:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"10256:19:169","scope":84099,"visibility":"public"},{"id":83080,"nodeType":"StructDefinition","src":"10419:102:169","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":83073,"nodeType":"StructuredDocumentation","src":"10347:67:169","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":83075,"mutability":"mutable","name":"hash","nameLocation":"10461:4:169","nodeType":"VariableDeclaration","scope":83080,"src":"10453:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83074,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10453:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83077,"mutability":"mutable","name":"number","nameLocation":"10482:6:169","nodeType":"VariableDeclaration","scope":83080,"src":"10475:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":83076,"name":"uint32","nodeType":"ElementaryTypeName","src":"10475:6:169","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":83079,"mutability":"mutable","name":"timestamp","nameLocation":"10505:9:169","nodeType":"VariableDeclaration","scope":83080,"src":"10498:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83078,"name":"uint48","nodeType":"ElementaryTypeName","src":"10498:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10426:16:169","scope":84099,"visibility":"public"},{"id":83101,"nodeType":"StructDefinition","src":"10575:1092:169","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":83081,"nodeType":"StructuredDocumentation","src":"10527:43:169","text":" @dev Represents message."},"members":[{"constant":false,"id":83084,"mutability":"mutable","name":"id","nameLocation":"10700:2:169","nodeType":"VariableDeclaration","scope":83101,"src":"10692:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10692:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83087,"mutability":"mutable","name":"destination","nameLocation":"10896:11:169","nodeType":"VariableDeclaration","scope":83101,"src":"10888:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83086,"name":"address","nodeType":"ElementaryTypeName","src":"10888:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83090,"mutability":"mutable","name":"payload","nameLocation":"10991:7:169","nodeType":"VariableDeclaration","scope":83101,"src":"10985:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83089,"name":"bytes","nodeType":"ElementaryTypeName","src":"10985:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83093,"mutability":"mutable","name":"value","nameLocation":"11095:5:169","nodeType":"VariableDeclaration","scope":83101,"src":"11087:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83092,"name":"uint128","nodeType":"ElementaryTypeName","src":"11087:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83097,"mutability":"mutable","name":"replyDetails","nameLocation":"11343:12:169","nodeType":"VariableDeclaration","scope":83101,"src":"11330:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":83096,"nodeType":"UserDefinedTypeName","pathNode":{"id":83095,"name":"ReplyDetails","nameLocations":["11330:12:169"],"nodeType":"IdentifierPath","referencedDeclaration":83137,"src":"11330:12:169"},"referencedDeclaration":83137,"src":"11330:12:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":83100,"mutability":"mutable","name":"call","nameLocation":"11656:4:169","nodeType":"VariableDeclaration","scope":83101,"src":"11651:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83099,"name":"bool","nodeType":"ElementaryTypeName","src":"11651:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10582:7:169","scope":84099,"visibility":"public"},{"id":83129,"nodeType":"StructDefinition","src":"11731:1298:169","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":83102,"nodeType":"StructuredDocumentation","src":"11673:53:169","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":83108,"mutability":"mutable","name":"codes","nameLocation":"12005:5:169","nodeType":"VariableDeclaration","scope":83129,"src":"11975:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":83107,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11983:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"11975:29:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83106,"nodeType":"UserDefinedTypeName","pathNode":{"id":83105,"name":"CodeState","nameLocations":["11994:9:169"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"11994:9:169"},"referencedDeclaration":83060,"src":"11994:9:169","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":83113,"mutability":"mutable","name":"programs","nameLocation":"12223:8:169","nodeType":"VariableDeclaration","scope":83129,"src":"12195:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":83112,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83110,"name":"address","nodeType":"ElementaryTypeName","src":"12203:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"12195:27:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12214:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":83116,"mutability":"mutable","name":"programsCount","nameLocation":"12340:13:169","nodeType":"VariableDeclaration","scope":83129,"src":"12332:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83115,"name":"uint256","nodeType":"ElementaryTypeName","src":"12332:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83119,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12468:19:169","nodeType":"VariableDeclaration","scope":83129,"src":"12460:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83118,"name":"uint256","nodeType":"ElementaryTypeName","src":"12460:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83122,"mutability":"mutable","name":"maxValidators","nameLocation":"12586:13:169","nodeType":"VariableDeclaration","scope":83129,"src":"12579:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":83121,"name":"uint16","nodeType":"ElementaryTypeName","src":"12579:6:169","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":83125,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12777:28:169","nodeType":"VariableDeclaration","scope":83129,"src":"12769:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83124,"name":"uint256","nodeType":"ElementaryTypeName","src":"12769:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83128,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"12993:29:169","nodeType":"VariableDeclaration","scope":83129,"src":"12985:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83127,"name":"uint256","nodeType":"ElementaryTypeName","src":"12985:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11738:12:169","scope":84099,"visibility":"public"},{"id":83137,"nodeType":"StructDefinition","src":"13095:564:169","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":83130,"nodeType":"StructuredDocumentation","src":"13035:55:169","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":83133,"mutability":"mutable","name":"to","nameLocation":"13304:2:169","nodeType":"VariableDeclaration","scope":83137,"src":"13296:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13296:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83136,"mutability":"mutable","name":"code","nameLocation":"13648:4:169","nodeType":"VariableDeclaration","scope":83137,"src":"13641:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":83135,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13641:6:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"13102:12:169","scope":84099,"visibility":"public"},{"id":83167,"nodeType":"StructDefinition","src":"13936:1608:169","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":83138,"nodeType":"StructuredDocumentation","src":"13665:266:169","text":" @dev Represents state transition of `Mirror`.\n Most important type in this, in Rust we use this type to mutate state of `Mirror` instances.\n (see `ethexe/common/src/gear.rs` for more details on how this type is used in Rust)."},"members":[{"constant":false,"id":83141,"mutability":"mutable","name":"actorId","nameLocation":"14163:7:169","nodeType":"VariableDeclaration","scope":83167,"src":"14155:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83140,"name":"address","nodeType":"ElementaryTypeName","src":"14155:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83144,"mutability":"mutable","name":"newStateHash","nameLocation":"14344:12:169","nodeType":"VariableDeclaration","scope":83167,"src":"14336:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14336:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83147,"mutability":"mutable","name":"exited","nameLocation":"14451:6:169","nodeType":"VariableDeclaration","scope":83167,"src":"14446:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83146,"name":"bool","nodeType":"ElementaryTypeName","src":"14446:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83150,"mutability":"mutable","name":"inheritor","nameLocation":"14653:9:169","nodeType":"VariableDeclaration","scope":83167,"src":"14645:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83149,"name":"address","nodeType":"ElementaryTypeName","src":"14645:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83153,"mutability":"mutable","name":"valueToReceive","nameLocation":"15031:14:169","nodeType":"VariableDeclaration","scope":83167,"src":"15023:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83152,"name":"uint128","nodeType":"ElementaryTypeName","src":"15023:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83156,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"15327:26:169","nodeType":"VariableDeclaration","scope":83167,"src":"15322:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83155,"name":"bool","nodeType":"ElementaryTypeName","src":"15322:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83161,"mutability":"mutable","name":"valueClaims","nameLocation":"15439:11:169","nodeType":"VariableDeclaration","scope":83167,"src":"15426:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":83159,"nodeType":"UserDefinedTypeName","pathNode":{"id":83158,"name":"ValueClaim","nameLocations":["15426:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"15426:10:169"},"referencedDeclaration":83207,"src":"15426:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":83160,"nodeType":"ArrayTypeName","src":"15426:12:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"},{"constant":false,"id":83166,"mutability":"mutable","name":"messages","nameLocation":"15529:8:169","nodeType":"VariableDeclaration","scope":83167,"src":"15519:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":83164,"nodeType":"UserDefinedTypeName","pathNode":{"id":83163,"name":"Message","nameLocations":["15519:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"15519:7:169"},"referencedDeclaration":83101,"src":"15519:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"id":83165,"nodeType":"ArrayTypeName","src":"15519:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"13943:15:169","scope":84099,"visibility":"public"},{"id":83175,"nodeType":"StructDefinition","src":"15604:104:169","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":83168,"nodeType":"StructuredDocumentation","src":"15550:49:169","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":83170,"mutability":"mutable","name":"era","nameLocation":"15639:3:169","nodeType":"VariableDeclaration","scope":83175,"src":"15631:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83169,"name":"uint256","nodeType":"ElementaryTypeName","src":"15631:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83172,"mutability":"mutable","name":"election","nameLocation":"15660:8:169","nodeType":"VariableDeclaration","scope":83175,"src":"15652:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83171,"name":"uint256","nodeType":"ElementaryTypeName","src":"15652:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83174,"mutability":"mutable","name":"validationDelay","nameLocation":"15686:15:169","nodeType":"VariableDeclaration","scope":83175,"src":"15678:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83173,"name":"uint256","nodeType":"ElementaryTypeName","src":"15678:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"15611:9:169","scope":84099,"visibility":"public"},{"id":83187,"nodeType":"StructDefinition","src":"15778:171:169","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":83176,"nodeType":"StructuredDocumentation","src":"15714:59:169","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":83178,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15822:18:169","nodeType":"VariableDeclaration","scope":83187,"src":"15814:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83177,"name":"uint128","nodeType":"ElementaryTypeName","src":"15814:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83180,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15858:20:169","nodeType":"VariableDeclaration","scope":83187,"src":"15850:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83179,"name":"uint128","nodeType":"ElementaryTypeName","src":"15850:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83183,"mutability":"mutable","name":"validators0","nameLocation":"15899:11:169","nodeType":"VariableDeclaration","scope":83187,"src":"15888:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83182,"nodeType":"UserDefinedTypeName","pathNode":{"id":83181,"name":"Validators","nameLocations":["15888:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"15888:10:169"},"referencedDeclaration":82928,"src":"15888:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":83186,"mutability":"mutable","name":"validators1","nameLocation":"15931:11:169","nodeType":"VariableDeclaration","scope":83187,"src":"15920:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83185,"nodeType":"UserDefinedTypeName","pathNode":{"id":83184,"name":"Validators","nameLocations":["15920:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"15920:10:169"},"referencedDeclaration":82928,"src":"15920:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"15785:18:169","scope":84099,"visibility":"public"},{"id":83199,"nodeType":"StructDefinition","src":"16027:183:169","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":83188,"nodeType":"StructuredDocumentation","src":"15955:67:169","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":83190,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16075:18:169","nodeType":"VariableDeclaration","scope":83199,"src":"16067:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83189,"name":"uint128","nodeType":"ElementaryTypeName","src":"16067:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83192,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16111:20:169","nodeType":"VariableDeclaration","scope":83199,"src":"16103:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83191,"name":"uint128","nodeType":"ElementaryTypeName","src":"16103:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83195,"mutability":"mutable","name":"validators0","nameLocation":"16156:11:169","nodeType":"VariableDeclaration","scope":83199,"src":"16141:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83194,"nodeType":"UserDefinedTypeName","pathNode":{"id":83193,"name":"ValidatorsView","nameLocations":["16141:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"16141:14:169"},"referencedDeclaration":82940,"src":"16141:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":83198,"mutability":"mutable","name":"validators1","nameLocation":"16192:11:169","nodeType":"VariableDeclaration","scope":83199,"src":"16177:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83197,"nodeType":"UserDefinedTypeName","pathNode":{"id":83196,"name":"ValidatorsView","nameLocations":["16177:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"16177:14:169"},"referencedDeclaration":82940,"src":"16177:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"16034:22:169","scope":84099,"visibility":"public"},{"id":83207,"nodeType":"StructDefinition","src":"16272:104:169","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":83200,"nodeType":"StructuredDocumentation","src":"16216:51:169","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":83202,"mutability":"mutable","name":"messageId","nameLocation":"16308:9:169","nodeType":"VariableDeclaration","scope":83207,"src":"16300:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16300:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83204,"mutability":"mutable","name":"destination","nameLocation":"16335:11:169","nodeType":"VariableDeclaration","scope":83207,"src":"16327:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83203,"name":"address","nodeType":"ElementaryTypeName","src":"16327:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83206,"mutability":"mutable","name":"value","nameLocation":"16364:5:169","nodeType":"VariableDeclaration","scope":83207,"src":"16356:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83205,"name":"uint128","nodeType":"ElementaryTypeName","src":"16356:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"16279:10:169","scope":84099,"visibility":"public"},{"id":83229,"nodeType":"StructDefinition","src":"16456:436:169","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":83208,"nodeType":"StructuredDocumentation","src":"16382:69:169","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":83210,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16532:13:169","nodeType":"VariableDeclaration","scope":83229,"src":"16524:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83209,"name":"address","nodeType":"ElementaryTypeName","src":"16524:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83212,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16563:16:169","nodeType":"VariableDeclaration","scope":83229,"src":"16555:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83211,"name":"address","nodeType":"ElementaryTypeName","src":"16555:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83214,"mutability":"mutable","name":"networkRegistry","nameLocation":"16597:15:169","nodeType":"VariableDeclaration","scope":83229,"src":"16589:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83213,"name":"address","nodeType":"ElementaryTypeName","src":"16589:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83216,"mutability":"mutable","name":"middlewareService","nameLocation":"16630:17:169","nodeType":"VariableDeclaration","scope":83229,"src":"16622:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83215,"name":"address","nodeType":"ElementaryTypeName","src":"16622:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83218,"mutability":"mutable","name":"networkOptIn","nameLocation":"16665:12:169","nodeType":"VariableDeclaration","scope":83229,"src":"16657:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83217,"name":"address","nodeType":"ElementaryTypeName","src":"16657:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83220,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"16695:20:169","nodeType":"VariableDeclaration","scope":83229,"src":"16687:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83219,"name":"address","nodeType":"ElementaryTypeName","src":"16687:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83222,"mutability":"mutable","name":"operatorRewards","nameLocation":"16769:15:169","nodeType":"VariableDeclaration","scope":83229,"src":"16761:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83221,"name":"address","nodeType":"ElementaryTypeName","src":"16761:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83224,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"16802:18:169","nodeType":"VariableDeclaration","scope":83229,"src":"16794:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83223,"name":"address","nodeType":"ElementaryTypeName","src":"16794:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83226,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"16838:17:169","nodeType":"VariableDeclaration","scope":83229,"src":"16830:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83225,"name":"address","nodeType":"ElementaryTypeName","src":"16830:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83228,"mutability":"mutable","name":"vetoResolver","nameLocation":"16873:12:169","nodeType":"VariableDeclaration","scope":83229,"src":"16865:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83227,"name":"address","nodeType":"ElementaryTypeName","src":"16865:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16463:18:169","scope":84099,"visibility":"public"},{"id":83233,"nodeType":"EnumDefinition","src":"16965:55:169","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":83230,"nodeType":"StructuredDocumentation","src":"16898:62:169","text":" @dev Represents the type of signature used."},"members":[{"id":83231,"name":"FROST","nameLocation":"16994:5:169","nodeType":"EnumValue","src":"16994:5:169"},{"id":83232,"name":"ECDSA","nameLocation":"17009:5:169","nodeType":"EnumValue","src":"17009:5:169"}],"name":"SignatureType","nameLocation":"16970:13:169"},{"id":83255,"nodeType":"FunctionDefinition","src":"17310:260:169","nodes":[],"body":{"id":83254,"nodeType":"Block","src":"17471:99:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83248,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83236,"src":"17515:16:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83249,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83238,"src":"17533:5:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83250,"name":"_lastAdvancedEthBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83240,"src":"17540:21:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17498:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17502:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"17498:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17498:64:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83245,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17488:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17488:75:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83244,"id":83253,"nodeType":"Return","src":"17481:82:169"}]},"documentation":{"id":83234,"nodeType":"StructuredDocumentation","src":"17026:279:169","text":" @dev Computes the hash of `ChainCommitment`.\n @param _transitionsHash The hash of the transitions in the chain commitment.\n @param _head The head of the chain commitment.\n @param _lastAdvancedEthBlock The latest folded-in Ethereum block hash."},"implemented":true,"kind":"function","modifiers":[],"name":"chainCommitmentHash","nameLocation":"17319:19:169","parameters":{"id":83241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83236,"mutability":"mutable","name":"_transitionsHash","nameLocation":"17347:16:169","nodeType":"VariableDeclaration","scope":83255,"src":"17339:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17339:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83238,"mutability":"mutable","name":"_head","nameLocation":"17373:5:169","nodeType":"VariableDeclaration","scope":83255,"src":"17365:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17365:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83240,"mutability":"mutable","name":"_lastAdvancedEthBlock","nameLocation":"17388:21:169","nodeType":"VariableDeclaration","scope":83255,"src":"17380:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17380:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17338:72:169"},"returnParameters":{"id":83244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83255,"src":"17458:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17458:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17457:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83272,"nodeType":"FunctionDefinition","src":"17739:336:169","nodes":[],"body":{"id":83271,"nodeType":"Block","src":"17827:248:169","nodes":[],"statements":[{"assignments":[83266],"declarations":[{"constant":false,"id":83266,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"17845:19:169","nodeType":"VariableDeclaration","scope":83271,"src":"17837:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17837:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83267,"nodeType":"VariableDeclarationStatement","src":"17837:27:169"},{"AST":{"nativeSrc":"17899:134:169","nodeType":"YulBlock","src":"17899:134:169","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17920:4:169","nodeType":"YulLiteral","src":"17920:4:169","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"17926:6:169","nodeType":"YulIdentifier","src":"17926:6:169"}],"functionName":{"name":"mstore","nativeSrc":"17913:6:169","nodeType":"YulIdentifier","src":"17913:6:169"},"nativeSrc":"17913:20:169","nodeType":"YulFunctionCall","src":"17913:20:169"},"nativeSrc":"17913:20:169","nodeType":"YulExpressionStatement","src":"17913:20:169"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17954:4:169","nodeType":"YulLiteral","src":"17954:4:169","type":"","value":"0x20"},{"name":"valid","nativeSrc":"17960:5:169","nodeType":"YulIdentifier","src":"17960:5:169"}],"functionName":{"name":"mstore8","nativeSrc":"17946:7:169","nodeType":"YulIdentifier","src":"17946:7:169"},"nativeSrc":"17946:20:169","nodeType":"YulFunctionCall","src":"17946:20:169"},"nativeSrc":"17946:20:169","nodeType":"YulExpressionStatement","src":"17946:20:169"},{"nativeSrc":"17979:44:169","nodeType":"YulAssignment","src":"17979:44:169","value":{"arguments":[{"kind":"number","nativeSrc":"18012:4:169","nodeType":"YulLiteral","src":"18012:4:169","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18018:4:169","nodeType":"YulLiteral","src":"18018:4:169","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"18002:9:169","nodeType":"YulIdentifier","src":"18002:9:169"},"nativeSrc":"18002:21:169","nodeType":"YulFunctionCall","src":"18002:21:169"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"17979:19:169","nodeType":"YulIdentifier","src":"17979:19:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83266,"isOffset":false,"isSlot":false,"src":"17979:19:169","valueSize":1},{"declaration":83258,"isOffset":false,"isSlot":false,"src":"17926:6:169","valueSize":1},{"declaration":83260,"isOffset":false,"isSlot":false,"src":"17960:5:169","valueSize":1}],"flags":["memory-safe"],"id":83268,"nodeType":"InlineAssembly","src":"17874:159:169"},{"expression":{"id":83269,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83266,"src":"18049:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83264,"id":83270,"nodeType":"Return","src":"18042:26:169"}]},"documentation":{"id":83256,"nodeType":"StructuredDocumentation","src":"17576:158:169","text":" @dev Computes the hash of `CodeCommitment`.\n @param codeId The ID of the code.\n @param valid The validation status of the code."},"implemented":true,"kind":"function","modifiers":[],"name":"codeCommitmentHash","nameLocation":"17748:18:169","parameters":{"id":83261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83258,"mutability":"mutable","name":"codeId","nameLocation":"17775:6:169","nodeType":"VariableDeclaration","scope":83272,"src":"17767:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17767:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83260,"mutability":"mutable","name":"valid","nameLocation":"17788:5:169","nodeType":"VariableDeclaration","scope":83272,"src":"17783:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83259,"name":"bool","nodeType":"ElementaryTypeName","src":"17783:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17766:28:169"},"returnParameters":{"id":83264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83272,"src":"17818:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17818:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17817:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83294,"nodeType":"FunctionDefinition","src":"18352:273:169","nodes":[],"body":{"id":83293,"nodeType":"Block","src":"18520:105:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83287,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83275,"src":"18564:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83288,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83277,"src":"18586:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83289,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83279,"src":"18606:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18547:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18551:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18547:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18547:70:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83284,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18537:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18537:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83283,"id":83292,"nodeType":"Return","src":"18530:88:169"}]},"documentation":{"id":83273,"nodeType":"StructuredDocumentation","src":"18081:266:169","text":" @dev Computes the hash of `RewardsCommitment`.\n @param _operatorRewardsHash The hash of the operator rewards.\n @param _stakerRewardsHash The hash of the staker rewards.\n @param _timestamp The timestamp for the rewards commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"rewardsCommitmentHash","nameLocation":"18361:21:169","parameters":{"id":83280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83275,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"18391:20:169","nodeType":"VariableDeclaration","scope":83294,"src":"18383:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18383:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83277,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"18421:18:169","nodeType":"VariableDeclaration","scope":83294,"src":"18413:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18413:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83279,"mutability":"mutable","name":"_timestamp","nameLocation":"18448:10:169","nodeType":"VariableDeclaration","scope":83294,"src":"18441:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83278,"name":"uint48","nodeType":"ElementaryTypeName","src":"18441:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"18382:77:169"},"returnParameters":{"id":83283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83294,"src":"18507:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18507:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18506:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83322,"nodeType":"FunctionDefinition","src":"18756:425:169","nodes":[],"body":{"id":83321,"nodeType":"Block","src":"18867:314:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83306,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"18941:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18952:22:169","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82975,"src":"18941:33:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":83308,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"18992:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19003:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"18992:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19023:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"18992:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83311,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19042:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19053:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"19042:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19073:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"19042:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":83314,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19092:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19103:10:169","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"19092:21:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":83316,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19131:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19142:8:169","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"19131:19:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83304,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18907:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18911:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18907:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18907:257:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83303,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18884:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18884:290:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83302,"id":83320,"nodeType":"Return","src":"18877:297:169"}]},"documentation":{"id":83295,"nodeType":"StructuredDocumentation","src":"18631:120:169","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"18765:24:169","parameters":{"id":83299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83298,"mutability":"mutable","name":"commitment","nameLocation":"18823:10:169","nodeType":"VariableDeclaration","scope":83322,"src":"18790:43:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":83297,"nodeType":"UserDefinedTypeName","pathNode":{"id":83296,"name":"Gear.ValidatorsCommitment","nameLocations":["18790:4:169","18795:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"18790:25:169"},"referencedDeclaration":82986,"src":"18790:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"18789:45:169"},"returnParameters":{"id":83302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83322,"src":"18858:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18858:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18857:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83359,"nodeType":"FunctionDefinition","src":"19794:697:169","nodes":[],"body":{"id":83358,"nodeType":"Block","src":"20131:360:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83347,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83325,"src":"20205:6:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83348,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83327,"src":"20229:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":83349,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83329,"src":"20257:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83350,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83331,"src":"20294:7:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83351,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83333,"src":"20319:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83352,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83335,"src":"20357:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83353,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83337,"src":"20395:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83354,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83339,"src":"20435:25:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20171:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20175:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20171:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20171:303:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83344,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20148:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20148:336:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83343,"id":83357,"nodeType":"Return","src":"20141:343:169"}]},"documentation":{"id":83323,"nodeType":"StructuredDocumentation","src":"19187:602:169","text":" @dev Computes the hash of `BatchCommitment`.\n @param _block The hash of the block.\n @param _timestamp The timestamp for the batch commitment.\n @param _prevCommittedBlock The hash of the previous committed block.\n @param _expiry The expiry time for the batch commitment.\n @param _chainCommitmentHash The hash of the chain commitment.\n @param _codeCommitmentsHash The hash of the code commitments.\n @param _rewardsCommitmentHash The hash of the rewards commitment.\n @param _validatorsCommitmentHash The hash of the validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"batchCommitmentHash","nameLocation":"19803:19:169","parameters":{"id":83340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83325,"mutability":"mutable","name":"_block","nameLocation":"19840:6:169","nodeType":"VariableDeclaration","scope":83359,"src":"19832:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19832:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83327,"mutability":"mutable","name":"_timestamp","nameLocation":"19863:10:169","nodeType":"VariableDeclaration","scope":83359,"src":"19856:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83326,"name":"uint48","nodeType":"ElementaryTypeName","src":"19856:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83329,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"19891:19:169","nodeType":"VariableDeclaration","scope":83359,"src":"19883:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19883:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83331,"mutability":"mutable","name":"_expiry","nameLocation":"19926:7:169","nodeType":"VariableDeclaration","scope":83359,"src":"19920:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83330,"name":"uint8","nodeType":"ElementaryTypeName","src":"19920:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83333,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"19951:20:169","nodeType":"VariableDeclaration","scope":83359,"src":"19943:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19943:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83335,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"19989:20:169","nodeType":"VariableDeclaration","scope":83359,"src":"19981:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19981:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83337,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"20027:22:169","nodeType":"VariableDeclaration","scope":83359,"src":"20019:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20019:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83339,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"20067:25:169","nodeType":"VariableDeclaration","scope":83359,"src":"20059:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20059:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19822:276:169"},"returnParameters":{"id":83343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83359,"src":"20122:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20122:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20121:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83391,"nodeType":"FunctionDefinition","src":"20622:407:169","nodes":[],"body":{"id":83390,"nodeType":"Block","src":"20699:330:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83371,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20773:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:2:169","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"20773:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83373,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20801:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20809:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"20801:19:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":83375,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20838:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20846:7:169","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"20838:15:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":83377,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20871:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20879:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"20871:13:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83379,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20902:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20910:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"20902:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20923:2:169","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"20902:23:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":83382,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20943:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20951:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"20943:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20964:4:169","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"20943:25:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":83385,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20986:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20994:4:169","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"20986:12:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":83369,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20739:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20743:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20739:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20739:273:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83368,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20716:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20716:306:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83367,"id":83389,"nodeType":"Return","src":"20709:313:169"}]},"documentation":{"id":83360,"nodeType":"StructuredDocumentation","src":"20497:120:169","text":" @dev Computes the hash of `Message`.\n @param message The message for which to compute the hash."},"implemented":true,"kind":"function","modifiers":[],"name":"messageHash","nameLocation":"20631:11:169","parameters":{"id":83364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83363,"mutability":"mutable","name":"message","nameLocation":"20658:7:169","nodeType":"VariableDeclaration","scope":83391,"src":"20643:22:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":83362,"nodeType":"UserDefinedTypeName","pathNode":{"id":83361,"name":"Message","nameLocations":["20643:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"20643:7:169"},"referencedDeclaration":83101,"src":"20643:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"20642:24:169"},"returnParameters":{"id":83367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83391,"src":"20690:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20690:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20689:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83413,"nodeType":"FunctionDefinition","src":"21236:199:169","nodes":[],"body":{"id":83412,"nodeType":"Block","src":"21350:85:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83406,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83394,"src":"21394:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83407,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83396,"src":"21406:12:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83408,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83398,"src":"21420:6:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":83404,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21377:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21381:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"21377:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21377:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83403,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21367:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21367:61:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83402,"id":83411,"nodeType":"Return","src":"21360:68:169"}]},"documentation":{"id":83392,"nodeType":"StructuredDocumentation","src":"21035:196:169","text":" @dev Computes the hash of `ValueClaim`.\n @param _messageId The message ID.\n @param _destination The destination address.\n @param _value The value of the claim."},"implemented":true,"kind":"function","modifiers":[],"name":"valueClaimHash","nameLocation":"21245:14:169","parameters":{"id":83399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83394,"mutability":"mutable","name":"_messageId","nameLocation":"21268:10:169","nodeType":"VariableDeclaration","scope":83413,"src":"21260:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21260:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83396,"mutability":"mutable","name":"_destination","nameLocation":"21288:12:169","nodeType":"VariableDeclaration","scope":83413,"src":"21280:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83395,"name":"address","nodeType":"ElementaryTypeName","src":"21280:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83398,"mutability":"mutable","name":"_value","nameLocation":"21310:6:169","nodeType":"VariableDeclaration","scope":83413,"src":"21302:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83397,"name":"uint128","nodeType":"ElementaryTypeName","src":"21302:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21259:58:169"},"returnParameters":{"id":83402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83413,"src":"21341:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21341:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21340:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83450,"nodeType":"FunctionDefinition","src":"21939:646:169","nodes":[],"body":{"id":83449,"nodeType":"Block","src":"22249:336:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83438,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83416,"src":"22323:5:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83439,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83418,"src":"22346:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83440,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83420,"src":"22376:6:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83441,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83422,"src":"22400:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83442,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83424,"src":"22427:14:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83443,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83426,"src":"22459:26:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83444,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83428,"src":"22503:15:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83445,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83430,"src":"22536:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22289:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22293:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"22289:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22289:279:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83435,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"22266:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22266:312:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83434,"id":83448,"nodeType":"Return","src":"22259:319:169"}]},"documentation":{"id":83414,"nodeType":"StructuredDocumentation","src":"21441:493:169","text":" @dev Computes the hash of `StateTransition`.\n @param actor The actor address.\n @param newStateHash The hash of the new state.\n @param exited The exit status.\n @param inheritor The inheritor address.\n @param valueToReceive The value to receive.\n @param valueToReceiveNegativeSign The sign of the value to receive.\n @param valueClaimsHash The hash of the value claims.\n @param messagesHashesHash The hash of the messages hashes."},"implemented":true,"kind":"function","modifiers":[],"name":"stateTransitionHash","nameLocation":"21948:19:169","parameters":{"id":83431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83416,"mutability":"mutable","name":"actor","nameLocation":"21985:5:169","nodeType":"VariableDeclaration","scope":83450,"src":"21977:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83415,"name":"address","nodeType":"ElementaryTypeName","src":"21977:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83418,"mutability":"mutable","name":"newStateHash","nameLocation":"22008:12:169","nodeType":"VariableDeclaration","scope":83450,"src":"22000:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22000:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83420,"mutability":"mutable","name":"exited","nameLocation":"22035:6:169","nodeType":"VariableDeclaration","scope":83450,"src":"22030:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83419,"name":"bool","nodeType":"ElementaryTypeName","src":"22030:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83422,"mutability":"mutable","name":"inheritor","nameLocation":"22059:9:169","nodeType":"VariableDeclaration","scope":83450,"src":"22051:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83421,"name":"address","nodeType":"ElementaryTypeName","src":"22051:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83424,"mutability":"mutable","name":"valueToReceive","nameLocation":"22086:14:169","nodeType":"VariableDeclaration","scope":83450,"src":"22078:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83423,"name":"uint128","nodeType":"ElementaryTypeName","src":"22078:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83426,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"22115:26:169","nodeType":"VariableDeclaration","scope":83450,"src":"22110:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83425,"name":"bool","nodeType":"ElementaryTypeName","src":"22110:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83428,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"22159:15:169","nodeType":"VariableDeclaration","scope":83450,"src":"22151:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22151:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83430,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"22192:18:169","nodeType":"VariableDeclaration","scope":83450,"src":"22184:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22184:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21967:249:169"},"returnParameters":{"id":83434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83450,"src":"22240:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22240:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22239:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83515,"nodeType":"FunctionDefinition","src":"22859:532:169","nodes":[],"body":{"id":83514,"nodeType":"Block","src":"22958:433:169","nodes":[],"statements":[{"assignments":[83461],"declarations":[{"constant":false,"id":83461,"mutability":"mutable","name":"start","nameLocation":"22976:5:169","nodeType":"VariableDeclaration","scope":83514,"src":"22968:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83460,"name":"uint256","nodeType":"ElementaryTypeName","src":"22968:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83466,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83462,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22984:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22990:6:169","memberName":"number","nodeType":"MemberAccess","src":"22984:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":83464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22999:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22984:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22968:32:169"},{"assignments":[83468],"declarations":[{"constant":false,"id":83468,"mutability":"mutable","name":"end","nameLocation":"23018:3:169","nodeType":"VariableDeclaration","scope":83514,"src":"23010:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83467,"name":"uint256","nodeType":"ElementaryTypeName","src":"23010:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83479,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83469,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"23024:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":83470,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23034:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23040:6:169","memberName":"number","nodeType":"MemberAccess","src":"23034:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23024:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83474,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23053:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23059:6:169","memberName":"number","nodeType":"MemberAccess","src":"23053:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83476,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"23068:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"23053:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23024:50:169","trueExpression":{"hexValue":"30","id":83473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23049:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23010:64:169"},{"body":{"id":83510,"nodeType":"Block","src":"23119:243:169","statements":[{"assignments":[83488],"declarations":[{"constant":false,"id":83488,"mutability":"mutable","name":"ret","nameLocation":"23141:3:169","nodeType":"VariableDeclaration","scope":83510,"src":"23133:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23133:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83492,"initialValue":{"arguments":[{"id":83490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23157:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83489,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"23147:9:169","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23147:12:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23133:26:169"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83493,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83488,"src":"23177:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83494,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83453,"src":"23184:4:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23177:11:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83499,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83488,"src":"23244:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23251:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23244:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83504,"nodeType":"IfStatement","src":"23240:52:169","trueBody":{"id":83503,"nodeType":"Block","src":"23254:38:169","statements":[{"id":83502,"nodeType":"Break","src":"23272:5:169"}]}},"id":83505,"nodeType":"IfStatement","src":"23173:119:169","trueBody":{"id":83498,"nodeType":"Block","src":"23190:44:169","statements":[{"expression":{"hexValue":"74727565","id":83496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23215:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83459,"id":83497,"nodeType":"Return","src":"23208:11:169"}]}},{"id":83509,"nodeType":"UncheckedBlock","src":"23306:46:169","statements":[{"expression":{"id":83507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"23334:3:169","subExpression":{"id":83506,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23334:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83508,"nodeType":"ExpressionStatement","src":"23334:3:169"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23108:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83485,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83468,"src":"23113:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23108:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83511,"initializationExpression":{"assignments":[83481],"declarations":[{"constant":false,"id":83481,"mutability":"mutable","name":"i","nameLocation":"23097:1:169","nodeType":"VariableDeclaration","scope":83511,"src":"23089:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83480,"name":"uint256","nodeType":"ElementaryTypeName","src":"23089:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83483,"initialValue":{"id":83482,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83461,"src":"23101:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23089:17:169"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"23084:278:169"},{"expression":{"hexValue":"66616c7365","id":83512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23379:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83459,"id":83513,"nodeType":"Return","src":"23372:12:169"}]},"documentation":{"id":83451,"nodeType":"StructuredDocumentation","src":"22591:263:169","text":" @dev Checks if block is predecessor of the current block.\n @param hash The hash of the block to check.\n @param expiry The expiry time for the block.\n @return isPredecessor `true` if the block is predecessor, `false` otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"blockIsPredecessor","nameLocation":"22868:18:169","parameters":{"id":83456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83453,"mutability":"mutable","name":"hash","nameLocation":"22895:4:169","nodeType":"VariableDeclaration","scope":83515,"src":"22887:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22887:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83455,"mutability":"mutable","name":"expiry","nameLocation":"22907:6:169","nodeType":"VariableDeclaration","scope":83515,"src":"22901:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83454,"name":"uint8","nodeType":"ElementaryTypeName","src":"22901:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"22886:28:169"},"returnParameters":{"id":83459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83458,"mutability":"mutable","name":"isPredecessor","nameLocation":"22943:13:169","nodeType":"VariableDeclaration","scope":83515,"src":"22938:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83457,"name":"bool","nodeType":"ElementaryTypeName","src":"22938:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22937:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83528,"nodeType":"FunctionDefinition","src":"23536:222:169","nodes":[],"body":{"id":83527,"nodeType":"Block","src":"23645:113:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83523,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82868,"src":"23694:21:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":83524,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82880,"src":"23733:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83522,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83072,"src":"23662:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$83072_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":83525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23683:9:169","23717:14:169"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"23662:89:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":83521,"id":83526,"nodeType":"Return","src":"23655:96:169"}]},"documentation":{"id":83516,"nodeType":"StructuredDocumentation","src":"23397:134:169","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"23545:26:169","parameters":{"id":83517,"nodeType":"ParameterList","parameters":[],"src":"23571:2:169"},"returnParameters":{"id":83521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83520,"mutability":"mutable","name":"computationSettings","nameLocation":"23624:19:169","nodeType":"VariableDeclaration","scope":83528,"src":"23597:46:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83519,"nodeType":"UserDefinedTypeName","pathNode":{"id":83518,"name":"ComputationSettings","nameLocations":["23597:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83072,"src":"23597:19:169"},"referencedDeclaration":83072,"src":"23597:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"23596:48:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83551,"nodeType":"FunctionDefinition","src":"23884:229:169","nodes":[],"body":{"id":83550,"nodeType":"Block","src":"23971:142:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":83538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24032:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24024:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24024:7:169","typeDescriptions":{}}},"id":83539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24024:10:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":83542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24062:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24068:6:169","memberName":"number","nodeType":"MemberAccess","src":"24062:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83540,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"24044:8:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$55635_$","typeString":"type(library SafeCast)"}},"id":83541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24053:8:169","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":54681,"src":"24044:17:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":83544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24044:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83545,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"24088:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":83546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24093:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"24088:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":83547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24088:16:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":83535,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83080,"src":"24000:16:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$83080_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":83548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24018:4:169","24036:6:169","24077:9:169"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"24000:106:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":83534,"id":83549,"nodeType":"Return","src":"23981:125:169"}]},"documentation":{"id":83529,"nodeType":"StructuredDocumentation","src":"23764:115:169","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"23893:10:169","parameters":{"id":83530,"nodeType":"ParameterList","parameters":[],"src":"23903:2:169"},"returnParameters":{"id":83534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83533,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"23953:16:169","nodeType":"VariableDeclaration","scope":83551,"src":"23929:40:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":83532,"nodeType":"UserDefinedTypeName","pathNode":{"id":83531,"name":"GenesisBlockInfo","nameLocations":["23929:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":83080,"src":"23929:16:169"},"referencedDeclaration":83080,"src":"23929:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"23928:42:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83801,"nodeType":"FunctionDefinition","src":"24604:3813:169","nodes":[],"body":{"id":83800,"nodeType":"Block","src":"24867:3550:169","nodes":[],"statements":[{"assignments":[83573],"declarations":[{"constant":false,"id":83573,"mutability":"mutable","name":"eraStarted","nameLocation":"24939:10:169","nodeType":"VariableDeclaration","scope":83800,"src":"24931:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83572,"name":"uint256","nodeType":"ElementaryTypeName","src":"24931:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83579,"initialValue":{"arguments":[{"id":83575,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"24965:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83576,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24973:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24979:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"24973:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83574,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84034,"src":"24952:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":83578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24952:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24931:58:169"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83580,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25003:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83581,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25008:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25003:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83583,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25022:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25028:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25022:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83585,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25040:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83586,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25053:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25060:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"25053:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25070:15:169","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":83174,"src":"25053:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25040:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25022:63:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25003:82:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83633,"nodeType":"Block","src":"25446:229:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83616,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25468:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83617,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25474:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25480:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25474:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25468:21:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83620,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82889,"src":"25491:17:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25491:19:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25460:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25460:51:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83623,"nodeType":"ExpressionStatement","src":"25460:51:169"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83624,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25530:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83625,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25535:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25530:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83632,"nodeType":"IfStatement","src":"25526:69:169","trueBody":{"id":83631,"nodeType":"Block","src":"25547:48:169","statements":[{"expression":{"id":83629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83627,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25565:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83628,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25570:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25565:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83630,"nodeType":"ExpressionStatement","src":"25565:15:169"}]}}]},"id":83634,"nodeType":"IfStatement","src":"24999:676:169","trueBody":{"id":83614,"nodeType":"Block","src":"25087:353:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83593,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25109:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":83594,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25115:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25122:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"25115:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25135:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"25115:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"25109:35:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83598,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82883,"src":"25146:23:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:25:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25101:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25101:71:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83601,"nodeType":"ExpressionStatement","src":"25101:71:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83603,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25194:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83604,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25199:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25206:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"25199:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25216:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"25199:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25194:25:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83608,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25223:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25194:39:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83610,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82886,"src":"25235:29:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25235:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83602,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25186:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25186:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83613,"nodeType":"ExpressionStatement","src":"25186:81:169"}]}},{"assignments":[83637],"declarations":[{"constant":false,"id":83637,"mutability":"mutable","name":"validators","nameLocation":"25756:10:169","nodeType":"VariableDeclaration","scope":83800,"src":"25737:29:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83636,"nodeType":"UserDefinedTypeName","pathNode":{"id":83635,"name":"Validators","nameLocations":["25737:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"25737:10:169"},"referencedDeclaration":82928,"src":"25737:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":83642,"initialValue":{"arguments":[{"id":83639,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25782:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83640,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25790:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83638,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83873,"src":"25769:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25769:24:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25737:56:169"},{"assignments":[83644],"declarations":[{"constant":false,"id":83644,"mutability":"mutable","name":"_messageHash","nameLocation":"25811:12:169","nodeType":"VariableDeclaration","scope":83800,"src":"25803:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25803:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83652,"initialValue":{"arguments":[{"id":83650,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83559,"src":"25872:9:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":83647,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"25834:4:169","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$84099","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$84099","typeString":"library Gear"}],"id":83646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25826:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83645,"name":"address","nodeType":"ElementaryTypeName","src":"25826:7:169","typeDescriptions":{}}},"id":83648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25826:13:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25840:31:169","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":52224,"src":"25826:45:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":83651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25826:56:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25803:79:169"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"id":83656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83653,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"25897:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83654,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83233,"src":"25915:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83233_$","typeString":"type(enum Gear.SignatureType)"}},"id":83655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25929:5:169","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":83231,"src":"25915:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"src":"25897:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"id":83709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83706,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"27093:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83707,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83233,"src":"27111:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83233_$","typeString":"type(enum Gear.SignatureType)"}},"id":83708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27125:5:169","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":83232,"src":"27111:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"src":"27093:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83796,"nodeType":"IfStatement","src":"27089:1299:169","trueBody":{"id":83795,"nodeType":"Block","src":"27132:1256:169","statements":[{"assignments":[83711],"declarations":[{"constant":false,"id":83711,"mutability":"mutable","name":"threshold","nameLocation":"27154:9:169","nodeType":"VariableDeclaration","scope":83795,"src":"27146:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83710,"name":"uint256","nodeType":"ElementaryTypeName","src":"27146:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83723,"initialValue":{"arguments":[{"expression":{"expression":{"id":83713,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"27203:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27214:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"27203:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":83715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27219:6:169","memberName":"length","nodeType":"MemberAccess","src":"27203:22:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83716,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"27243:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27250:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"27243:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27269:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"27243:44:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83719,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"27305:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27312:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"27305:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27331:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"27305:46:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83712,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83986,"src":"27166:19:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":83722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27166:199:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27146:219:169"},{"assignments":[83725],"declarations":[{"constant":false,"id":83725,"mutability":"mutable","name":"validSignatures","nameLocation":"27388:15:169","nodeType":"VariableDeclaration","scope":83795,"src":"27380:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83724,"name":"uint256","nodeType":"ElementaryTypeName","src":"27380:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83727,"initialValue":{"hexValue":"30","id":83726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27406:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27380:27:169"},{"body":{"id":83791,"nodeType":"Block","src":"27471:880:169","statements":[{"assignments":[83740],"declarations":[{"constant":false,"id":83740,"mutability":"mutable","name":"signature","nameLocation":"27504:9:169","nodeType":"VariableDeclaration","scope":83791,"src":"27489:24:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":83739,"name":"bytes","nodeType":"ElementaryTypeName","src":"27489:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83744,"initialValue":{"baseExpression":{"id":83741,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"27516:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83743,"indexExpression":{"id":83742,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27528:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27516:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27489:41:169"},{"assignments":[83746],"declarations":[{"constant":false,"id":83746,"mutability":"mutable","name":"validator","nameLocation":"27557:9:169","nodeType":"VariableDeclaration","scope":83791,"src":"27549:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83745,"name":"address","nodeType":"ElementaryTypeName","src":"27549:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83751,"initialValue":{"arguments":[{"id":83749,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83740,"src":"27590:9:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":83747,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"27569:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27582:7:169","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50794,"src":"27569:20:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":83750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27569:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27549:51:169"},{"condition":{"baseExpression":{"expression":{"id":83752,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"27623:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27634:3:169","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"27623:14:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":83755,"indexExpression":{"id":83754,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83746,"src":"27638:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27623:25:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83790,"nodeType":"IfStatement","src":"27619:718:169","trueBody":{"id":83789,"nodeType":"Block","src":"27650:687:169","statements":[{"assignments":[83758],"declarations":[{"constant":false,"id":83758,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"27875:30:169","nodeType":"VariableDeclaration","scope":83789,"src":"27867:38:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27867:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev SECURITY:\n We use transient storage to prevent multiple signatures from the same validator.","id":83763,"initialValue":{"arguments":[{"id":83761,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83746,"src":"27945:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":83759,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83557,"src":"27908:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27931:13:169","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":48892,"src":"27908:36:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,address) pure returns (bytes32)"}},"id":83762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27908:47:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27867:88:169"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83764,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"27982:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28013:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"27982:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27982:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28025:5:169","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":50612,"src":"27982:48:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$50513_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":83768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27982:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83779,"nodeType":"Block","src":"28097:104:169","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":83776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28173:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83771,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"28123:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28154:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"28123:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28123:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28166:6:169","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":50623,"src":"28123:49:169","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$50513_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":83777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28123:55:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83778,"nodeType":"ExpressionStatement","src":"28123:55:169"}]},"id":83780,"nodeType":"IfStatement","src":"27978:223:169","trueBody":{"id":83770,"nodeType":"Block","src":"28034:57:169","statements":[{"id":83769,"nodeType":"Continue","src":"28060:8:169"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28227:17:169","subExpression":{"id":83781,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83725,"src":"28229:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83783,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83711,"src":"28248:9:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28227:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83788,"nodeType":"IfStatement","src":"28223:96:169","trueBody":{"id":83787,"nodeType":"Block","src":"28259:60:169","statements":[{"expression":{"hexValue":"74727565","id":83785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28292:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83571,"id":83786,"nodeType":"Return","src":"28285:11:169"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83732,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27442:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83733,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"27446:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27458:6:169","memberName":"length","nodeType":"MemberAccess","src":"27446:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27442:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83792,"initializationExpression":{"assignments":[83729],"declarations":[{"constant":false,"id":83729,"mutability":"mutable","name":"i","nameLocation":"27435:1:169","nodeType":"VariableDeclaration","scope":83792,"src":"27427:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83728,"name":"uint256","nodeType":"ElementaryTypeName","src":"27427:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83731,"initialValue":{"hexValue":"30","id":83730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27439:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27427:13:169"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27466:3:169","subExpression":{"id":83736,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27466:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83738,"nodeType":"ExpressionStatement","src":"27466:3:169"},"nodeType":"ForStatement","src":"27422:929:169"},{"expression":{"hexValue":"66616c7365","id":83793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28372:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83571,"id":83794,"nodeType":"Return","src":"28365:12:169"}]}},"id":83797,"nodeType":"IfStatement","src":"25893:2495:169","trueBody":{"id":83705,"nodeType":"Block","src":"25936:1147:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83658,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"25958:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25970:6:169","memberName":"length","nodeType":"MemberAccess","src":"25958:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":83660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25980:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25958:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83662,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82892,"src":"25983:26:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25983:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25950:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25950:62:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83665,"nodeType":"ExpressionStatement","src":"25950:62:169"},{"assignments":[83667],"declarations":[{"constant":false,"id":83667,"mutability":"mutable","name":"_signature","nameLocation":"26040:10:169","nodeType":"VariableDeclaration","scope":83705,"src":"26027:23:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":83666,"name":"bytes","nodeType":"ElementaryTypeName","src":"26027:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83671,"initialValue":{"baseExpression":{"id":83668,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"26053:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83670,"indexExpression":{"hexValue":"30","id":83669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26065:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26053:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26027:40:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83673,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"26089:10:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":83674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26100:6:169","memberName":"length","nodeType":"MemberAccess","src":"26089:17:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":83675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26110:2:169","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"26089:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83677,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82895,"src":"26114:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26114:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83672,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26081:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26081:63:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83680,"nodeType":"ExpressionStatement","src":"26081:63:169"},{"assignments":[83682],"declarations":[{"constant":false,"id":83682,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"26167:21:169","nodeType":"VariableDeclaration","scope":83705,"src":"26159:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83681,"name":"uint256","nodeType":"ElementaryTypeName","src":"26159:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83683,"nodeType":"VariableDeclarationStatement","src":"26159:29:169"},{"assignments":[83685],"declarations":[{"constant":false,"id":83685,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"26210:21:169","nodeType":"VariableDeclaration","scope":83705,"src":"26202:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83684,"name":"uint256","nodeType":"ElementaryTypeName","src":"26202:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83686,"nodeType":"VariableDeclarationStatement","src":"26202:29:169"},{"assignments":[83688],"declarations":[{"constant":false,"id":83688,"mutability":"mutable","name":"_signatureZ","nameLocation":"26253:11:169","nodeType":"VariableDeclaration","scope":83705,"src":"26245:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83687,"name":"uint256","nodeType":"ElementaryTypeName","src":"26245:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83689,"nodeType":"VariableDeclarationStatement","src":"26245:19:169"},{"AST":{"nativeSrc":"26304:215:169","nodeType":"YulBlock","src":"26304:215:169","statements":[{"nativeSrc":"26322:53:169","nodeType":"YulAssignment","src":"26322:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26357:10:169","nodeType":"YulIdentifier","src":"26357:10:169"},{"kind":"number","nativeSrc":"26369:4:169","nodeType":"YulLiteral","src":"26369:4:169","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26353:3:169","nodeType":"YulIdentifier","src":"26353:3:169"},"nativeSrc":"26353:21:169","nodeType":"YulFunctionCall","src":"26353:21:169"}],"functionName":{"name":"mload","nativeSrc":"26347:5:169","nodeType":"YulIdentifier","src":"26347:5:169"},"nativeSrc":"26347:28:169","nodeType":"YulFunctionCall","src":"26347:28:169"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"26322:21:169","nodeType":"YulIdentifier","src":"26322:21:169"}]},{"nativeSrc":"26392:53:169","nodeType":"YulAssignment","src":"26392:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26427:10:169","nodeType":"YulIdentifier","src":"26427:10:169"},{"kind":"number","nativeSrc":"26439:4:169","nodeType":"YulLiteral","src":"26439:4:169","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26423:3:169","nodeType":"YulIdentifier","src":"26423:3:169"},"nativeSrc":"26423:21:169","nodeType":"YulFunctionCall","src":"26423:21:169"}],"functionName":{"name":"mload","nativeSrc":"26417:5:169","nodeType":"YulIdentifier","src":"26417:5:169"},"nativeSrc":"26417:28:169","nodeType":"YulFunctionCall","src":"26417:28:169"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"26392:21:169","nodeType":"YulIdentifier","src":"26392:21:169"}]},{"nativeSrc":"26462:43:169","nodeType":"YulAssignment","src":"26462:43:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26487:10:169","nodeType":"YulIdentifier","src":"26487:10:169"},{"kind":"number","nativeSrc":"26499:4:169","nodeType":"YulLiteral","src":"26499:4:169","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26483:3:169","nodeType":"YulIdentifier","src":"26483:3:169"},"nativeSrc":"26483:21:169","nodeType":"YulFunctionCall","src":"26483:21:169"}],"functionName":{"name":"mload","nativeSrc":"26477:5:169","nodeType":"YulIdentifier","src":"26477:5:169"},"nativeSrc":"26477:28:169","nodeType":"YulFunctionCall","src":"26477:28:169"},"variableNames":[{"name":"_signatureZ","nativeSrc":"26462:11:169","nodeType":"YulIdentifier","src":"26462:11:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26357:10:169","valueSize":1},{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26427:10:169","valueSize":1},{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26487:10:169","valueSize":1},{"declaration":83682,"isOffset":false,"isSlot":false,"src":"26322:21:169","valueSize":1},{"declaration":83685,"isOffset":false,"isSlot":false,"src":"26392:21:169","valueSize":1},{"declaration":83688,"isOffset":false,"isSlot":false,"src":"26462:11:169","valueSize":1}],"flags":["memory-safe"],"id":83690,"nodeType":"InlineAssembly","src":"26279:240:169"},{"documentation":" @dev SECURITY: `FROST.isValidPublicKey(validators.aggregatedPublicKey.x, validators.aggregatedPublicKey.y)` is not called here,\n because it is already checked in `Router._resetValidators(...)`.","expression":{"arguments":[{"expression":{"expression":{"id":83693,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"26839:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26850:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"26839:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26870:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"26839:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83696,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"26889:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26900:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"26889:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26920:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"26889:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83699,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83682,"src":"26939:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83700,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83685,"src":"26978:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83701,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"27017:11:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83702,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"27046:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83691,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"26800:5:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":83692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:15:169","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":40964,"src":"26800:21:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,bytes32) view returns (bool)"}},"id":83703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26800:272:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83571,"id":83704,"nodeType":"Return","src":"26793:279:169"}]}},{"expression":{"hexValue":"66616c7365","id":83798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28405:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83571,"id":83799,"nodeType":"Return","src":"28398:12:169"}]},"documentation":{"id":83552,"nodeType":"StructuredDocumentation","src":"24119:480:169","text":" @dev Validates signatures of the given data hash at the given timestamp.\n @param router The router storage.\n @param routerTransientStorage The router transient storage slot for this validation.\n @param _dataHash The hash of the data to validate signatures for.\n @param _signatureType The type of signatures to validate.\n @param _signatures The signatures to validate.\n @param ts The timestamp at which to validate signatures."},"implemented":true,"kind":"function","modifiers":[],"name":"validateSignaturesAt","nameLocation":"24613:20:169","parameters":{"id":83568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83555,"mutability":"mutable","name":"router","nameLocation":"24667:6:169","nodeType":"VariableDeclaration","scope":83801,"src":"24643:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83554,"nodeType":"UserDefinedTypeName","pathNode":{"id":83553,"name":"IRouter.Storage","nameLocations":["24643:7:169","24651:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"24643:15:169"},"referencedDeclaration":74490,"src":"24643:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83557,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"24691:22:169","nodeType":"VariableDeclaration","scope":83801,"src":"24683:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24683:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83559,"mutability":"mutable","name":"_dataHash","nameLocation":"24731:9:169","nodeType":"VariableDeclaration","scope":83801,"src":"24723:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24723:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83562,"mutability":"mutable","name":"_signatureType","nameLocation":"24764:14:169","nodeType":"VariableDeclaration","scope":83801,"src":"24750:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"typeName":{"id":83561,"nodeType":"UserDefinedTypeName","pathNode":{"id":83560,"name":"SignatureType","nameLocations":["24750:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83233,"src":"24750:13:169"},"referencedDeclaration":83233,"src":"24750:13:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83565,"mutability":"mutable","name":"_signatures","nameLocation":"24805:11:169","nodeType":"VariableDeclaration","scope":83801,"src":"24788:28:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83563,"name":"bytes","nodeType":"ElementaryTypeName","src":"24788:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83564,"nodeType":"ArrayTypeName","src":"24788:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":83567,"mutability":"mutable","name":"ts","nameLocation":"24834:2:169","nodeType":"VariableDeclaration","scope":83801,"src":"24826:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83566,"name":"uint256","nodeType":"ElementaryTypeName","src":"24826:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24633:209:169"},"returnParameters":{"id":83571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83801,"src":"24861:4:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83569,"name":"bool","nodeType":"ElementaryTypeName","src":"24861:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24860:6:169"},"scope":84099,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":83818,"nodeType":"FunctionDefinition","src":"28536:166:169","nodes":[],"body":{"id":83817,"nodeType":"Block","src":"28641:61:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83812,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"28671:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83813,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28679:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28685:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"28679:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83811,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83873,"src":"28658:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28658:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":83810,"id":83816,"nodeType":"Return","src":"28651:44:169"}]},"documentation":{"id":83802,"nodeType":"StructuredDocumentation","src":"28423:108:169","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"28545:20:169","parameters":{"id":83806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83805,"mutability":"mutable","name":"router","nameLocation":"28590:6:169","nodeType":"VariableDeclaration","scope":83818,"src":"28566:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83804,"nodeType":"UserDefinedTypeName","pathNode":{"id":83803,"name":"IRouter.Storage","nameLocations":["28566:7:169","28574:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28566:15:169"},"referencedDeclaration":74490,"src":"28566:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28565:32:169"},"returnParameters":{"id":83810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83818,"src":"28621:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83808,"nodeType":"UserDefinedTypeName","pathNode":{"id":83807,"name":"Validators","nameLocations":["28621:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"28621:10:169"},"referencedDeclaration":82928,"src":"28621:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28620:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83845,"nodeType":"FunctionDefinition","src":"28908:322:169","nodes":[],"body":{"id":83844,"nodeType":"Block","src":"29014:216:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83829,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29054:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83830,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29062:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29068:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"29062:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83828,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83940,"src":"29028:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":83832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29028:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83842,"nodeType":"Block","src":"29155:69:169","statements":[{"expression":{"expression":{"expression":{"id":83838,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29176:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29183:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29176:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29202:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"29176:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83827,"id":83841,"nodeType":"Return","src":"29169:44:169"}]},"id":83843,"nodeType":"IfStatement","src":"29024:200:169","trueBody":{"id":83837,"nodeType":"Block","src":"29080:69:169","statements":[{"expression":{"expression":{"expression":{"id":83833,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29101:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29108:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29101:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29127:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"29101:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83827,"id":83836,"nodeType":"Return","src":"29094:44:169"}]}}]},"documentation":{"id":83819,"nodeType":"StructuredDocumentation","src":"28708:195:169","text":" @dev Returns previous era validators, if there is no previous era,\n then returns free validators slot, which must be zeroed.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"previousEraValidators","nameLocation":"28917:21:169","parameters":{"id":83823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83822,"mutability":"mutable","name":"router","nameLocation":"28963:6:169","nodeType":"VariableDeclaration","scope":83845,"src":"28939:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83821,"nodeType":"UserDefinedTypeName","pathNode":{"id":83820,"name":"IRouter.Storage","nameLocations":["28939:7:169","28947:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28939:15:169"},"referencedDeclaration":74490,"src":"28939:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28938:32:169"},"returnParameters":{"id":83827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83845,"src":"28994:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83825,"nodeType":"UserDefinedTypeName","pathNode":{"id":83824,"name":"Validators","nameLocations":["28994:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"28994:10:169"},"referencedDeclaration":82928,"src":"28994:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28993:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83873,"nodeType":"FunctionDefinition","src":"29367:312:169","nodes":[],"body":{"id":83872,"nodeType":"Block","src":"29476:203:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29516:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83859,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83851,"src":"29524:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83857,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83940,"src":"29490:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":83860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29490:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83870,"nodeType":"Block","src":"29604:69:169","statements":[{"expression":{"expression":{"expression":{"id":83866,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29625:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29632:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29625:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29651:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"29625:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83856,"id":83869,"nodeType":"Return","src":"29618:44:169"}]},"id":83871,"nodeType":"IfStatement","src":"29486:187:169","trueBody":{"id":83865,"nodeType":"Block","src":"29529:69:169","statements":[{"expression":{"expression":{"expression":{"id":83861,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29550:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29557:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29550:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29576:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"29550:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83856,"id":83864,"nodeType":"Return","src":"29543:44:169"}]}}]},"documentation":{"id":83846,"nodeType":"StructuredDocumentation","src":"29236:126:169","text":" @dev Returns validators at the given timestamp.\n @param ts Timestamp for which to get the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsAt","nameLocation":"29376:12:169","parameters":{"id":83852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83849,"mutability":"mutable","name":"router","nameLocation":"29413:6:169","nodeType":"VariableDeclaration","scope":83873,"src":"29389:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83848,"nodeType":"UserDefinedTypeName","pathNode":{"id":83847,"name":"IRouter.Storage","nameLocations":["29389:7:169","29397:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"29389:15:169"},"referencedDeclaration":74490,"src":"29389:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83851,"mutability":"mutable","name":"ts","nameLocation":"29429:2:169","nodeType":"VariableDeclaration","scope":83873,"src":"29421:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83850,"name":"uint256","nodeType":"ElementaryTypeName","src":"29421:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29388:44:169"},"returnParameters":{"id":83856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83873,"src":"29456:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83854,"nodeType":"UserDefinedTypeName","pathNode":{"id":83853,"name":"Validators","nameLocations":["29456:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"29456:10:169"},"referencedDeclaration":82928,"src":"29456:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29455:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83940,"nodeType":"FunctionDefinition","src":"30086:863:169","nodes":[],"body":{"id":83939,"nodeType":"Block","src":"30230:719:169","nodes":[],"statements":[{"assignments":[83885],"declarations":[{"constant":false,"id":83885,"mutability":"mutable","name":"ts0","nameLocation":"30248:3:169","nodeType":"VariableDeclaration","scope":83939,"src":"30240:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83884,"name":"uint256","nodeType":"ElementaryTypeName","src":"30240:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83890,"initialValue":{"expression":{"expression":{"expression":{"id":83886,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83877,"src":"30254:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30261:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"30254:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30280:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"30254:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"id":83889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30292:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"30254:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30240:68:169"},{"assignments":[83892],"declarations":[{"constant":false,"id":83892,"mutability":"mutable","name":"ts1","nameLocation":"30326:3:169","nodeType":"VariableDeclaration","scope":83939,"src":"30318:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83891,"name":"uint256","nodeType":"ElementaryTypeName","src":"30318:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83897,"initialValue":{"expression":{"expression":{"expression":{"id":83893,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83877,"src":"30332:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30339:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"30332:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30358:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"30332:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"id":83896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30370:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"30332:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30318:68:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83899,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30460:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":83900,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30467:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30460:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83902,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82898,"src":"30472:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30472:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83898,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30452:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30452:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83905,"nodeType":"ExpressionStatement","src":"30452:50:169"},{"assignments":[83907],"declarations":[{"constant":false,"id":83907,"mutability":"mutable","name":"ts1Greater","nameLocation":"30518:10:169","nodeType":"VariableDeclaration","scope":83939,"src":"30513:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83906,"name":"bool","nodeType":"ElementaryTypeName","src":"30513:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83911,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83908,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30531:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83909,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30537:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30531:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30513:27:169"},{"assignments":[83913],"declarations":[{"constant":false,"id":83913,"mutability":"mutable","name":"tsGe0","nameLocation":"30555:5:169","nodeType":"VariableDeclaration","scope":83939,"src":"30550:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83912,"name":"bool","nodeType":"ElementaryTypeName","src":"30550:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83917,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83914,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30563:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83915,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83879,"src":"30570:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30563:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30550:22:169"},{"assignments":[83919],"declarations":[{"constant":false,"id":83919,"mutability":"mutable","name":"tsGe1","nameLocation":"30587:5:169","nodeType":"VariableDeclaration","scope":83939,"src":"30582:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83918,"name":"bool","nodeType":"ElementaryTypeName","src":"30582:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83923,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83920,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30595:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83921,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83879,"src":"30602:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30595:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30582:22:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83925,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83913,"src":"30696:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":83926,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83919,"src":"30705:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30696:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83928,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82901,"src":"30712:30:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30712:32:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83924,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30688:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30688:57:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83931,"nodeType":"ExpressionStatement","src":"30688:57:169"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83932,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83907,"src":"30912:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83933,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83913,"src":"30927:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83934,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83919,"src":"30936:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30927:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":83936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30926:16:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30912:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83883,"id":83938,"nodeType":"Return","src":"30905:37:169"}]},"documentation":{"id":83874,"nodeType":"StructuredDocumentation","src":"29685:396:169","text":" @dev Returns `true` if validators at `ts` are stored in `router.validationSettings.validators1`.\n `false` means that current era validators are stored in `router.validationSettings.validators0`.\n @param ts Timestamp for which to check the validators slot.\n @return isSlot1 Whether validators at `ts` are stored in `router.validationSettings.validators1`."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsStoredInSlot1At","nameLocation":"30095:25:169","parameters":{"id":83880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83877,"mutability":"mutable","name":"router","nameLocation":"30145:6:169","nodeType":"VariableDeclaration","scope":83940,"src":"30121:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83876,"nodeType":"UserDefinedTypeName","pathNode":{"id":83875,"name":"IRouter.Storage","nameLocations":["30121:7:169","30129:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"30121:15:169"},"referencedDeclaration":74490,"src":"30121:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83879,"mutability":"mutable","name":"ts","nameLocation":"30161:2:169","nodeType":"VariableDeclaration","scope":83940,"src":"30153:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83878,"name":"uint256","nodeType":"ElementaryTypeName","src":"30153:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30120:44:169"},"returnParameters":{"id":83883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83882,"mutability":"mutable","name":"isSlot1","nameLocation":"30217:7:169","nodeType":"VariableDeclaration","scope":83940,"src":"30212:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83881,"name":"bool","nodeType":"ElementaryTypeName","src":"30212:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30211:14:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83986,"nodeType":"FunctionDefinition","src":"31451:456:169","nodes":[],"body":{"id":83985,"nodeType":"Block","src":"31634:273:169","nodes":[],"statements":[{"assignments":[83953],"declarations":[{"constant":false,"id":83953,"mutability":"mutable","name":"a","nameLocation":"31652:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31644:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83952,"name":"uint256","nodeType":"ElementaryTypeName","src":"31644:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83954,"nodeType":"VariableDeclarationStatement","src":"31644:9:169"},{"id":83961,"nodeType":"UncheckedBlock","src":"31663:76:169","statements":[{"expression":{"id":83959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83955,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31687:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83956,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83943,"src":"31691:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":83957,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83945,"src":"31710:18:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31691:37:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31687:41:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83960,"nodeType":"ExpressionStatement","src":"31687:41:169"}]},{"assignments":[83963],"declarations":[{"constant":false,"id":83963,"mutability":"mutable","name":"d","nameLocation":"31756:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31748:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83962,"name":"uint256","nodeType":"ElementaryTypeName","src":"31748:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83967,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83964,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31760:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":83965,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83947,"src":"31764:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31760:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31748:36:169"},{"assignments":[83969],"declarations":[{"constant":false,"id":83969,"mutability":"mutable","name":"r","nameLocation":"31802:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31794:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83968,"name":"uint256","nodeType":"ElementaryTypeName","src":"31794:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83973,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83970,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31806:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":83971,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83947,"src":"31810:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31806:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31794:36:169"},{"id":83984,"nodeType":"UncheckedBlock","src":"31840:61:169","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83974,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83969,"src":"31872:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":83975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31876:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31872:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":83977,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31871:7:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83981,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83963,"src":"31889:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31871:19:169","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83978,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83963,"src":"31881:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31885:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"31881:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83951,"id":83983,"nodeType":"Return","src":"31864:26:169"}]}]},"documentation":{"id":83941,"nodeType":"StructuredDocumentation","src":"30955:491:169","text":" @dev Calculates the threshold number of valid signatures required.\n The formula is:\n - `(validatorsAmount * thresholdNumerator).div_ceil(thresholdDenominator)`\n @param validatorsAmount The total number of validators.\n @param thresholdNumerator The numerator of the threshold fraction.\n @param thresholdDenominator The denominator of the threshold fraction.\n @return threshold The threshold number of valid signatures required."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"31460:19:169","parameters":{"id":83948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83943,"mutability":"mutable","name":"validatorsAmount","nameLocation":"31488:16:169","nodeType":"VariableDeclaration","scope":83986,"src":"31480:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83942,"name":"uint256","nodeType":"ElementaryTypeName","src":"31480:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83945,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"31514:18:169","nodeType":"VariableDeclaration","scope":83986,"src":"31506:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83944,"name":"uint128","nodeType":"ElementaryTypeName","src":"31506:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83947,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"31542:20:169","nodeType":"VariableDeclaration","scope":83986,"src":"31534:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83946,"name":"uint128","nodeType":"ElementaryTypeName","src":"31534:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"31479:84:169"},"returnParameters":{"id":83951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83950,"mutability":"mutable","name":"threshold","nameLocation":"31619:9:169","nodeType":"VariableDeclaration","scope":83986,"src":"31611:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83949,"name":"uint256","nodeType":"ElementaryTypeName","src":"31611:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31610:19:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":84009,"nodeType":"FunctionDefinition","src":"32092:179:169","nodes":[],"body":{"id":84008,"nodeType":"Block","src":"32188:83:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83997,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83992,"src":"32206:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":83998,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"32211:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32218:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"32211:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32231:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"32211:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"32206:34:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84002,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32205:36:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84003,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"32244:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32251:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"32244:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32261:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"32244:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32205:59:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83996,"id":84007,"nodeType":"Return","src":"32198:66:169"}]},"documentation":{"id":83987,"nodeType":"StructuredDocumentation","src":"31913:174:169","text":" @dev Returns the era index for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era index."},"implemented":true,"kind":"function","modifiers":[],"name":"eraIndexAt","nameLocation":"32101:10:169","parameters":{"id":83993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83990,"mutability":"mutable","name":"router","nameLocation":"32136:6:169","nodeType":"VariableDeclaration","scope":84009,"src":"32112:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83989,"nodeType":"UserDefinedTypeName","pathNode":{"id":83988,"name":"IRouter.Storage","nameLocations":["32112:7:169","32120:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"32112:15:169"},"referencedDeclaration":74490,"src":"32112:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83992,"mutability":"mutable","name":"ts","nameLocation":"32152:2:169","nodeType":"VariableDeclaration","scope":84009,"src":"32144:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83991,"name":"uint256","nodeType":"ElementaryTypeName","src":"32144:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32111:44:169"},"returnParameters":{"id":83996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84009,"src":"32179:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83994,"name":"uint256","nodeType":"ElementaryTypeName","src":"32179:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32178:9:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84034,"nodeType":"FunctionDefinition","src":"32487:199:169","nodes":[],"body":{"id":84033,"nodeType":"Block","src":"32585:101:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84020,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32602:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32609:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"32602:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32622:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"32602:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":84024,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32645:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84025,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84015,"src":"32653:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84023,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84009,"src":"32634:10:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32634:22:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":84027,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32659:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32666:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"32659:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32676:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"32659:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32634:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32602:77:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84019,"id":84032,"nodeType":"Return","src":"32595:84:169"}]},"documentation":{"id":84010,"nodeType":"StructuredDocumentation","src":"32277:205:169","text":" @dev Returns the timestamp when the era started for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era start timestamp."},"implemented":true,"kind":"function","modifiers":[],"name":"eraStartedAt","nameLocation":"32496:12:169","parameters":{"id":84016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84013,"mutability":"mutable","name":"router","nameLocation":"32533:6:169","nodeType":"VariableDeclaration","scope":84034,"src":"32509:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84012,"nodeType":"UserDefinedTypeName","pathNode":{"id":84011,"name":"IRouter.Storage","nameLocations":["32509:7:169","32517:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"32509:15:169"},"referencedDeclaration":74490,"src":"32509:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84015,"mutability":"mutable","name":"ts","nameLocation":"32549:2:169","nodeType":"VariableDeclaration","scope":84034,"src":"32541:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84014,"name":"uint256","nodeType":"ElementaryTypeName","src":"32541:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32508:44:169"},"returnParameters":{"id":84019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84034,"src":"32576:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84017,"name":"uint256","nodeType":"ElementaryTypeName","src":"32576:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32575:9:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84057,"nodeType":"FunctionDefinition","src":"33026:467:169","nodes":[],"body":{"id":84056,"nodeType":"Block","src":"33172:321:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":84046,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33244:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33255:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"33244:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":84048,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33330:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33341:40:169","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"33330:51:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":84050,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33401:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33412:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"33401:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":84052,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33448:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33459:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"33448:27:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84044,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"33189:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":84045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33194:14:169","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":82940,"src":"33189:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$82940_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":84054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["33223:19:169","33288:40:169","33395:4:169","33430:16:169"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"33189:297:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":84043,"id":84055,"nodeType":"Return","src":"33182:304:169"}]},"documentation":{"id":84035,"nodeType":"StructuredDocumentation","src":"32692:329:169","text":" @dev Converts `Gear.Validators` storage to `Gear.ValidatorsView` struct.\n Note that `validators.map` is passed as `validators.list`.\n @param validators The `Gear.Validators` storage to convert.\n @return validatorsView `Gear.ValidatorsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"33035:6:169","parameters":{"id":84039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84038,"mutability":"mutable","name":"validators","nameLocation":"33066:10:169","nodeType":"VariableDeclaration","scope":84057,"src":"33042:34:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84037,"nodeType":"UserDefinedTypeName","pathNode":{"id":84036,"name":"Gear.Validators","nameLocations":["33042:4:169","33047:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"33042:15:169"},"referencedDeclaration":82928,"src":"33042:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"33041:36:169"},"returnParameters":{"id":84043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84042,"mutability":"mutable","name":"validatorsView","nameLocation":"33152:14:169","nodeType":"VariableDeclaration","scope":84057,"src":"33125:41:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84041,"nodeType":"UserDefinedTypeName","pathNode":{"id":84040,"name":"Gear.ValidatorsView","nameLocations":["33125:4:169","33130:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"33125:19:169"},"referencedDeclaration":82940,"src":"33125:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"33124:43:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84098,"nodeType":"FunctionDefinition","src":"33790:581:169","nodes":[],"body":{"id":84097,"nodeType":"Block","src":"33948:423:169","nodes":[],"statements":[{"assignments":[84071],"declarations":[{"constant":false,"id":84071,"mutability":"mutable","name":"validators0","nameLocation":"33985:11:169","nodeType":"VariableDeclaration","scope":84097,"src":"33958:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84070,"nodeType":"UserDefinedTypeName","pathNode":{"id":84069,"name":"Gear.ValidatorsView","nameLocations":["33958:4:169","33963:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"33958:19:169"},"referencedDeclaration":82940,"src":"33958:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84076,"initialValue":{"arguments":[{"expression":{"id":84073,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34006:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34015:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"34006:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}],"id":84072,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84057,84098],"referencedDeclaration":84057,"src":"33999:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$82928_storage_ptr_$returns$_t_struct$_ValidatorsView_$82940_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33999:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"33958:69:169"},{"assignments":[84081],"declarations":[{"constant":false,"id":84081,"mutability":"mutable","name":"validators1","nameLocation":"34064:11:169","nodeType":"VariableDeclaration","scope":84097,"src":"34037:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84080,"nodeType":"UserDefinedTypeName","pathNode":{"id":84079,"name":"Gear.ValidatorsView","nameLocations":["34037:4:169","34042:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"34037:19:169"},"referencedDeclaration":82940,"src":"34037:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84086,"initialValue":{"arguments":[{"expression":{"id":84083,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34085:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34094:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"34085:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}],"id":84082,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84057,84098],"referencedDeclaration":84057,"src":"34078:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$82928_storage_ptr_$returns$_t_struct$_ValidatorsView_$82940_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34078:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34037:69:169"},{"expression":{"arguments":[{"expression":{"id":84089,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34185:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34194:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"34185:27:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":84091,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34248:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34257:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"34248:29:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84093,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84071,"src":"34304:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":84094,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84081,"src":"34342:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":84087,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"34123:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":84088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34128:22:169","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":83199,"src":"34123:27:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$83199_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":84095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["34165:18:169","34226:20:169","34291:11:169","34329:11:169"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"34123:241:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":84066,"id":84096,"nodeType":"Return","src":"34116:248:169"}]},"documentation":{"id":84058,"nodeType":"StructuredDocumentation","src":"33499:286:169","text":" @dev Converts `Gear.ValidationSettings` storage to `Gear.ValidationSettingsView` struct.\n @param settings The `Gear.ValidationSettings` storage to convert.\n @return settingsView `Gear.ValidationSettingsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"33799:6:169","parameters":{"id":84062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84061,"mutability":"mutable","name":"settings","nameLocation":"33838:8:169","nodeType":"VariableDeclaration","scope":84098,"src":"33806:40:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":84060,"nodeType":"UserDefinedTypeName","pathNode":{"id":84059,"name":"Gear.ValidationSettings","nameLocations":["33806:4:169","33811:18:169"],"nodeType":"IdentifierPath","referencedDeclaration":83187,"src":"33806:23:169"},"referencedDeclaration":83187,"src":"33806:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"33805:42:169"},"returnParameters":{"id":84066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84065,"mutability":"mutable","name":"settingsView","nameLocation":"33930:12:169","nodeType":"VariableDeclaration","scope":84098,"src":"33895:47:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":84064,"nodeType":"UserDefinedTypeName","pathNode":{"id":84063,"name":"Gear.ValidationSettingsView","nameLocations":["33895:4:169","33900:22:169"],"nodeType":"IdentifierPath","referencedDeclaration":83199,"src":"33895:27:169"},"referencedDeclaration":83199,"src":"33895:27:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"33894:49:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":82854,"nodeType":"StructuredDocumentation","src":"744:770:169","text":" @dev Library for core protocol utility functions for hashing, validation, and consensus-related logic.\n It provides:\n - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions)\n - Validator set management with era-based switching and threshold configuration\n - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures\n with transient storage to prevent double counting of signatures\n - Era and timeline utilities for selecting correct validator sets based on timestamp\n The library acts as a shared foundation for consensus, validation, and commitment verification\n across all protocol components."},"fullyImplemented":true,"linearizedBaseContracts":[84099],"name":"Gear","nameLocation":"1523:4:169","scope":84100,"usedErrors":[82883,82886,82889,82892,82895,82898,82901],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":169} \ No newline at end of file +{"abi":[{"type":"function","name":"COMPUTATION_THRESHOLD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"WVARA_PER_SECOND","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760a19081601c823930815050f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1555:34533:169:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1555:34533:169:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1555:34533:169;;;;;;;2111:1;1555:34533;;;;;;;;;;-1:-1:-1;;1555:34533:169;;;;;;;1895:13;1555:34533;;;;;;-1:-1:-1;;1555:34533:169;;;;;;;2423:18;1555:34533;;;;;;-1:-1:-1;;1555:34533:169;;;;;2243:1;1555:34533;;;","linkReferences":{}},"methodIdentifiers":{"COMPUTATION_THRESHOLD()":"7841919a","VALIDATORS_THRESHOLD_DENOMINATOR()":"0279472c","VALIDATORS_THRESHOLD_NUMERATOR()":"db3fe3f1","WVARA_PER_SECOND()":"2c184e1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"COMPUTATION_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WVARA_PER_SECOND\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Library for core protocol utility functions for hashing, validation, and consensus-related logic. It provides: - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions) - Validator set management with era-based switching and threshold configuration - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures with transient storage to prevent double counting of signatures - Era and timeline utilities for selecting correct validator sets based on timestamp The library acts as a shared foundation for consensus, validation, and commitment verification across all protocol components.\",\"errors\":{\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"COMPUTATION_THRESHOLD\":{\"details\":\"The threshold for computation cost in gear gas. 2.5 * (10 ** 9) of gear gas.\"},\"MAILBOXED_MESSAGE\":{\"details\":\"Mailboxed message discriminant.\"},\"REPLY_MESSAGE\":{\"details\":\"Reply message discriminant.\"},\"VALIDATORS_THRESHOLD_DENOMINATOR\":{\"details\":\"The validators threshold denominator.\"},\"VALIDATORS_THRESHOLD_NUMERATOR\":{\"details\":\"2/3 of validators must sign the commitment for it to be valid.The validators threshold numerator.\"},\"VALUE_CLAIM\":{\"details\":\"Value claim discriminant.\"},\"WVARA_PER_SECOND\":{\"details\":\"The amount of WVara tokens to be paid per compute second. 10 WVARA tokens per compute second.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Gear.sol\":\"Gear\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19\",\"dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd\",\"dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"stateMutability":"view","type":"function","name":"COMPUTATION_THRESHOLD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WVARA_PER_SECOND","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libraries/Gear.sol":"Gear"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4","urls":["bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19","dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d","urls":["bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd","dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":86835,"exportedSymbols":{"ECDSA":[9016],"FROST":[61980],"Gear":[86834],"Hashes":[62498],"IRouter":[76958],"MessageHashUtils":[10300],"SafeCast":[13734],"SlotDerivation":[6724],"Time":[18907],"TransientSlot":[8557]},"nodeType":"SourceUnit","src":"114:35975:169","nodes":[{"id":85501,"nodeType":"PragmaDirective","src":"114:24:169","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":85503,"nodeType":"ImportDirective","src":"140:80:169","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":85502,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"148:14:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85505,"nodeType":"ImportDirective","src":"221:78:169","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":8558,"symbolAliases":[{"foreign":{"id":85504,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"229:13:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85507,"nodeType":"ImportDirective","src":"300:75:169","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":9017,"symbolAliases":[{"foreign":{"id":85506,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"308:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85509,"nodeType":"ImportDirective","src":"376:97:169","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":10301,"symbolAliases":[{"foreign":{"id":85508,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10300,"src":"384:16:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85511,"nodeType":"ImportDirective","src":"474:73:169","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":13735,"symbolAliases":[{"foreign":{"id":85510,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"482:8:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85513,"nodeType":"ImportDirective","src":"548:66:169","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":18908,"symbolAliases":[{"foreign":{"id":85512,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"556:4:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85515,"nodeType":"ImportDirective","src":"615:52:169","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":61981,"symbolAliases":[{"foreign":{"id":85514,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61980,"src":"623:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85517,"nodeType":"ImportDirective","src":"668:73:169","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":62499,"symbolAliases":[{"foreign":{"id":85516,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62498,"src":"676:6:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85519,"nodeType":"ImportDirective","src":"742:40:169","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":86835,"sourceUnit":76959,"symbolAliases":[{"foreign":{"id":85518,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76958,"src":"750:7:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86834,"nodeType":"ContractDefinition","src":"1555:34533:169","nodes":[{"id":85523,"nodeType":"UsingForDirective","src":"1574:24:169","nodes":[],"global":false,"libraryName":{"id":85521,"name":"ECDSA","nameLocations":["1580:5:169"],"nodeType":"IdentifierPath","referencedDeclaration":9016,"src":"1580:5:169"},"typeName":{"id":85522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1590:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":85526,"nodeType":"UsingForDirective","src":"1603:35:169","nodes":[],"global":false,"libraryName":{"id":85524,"name":"MessageHashUtils","nameLocations":["1609:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":10300,"src":"1609:16:169"},"typeName":{"id":85525,"name":"address","nodeType":"ElementaryTypeName","src":"1630:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":85528,"nodeType":"UsingForDirective","src":"1644:26:169","nodes":[],"global":false,"libraryName":{"id":85527,"name":"TransientSlot","nameLocations":["1650:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":8557,"src":"1650:13:169"}},{"id":85530,"nodeType":"UsingForDirective","src":"1675:27:169","nodes":[],"global":false,"libraryName":{"id":85529,"name":"SlotDerivation","nameLocations":["1681:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":6724,"src":"1681:14:169"}},{"id":85534,"nodeType":"VariableDeclaration","src":"1848:60:169","nodes":[],"constant":true,"documentation":{"id":85531,"nodeType":"StructuredDocumentation","src":"1731:112:169","text":" @dev The threshold for computation cost in gear gas.\n 2.5 * (10 ** 9) of gear gas."},"functionSelector":"7841919a","mutability":"constant","name":"COMPUTATION_THRESHOLD","nameLocation":"1871:21:169","scope":86834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":85532,"name":"uint64","nodeType":"ElementaryTypeName","src":"1848:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":85533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1895:13:169","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":85538,"nodeType":"VariableDeclaration","src":"2054:58:169","nodes":[],"constant":true,"documentation":{"id":85535,"nodeType":"StructuredDocumentation","src":"1915:134:169","text":" @dev 2/3 of validators must sign the commitment for it to be valid.\n @dev The validators threshold numerator."},"functionSelector":"db3fe3f1","mutability":"constant","name":"VALIDATORS_THRESHOLD_NUMERATOR","nameLocation":"2078:30:169","scope":86834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85536,"name":"uint128","nodeType":"ElementaryTypeName","src":"2054:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":85537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2111:1:169","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":85542,"nodeType":"VariableDeclaration","src":"2184:60:169","nodes":[],"constant":true,"documentation":{"id":85539,"nodeType":"StructuredDocumentation","src":"2118:61:169","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2208:32:169","scope":86834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85540,"name":"uint128","nodeType":"ElementaryTypeName","src":"2184:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":85541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2243:1:169","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":85546,"nodeType":"VariableDeclaration","src":"2380:61:169","nodes":[],"constant":true,"documentation":{"id":85543,"nodeType":"StructuredDocumentation","src":"2251:124:169","text":" @dev The amount of WVara tokens to be paid per compute second.\n 10 WVARA tokens per compute second."},"functionSelector":"2c184e1c","mutability":"constant","name":"WVARA_PER_SECOND","nameLocation":"2404:16:169","scope":86834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85544,"name":"uint128","nodeType":"ElementaryTypeName","src":"2380:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":85545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2423:18:169","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":85550,"nodeType":"VariableDeclaration","src":"2508:48:169","nodes":[],"constant":true,"documentation":{"id":85547,"nodeType":"StructuredDocumentation","src":"2448:55:169","text":" @dev Mailboxed message discriminant."},"mutability":"constant","name":"MAILBOXED_MESSAGE","nameLocation":"2532:17:169","scope":86834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":85548,"name":"uint8","nodeType":"ElementaryTypeName","src":"2508:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783030","id":85549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2552:4:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"internal"},{"id":85554,"nodeType":"VariableDeclaration","src":"2618:44:169","nodes":[],"constant":true,"documentation":{"id":85551,"nodeType":"StructuredDocumentation","src":"2562:51:169","text":" @dev Reply message discriminant."},"mutability":"constant","name":"REPLY_MESSAGE","nameLocation":"2642:13:169","scope":86834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":85552,"name":"uint8","nodeType":"ElementaryTypeName","src":"2618:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783031","id":85553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2658:4:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"id":85558,"nodeType":"VariableDeclaration","src":"2722:42:169","nodes":[],"constant":true,"documentation":{"id":85555,"nodeType":"StructuredDocumentation","src":"2668:49:169","text":" @dev Value claim discriminant."},"mutability":"constant","name":"VALUE_CLAIM","nameLocation":"2746:11:169","scope":86834,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":85556,"name":"uint8","nodeType":"ElementaryTypeName","src":"2722:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783032","id":85557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2760:4:169","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"internal"},{"id":85561,"nodeType":"ErrorDefinition","src":"2891:32:169","nodes":[],"documentation":{"id":85559,"nodeType":"StructuredDocumentation","src":"2791:95:169","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2897:23:169","parameters":{"id":85560,"nodeType":"ParameterList","parameters":[],"src":"2920:2:169"}},{"id":85564,"nodeType":"ErrorDefinition","src":"3015:38:169","nodes":[],"documentation":{"id":85562,"nodeType":"StructuredDocumentation","src":"2929:81:169","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"3021:29:169","parameters":{"id":85563,"nodeType":"ParameterList","parameters":[],"src":"3050:2:169"}},{"id":85567,"nodeType":"ErrorDefinition","src":"3131:26:169","nodes":[],"documentation":{"id":85565,"nodeType":"StructuredDocumentation","src":"3059:67:169","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"3137:17:169","parameters":{"id":85566,"nodeType":"ParameterList","parameters":[],"src":"3154:2:169"}},{"id":85570,"nodeType":"ErrorDefinition","src":"3246:35:169","nodes":[],"documentation":{"id":85568,"nodeType":"StructuredDocumentation","src":"3163:78:169","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"3252:26:169","parameters":{"id":85569,"nodeType":"ParameterList","parameters":[],"src":"3278:2:169"}},{"id":85573,"nodeType":"ErrorDefinition","src":"3400:36:169","nodes":[],"documentation":{"id":85571,"nodeType":"StructuredDocumentation","src":"3287:108:169","text":" @dev Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes."},"errorSelector":"2ce466bf","name":"InvalidFrostSignatureLength","nameLocation":"3406:27:169","parameters":{"id":85572,"nodeType":"ParameterList","parameters":[],"src":"3433:2:169"}},{"id":85576,"nodeType":"ErrorDefinition","src":"3614:36:169","nodes":[],"documentation":{"id":85574,"nodeType":"StructuredDocumentation","src":"3442:167:169","text":" @dev Thrown when the timestamp of an era is equal to the timestamp of the previous era.\n Should never happen, because the implementation."},"errorSelector":"f26224af","name":"ErasTimestampMustNotBeEqual","nameLocation":"3620:27:169","parameters":{"id":85575,"nodeType":"ParameterList","parameters":[],"src":"3647:2:169"}},{"id":85579,"nodeType":"ErrorDefinition","src":"3804:39:169","nodes":[],"documentation":{"id":85577,"nodeType":"StructuredDocumentation","src":"3656:143:169","text":" @dev Thrown when no validators are found for a given timestamp.\n Should never happen, because the implementation."},"errorSelector":"98715d2a","name":"ValidatorsNotFoundForTimestamp","nameLocation":"3810:30:169","parameters":{"id":85578,"nodeType":"ParameterList","parameters":[],"src":"3840:2:169"}},{"id":85585,"nodeType":"StructDefinition","src":"4131:72:169","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":85580,"nodeType":"StructuredDocumentation","src":"3870:256:169","text":" @dev Represents an aggregated public key.\n When present (`hasAggregatedPublicKey` is `true`), it is checked with `FROST.isValidPublicKey(x, y)` in `Router._resetValidators(...)`,\n so we can be sure that it is valid."},"members":[{"constant":false,"id":85582,"mutability":"mutable","name":"x","nameLocation":"4176:1:169","nodeType":"VariableDeclaration","scope":85585,"src":"4168:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85581,"name":"uint256","nodeType":"ElementaryTypeName","src":"4168:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85584,"mutability":"mutable","name":"y","nameLocation":"4195:1:169","nodeType":"VariableDeclaration","scope":85585,"src":"4187:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85583,"name":"uint256","nodeType":"ElementaryTypeName","src":"4187:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"4138:19:169","scope":86834,"visibility":"public"},{"id":85606,"nodeType":"StructDefinition","src":"4272:1200:169","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":85586,"nodeType":"StructuredDocumentation","src":"4209:58:169","text":" @dev Represents validators information."},"members":[{"constant":false,"id":85590,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4662:19:169","nodeType":"VariableDeclaration","scope":85606,"src":"4642:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":85589,"nodeType":"UserDefinedTypeName","pathNode":{"id":85588,"name":"AggregatedPublicKey","nameLocations":["4642:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":85585,"src":"4642:19:169"},"referencedDeclaration":85585,"src":"4642:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":85593,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4989:40:169","nodeType":"VariableDeclaration","scope":85606,"src":"4981:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85592,"name":"address","nodeType":"ElementaryTypeName","src":"4981:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85598,"mutability":"mutable","name":"map","nameLocation":"5247:3:169","nodeType":"VariableDeclaration","scope":85606,"src":"5222:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":85597,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":85595,"name":"address","nodeType":"ElementaryTypeName","src":"5230:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"5222:24:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":85596,"name":"bool","nodeType":"ElementaryTypeName","src":"5241:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":85602,"mutability":"mutable","name":"list","nameLocation":"5339:4:169","nodeType":"VariableDeclaration","scope":85606,"src":"5329:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":85600,"name":"address","nodeType":"ElementaryTypeName","src":"5329:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85601,"nodeType":"ArrayTypeName","src":"5329:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":85605,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5449:16:169","nodeType":"VariableDeclaration","scope":85606,"src":"5441:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85604,"name":"uint256","nodeType":"ElementaryTypeName","src":"5441:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"4279:10:169","scope":86834,"visibility":"public"},{"id":85618,"nodeType":"StructDefinition","src":"5549:194:169","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":85607,"nodeType":"StructuredDocumentation","src":"5478:66:169","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":85610,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5601:19:169","nodeType":"VariableDeclaration","scope":85618,"src":"5581:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":85609,"nodeType":"UserDefinedTypeName","pathNode":{"id":85608,"name":"AggregatedPublicKey","nameLocations":["5581:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":85585,"src":"5581:19:169"},"referencedDeclaration":85585,"src":"5581:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":85612,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5638:40:169","nodeType":"VariableDeclaration","scope":85618,"src":"5630:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85611,"name":"address","nodeType":"ElementaryTypeName","src":"5630:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85615,"mutability":"mutable","name":"list","nameLocation":"5698:4:169","nodeType":"VariableDeclaration","scope":85618,"src":"5688:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":85613,"name":"address","nodeType":"ElementaryTypeName","src":"5688:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85614,"nodeType":"ArrayTypeName","src":"5688:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":85617,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5720:16:169","nodeType":"VariableDeclaration","scope":85618,"src":"5712:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85616,"name":"uint256","nodeType":"ElementaryTypeName","src":"5712:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5556:14:169","scope":86834,"visibility":"public"},{"id":85629,"nodeType":"StructDefinition","src":"5814:353:169","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":85619,"nodeType":"StructuredDocumentation","src":"5749:60:169","text":" @dev Represents address book information."},"members":[{"constant":false,"id":85622,"mutability":"mutable","name":"mirror","nameLocation":"5929:6:169","nodeType":"VariableDeclaration","scope":85629,"src":"5921:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85621,"name":"address","nodeType":"ElementaryTypeName","src":"5921:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85625,"mutability":"mutable","name":"wrappedVara","nameLocation":"6036:11:169","nodeType":"VariableDeclaration","scope":85629,"src":"6028:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85624,"name":"address","nodeType":"ElementaryTypeName","src":"6028:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85628,"mutability":"mutable","name":"middleware","nameLocation":"6150:10:169","nodeType":"VariableDeclaration","scope":85629,"src":"6142:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85627,"name":"address","nodeType":"ElementaryTypeName","src":"6142:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5821:11:169","scope":86834,"visibility":"public"},{"id":85637,"nodeType":"StructDefinition","src":"6229:248:169","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":85630,"nodeType":"StructuredDocumentation","src":"6173:51:169","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":85633,"mutability":"mutable","name":"id","nameLocation":"6373:2:169","nodeType":"VariableDeclaration","scope":85637,"src":"6365:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6365:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85636,"mutability":"mutable","name":"valid","nameLocation":"6465:5:169","nodeType":"VariableDeclaration","scope":85637,"src":"6460:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85635,"name":"bool","nodeType":"ElementaryTypeName","src":"6460:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"6236:14:169","scope":86834,"visibility":"public"},{"id":85650,"nodeType":"StructDefinition","src":"6540:541:169","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":85638,"nodeType":"StructuredDocumentation","src":"6483:52:169","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":85643,"mutability":"mutable","name":"transitions","nameLocation":"6682:11:169","nodeType":"VariableDeclaration","scope":85650,"src":"6664:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85843_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":85641,"nodeType":"UserDefinedTypeName","pathNode":{"id":85640,"name":"StateTransition","nameLocations":["6664:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":85843,"src":"6664:15:169"},"referencedDeclaration":85843,"src":"6664:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":85642,"nodeType":"ArrayTypeName","src":"6664:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85843_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":85646,"mutability":"mutable","name":"head","nameLocation":"6799:4:169","nodeType":"VariableDeclaration","scope":85650,"src":"6791:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6791:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85649,"mutability":"mutable","name":"lastAdvancedEthBlock","nameLocation":"7054:20:169","nodeType":"VariableDeclaration","scope":85650,"src":"7046:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7046:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6547:15:169","scope":86834,"visibility":"public"},{"id":85664,"nodeType":"StructDefinition","src":"7149:226:169","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":85651,"nodeType":"StructuredDocumentation","src":"7087:57:169","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":85653,"mutability":"mutable","name":"hasAggregatedPublicKey","nameLocation":"7192:22:169","nodeType":"VariableDeclaration","scope":85664,"src":"7187:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85652,"name":"bool","nodeType":"ElementaryTypeName","src":"7187:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":85656,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"7244:19:169","nodeType":"VariableDeclaration","scope":85664,"src":"7224:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":85655,"nodeType":"UserDefinedTypeName","pathNode":{"id":85654,"name":"AggregatedPublicKey","nameLocations":["7224:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":85585,"src":"7224:19:169"},"referencedDeclaration":85585,"src":"7224:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":85658,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"7279:33:169","nodeType":"VariableDeclaration","scope":85664,"src":"7273:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":85657,"name":"bytes","nodeType":"ElementaryTypeName","src":"7273:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":85661,"mutability":"mutable","name":"validators","nameLocation":"7332:10:169","nodeType":"VariableDeclaration","scope":85664,"src":"7322:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":85659,"name":"address","nodeType":"ElementaryTypeName","src":"7322:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":85660,"nodeType":"ArrayTypeName","src":"7322:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":85663,"mutability":"mutable","name":"eraIndex","nameLocation":"7360:8:169","nodeType":"VariableDeclaration","scope":85664,"src":"7352:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85662,"name":"uint256","nodeType":"ElementaryTypeName","src":"7352:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"7156:20:169","scope":86834,"visibility":"public"},{"id":85698,"nodeType":"StructDefinition","src":"7438:1206:169","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":85665,"nodeType":"StructuredDocumentation","src":"7381:52:169","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":85668,"mutability":"mutable","name":"blockHash","nameLocation":"7575:9:169","nodeType":"VariableDeclaration","scope":85698,"src":"7567:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7567:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85671,"mutability":"mutable","name":"blockTimestamp","nameLocation":"7703:14:169","nodeType":"VariableDeclaration","scope":85698,"src":"7696:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":85670,"name":"uint48","nodeType":"ElementaryTypeName","src":"7696:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":85674,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7816:26:169","nodeType":"VariableDeclaration","scope":85698,"src":"7808:34:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7808:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85677,"mutability":"mutable","name":"expiry","nameLocation":"8078:6:169","nodeType":"VariableDeclaration","scope":85698,"src":"8072:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":85676,"name":"uint8","nodeType":"ElementaryTypeName","src":"8072:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":85682,"mutability":"mutable","name":"chainCommitment","nameLocation":"8204:15:169","nodeType":"VariableDeclaration","scope":85698,"src":"8186:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85650_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":85680,"nodeType":"UserDefinedTypeName","pathNode":{"id":85679,"name":"ChainCommitment","nameLocations":["8186:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":85650,"src":"8186:15:169"},"referencedDeclaration":85650,"src":"8186:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":85681,"nodeType":"ArrayTypeName","src":"8186:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85650_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":85687,"mutability":"mutable","name":"codeCommitments","nameLocation":"8331:15:169","nodeType":"VariableDeclaration","scope":85698,"src":"8314:32:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$85637_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":85685,"nodeType":"UserDefinedTypeName","pathNode":{"id":85684,"name":"CodeCommitment","nameLocations":["8314:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":85637,"src":"8314:14:169"},"referencedDeclaration":85637,"src":"8314:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":85686,"nodeType":"ArrayTypeName","src":"8314:16:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$85637_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":85692,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"8470:17:169","nodeType":"VariableDeclaration","scope":85698,"src":"8450:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$85708_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":85690,"nodeType":"UserDefinedTypeName","pathNode":{"id":85689,"name":"RewardsCommitment","nameLocations":["8450:17:169"],"nodeType":"IdentifierPath","referencedDeclaration":85708,"src":"8450:17:169"},"referencedDeclaration":85708,"src":"8450:17:169","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":85691,"nodeType":"ArrayTypeName","src":"8450:19:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$85708_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":85697,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"8617:20:169","nodeType":"VariableDeclaration","scope":85698,"src":"8594:43:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$85664_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":85695,"nodeType":"UserDefinedTypeName","pathNode":{"id":85694,"name":"ValidatorsCommitment","nameLocations":["8594:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":85664,"src":"8594:20:169"},"referencedDeclaration":85664,"src":"8594:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":85696,"nodeType":"ArrayTypeName","src":"8594:22:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$85664_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"7445:15:169","scope":86834,"visibility":"public"},{"id":85708,"nodeType":"StructDefinition","src":"8709:144:169","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":85699,"nodeType":"StructuredDocumentation","src":"8650:54:169","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":85702,"mutability":"mutable","name":"operators","nameLocation":"8770:9:169","nodeType":"VariableDeclaration","scope":85708,"src":"8744:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$85714_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":85701,"nodeType":"UserDefinedTypeName","pathNode":{"id":85700,"name":"OperatorRewardsCommitment","nameLocations":["8744:25:169"],"nodeType":"IdentifierPath","referencedDeclaration":85714,"src":"8744:25:169"},"referencedDeclaration":85714,"src":"8744:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$85714_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":85705,"mutability":"mutable","name":"stakers","nameLocation":"8813:7:169","nodeType":"VariableDeclaration","scope":85708,"src":"8789:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":85704,"nodeType":"UserDefinedTypeName","pathNode":{"id":85703,"name":"StakerRewardsCommitment","nameLocations":["8789:23:169"],"nodeType":"IdentifierPath","referencedDeclaration":85724,"src":"8789:23:169"},"referencedDeclaration":85724,"src":"8789:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":85707,"mutability":"mutable","name":"timestamp","nameLocation":"8837:9:169","nodeType":"VariableDeclaration","scope":85708,"src":"8830:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":85706,"name":"uint48","nodeType":"ElementaryTypeName","src":"8830:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"8716:17:169","scope":86834,"visibility":"public"},{"id":85714,"nodeType":"StructDefinition","src":"8927:86:169","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":85709,"nodeType":"StructuredDocumentation","src":"8859:63:169","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":85711,"mutability":"mutable","name":"amount","nameLocation":"8978:6:169","nodeType":"VariableDeclaration","scope":85714,"src":"8970:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85710,"name":"uint256","nodeType":"ElementaryTypeName","src":"8970:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85713,"mutability":"mutable","name":"root","nameLocation":"9002:4:169","nodeType":"VariableDeclaration","scope":85714,"src":"8994:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8994:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8934:25:169","scope":86834,"visibility":"public"},{"id":85724,"nodeType":"StructDefinition","src":"9085:128:169","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":85715,"nodeType":"StructuredDocumentation","src":"9019:61:169","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":85719,"mutability":"mutable","name":"distribution","nameLocation":"9142:12:169","nodeType":"VariableDeclaration","scope":85724,"src":"9126:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$85730_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":85717,"nodeType":"UserDefinedTypeName","pathNode":{"id":85716,"name":"StakerRewards","nameLocations":["9126:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":85730,"src":"9126:13:169"},"referencedDeclaration":85730,"src":"9126:13:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":85718,"nodeType":"ArrayTypeName","src":"9126:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$85730_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":85721,"mutability":"mutable","name":"totalAmount","nameLocation":"9172:11:169","nodeType":"VariableDeclaration","scope":85724,"src":"9164:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85720,"name":"uint256","nodeType":"ElementaryTypeName","src":"9164:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85723,"mutability":"mutable","name":"token","nameLocation":"9201:5:169","nodeType":"VariableDeclaration","scope":85724,"src":"9193:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85722,"name":"address","nodeType":"ElementaryTypeName","src":"9193:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"9092:23:169","scope":86834,"visibility":"public"},{"id":85730,"nodeType":"StructDefinition","src":"9274:75:169","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":85725,"nodeType":"StructuredDocumentation","src":"9219:50:169","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":85727,"mutability":"mutable","name":"vault","nameLocation":"9313:5:169","nodeType":"VariableDeclaration","scope":85730,"src":"9305:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85726,"name":"address","nodeType":"ElementaryTypeName","src":"9305:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85729,"mutability":"mutable","name":"amount","nameLocation":"9336:6:169","nodeType":"VariableDeclaration","scope":85730,"src":"9328:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85728,"name":"uint256","nodeType":"ElementaryTypeName","src":"9328:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"9281:13:169","scope":86834,"visibility":"public"},{"id":85738,"nodeType":"EnumDefinition","src":"9424:960:169","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":85731,"nodeType":"StructuredDocumentation","src":"9355:64:169","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":85732,"nodeType":"StructuredDocumentation","src":"9449:260:169","text":" @dev The code commitment is in an unknown state (`CodeState.Unknown = 0 as uint8`).\n This is the default state for all code commitments,\n and it means that the code commitment has not been processed yet."},"id":85733,"name":"Unknown","nameLocation":"9718:7:169","nodeType":"EnumValue","src":"9718:7:169"},{"documentation":{"id":85734,"nodeType":"StructuredDocumentation","src":"9735:465:169","text":" @dev The code commitment has requested validation by user (`CodeState.ValidationRequested = 1 as uint8`).\n Users calls `IRouter(router).requestCodeValidation(bytes32 _codeId)` to request code validation and\n attaches sidecar to this transaction (the transaction is encoded in EIP-7594 format),\n then validators can validate the code commitment and set `CodeState.Validated` in case of success."},"id":85735,"name":"ValidationRequested","nameLocation":"10209:19:169","nodeType":"EnumValue","src":"10209:19:169"},{"documentation":{"id":85736,"nodeType":"StructuredDocumentation","src":"10238:122:169","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":85737,"name":"Validated","nameLocation":"10369:9:169","nodeType":"EnumValue","src":"10369:9:169"}],"name":"CodeState","nameLocation":"9429:9:169"},{"id":85744,"nodeType":"StructDefinition","src":"10464:81:169","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":85739,"nodeType":"StructuredDocumentation","src":"10390:69:169","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":85741,"mutability":"mutable","name":"hash","nameLocation":"10508:4:169","nodeType":"VariableDeclaration","scope":85744,"src":"10500:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85740,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10500:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85743,"mutability":"mutable","name":"timestamp","nameLocation":"10529:9:169","nodeType":"VariableDeclaration","scope":85744,"src":"10522:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":85742,"name":"uint48","nodeType":"ElementaryTypeName","src":"10522:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"10471:18:169","scope":86834,"visibility":"public"},{"id":85750,"nodeType":"StructDefinition","src":"10612:92:169","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":85745,"nodeType":"StructuredDocumentation","src":"10551:56:169","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":85747,"mutability":"mutable","name":"threshold","nameLocation":"10656:9:169","nodeType":"VariableDeclaration","scope":85750,"src":"10649:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":85746,"name":"uint64","nodeType":"ElementaryTypeName","src":"10649:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":85749,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"10683:14:169","nodeType":"VariableDeclaration","scope":85750,"src":"10675:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85748,"name":"uint128","nodeType":"ElementaryTypeName","src":"10675:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"10619:19:169","scope":86834,"visibility":"public"},{"id":85758,"nodeType":"StructDefinition","src":"10782:102:169","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":85751,"nodeType":"StructuredDocumentation","src":"10710:67:169","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":85753,"mutability":"mutable","name":"hash","nameLocation":"10824:4:169","nodeType":"VariableDeclaration","scope":85758,"src":"10816:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10816:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85755,"mutability":"mutable","name":"number","nameLocation":"10845:6:169","nodeType":"VariableDeclaration","scope":85758,"src":"10838:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85754,"name":"uint32","nodeType":"ElementaryTypeName","src":"10838:6:169","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85757,"mutability":"mutable","name":"timestamp","nameLocation":"10868:9:169","nodeType":"VariableDeclaration","scope":85758,"src":"10861:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":85756,"name":"uint48","nodeType":"ElementaryTypeName","src":"10861:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10789:16:169","scope":86834,"visibility":"public"},{"id":85779,"nodeType":"StructDefinition","src":"10938:1092:169","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":85759,"nodeType":"StructuredDocumentation","src":"10890:43:169","text":" @dev Represents message."},"members":[{"constant":false,"id":85762,"mutability":"mutable","name":"id","nameLocation":"11063:2:169","nodeType":"VariableDeclaration","scope":85779,"src":"11055:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11055:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85765,"mutability":"mutable","name":"destination","nameLocation":"11259:11:169","nodeType":"VariableDeclaration","scope":85779,"src":"11251:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85764,"name":"address","nodeType":"ElementaryTypeName","src":"11251:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85768,"mutability":"mutable","name":"payload","nameLocation":"11354:7:169","nodeType":"VariableDeclaration","scope":85779,"src":"11348:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":85767,"name":"bytes","nodeType":"ElementaryTypeName","src":"11348:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":85771,"mutability":"mutable","name":"value","nameLocation":"11458:5:169","nodeType":"VariableDeclaration","scope":85779,"src":"11450:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85770,"name":"uint128","nodeType":"ElementaryTypeName","src":"11450:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":85775,"mutability":"mutable","name":"replyDetails","nameLocation":"11706:12:169","nodeType":"VariableDeclaration","scope":85779,"src":"11693:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":85774,"nodeType":"UserDefinedTypeName","pathNode":{"id":85773,"name":"ReplyDetails","nameLocations":["11693:12:169"],"nodeType":"IdentifierPath","referencedDeclaration":85815,"src":"11693:12:169"},"referencedDeclaration":85815,"src":"11693:12:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":85778,"mutability":"mutable","name":"call","nameLocation":"12019:4:169","nodeType":"VariableDeclaration","scope":85779,"src":"12014:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85777,"name":"bool","nodeType":"ElementaryTypeName","src":"12014:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10945:7:169","scope":86834,"visibility":"public"},{"id":85807,"nodeType":"StructDefinition","src":"12094:1298:169","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":85780,"nodeType":"StructuredDocumentation","src":"12036:53:169","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":85786,"mutability":"mutable","name":"codes","nameLocation":"12368:5:169","nodeType":"VariableDeclaration","scope":85807,"src":"12338:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":85785,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":85782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12346:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"12338:29:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":85784,"nodeType":"UserDefinedTypeName","pathNode":{"id":85783,"name":"CodeState","nameLocations":["12357:9:169"],"nodeType":"IdentifierPath","referencedDeclaration":85738,"src":"12357:9:169"},"referencedDeclaration":85738,"src":"12357:9:169","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":85791,"mutability":"mutable","name":"programs","nameLocation":"12586:8:169","nodeType":"VariableDeclaration","scope":85807,"src":"12558:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":85790,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":85788,"name":"address","nodeType":"ElementaryTypeName","src":"12566:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"12558:27:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":85789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12577:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":85794,"mutability":"mutable","name":"programsCount","nameLocation":"12703:13:169","nodeType":"VariableDeclaration","scope":85807,"src":"12695:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85793,"name":"uint256","nodeType":"ElementaryTypeName","src":"12695:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85797,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12831:19:169","nodeType":"VariableDeclaration","scope":85807,"src":"12823:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85796,"name":"uint256","nodeType":"ElementaryTypeName","src":"12823:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85800,"mutability":"mutable","name":"maxValidators","nameLocation":"12949:13:169","nodeType":"VariableDeclaration","scope":85807,"src":"12942:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":85799,"name":"uint16","nodeType":"ElementaryTypeName","src":"12942:6:169","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":85803,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"13140:28:169","nodeType":"VariableDeclaration","scope":85807,"src":"13132:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85802,"name":"uint256","nodeType":"ElementaryTypeName","src":"13132:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85806,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"13356:29:169","nodeType":"VariableDeclaration","scope":85807,"src":"13348:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85805,"name":"uint256","nodeType":"ElementaryTypeName","src":"13348:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"12101:12:169","scope":86834,"visibility":"public"},{"id":85815,"nodeType":"StructDefinition","src":"13458:564:169","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":85808,"nodeType":"StructuredDocumentation","src":"13398:55:169","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":85811,"mutability":"mutable","name":"to","nameLocation":"13667:2:169","nodeType":"VariableDeclaration","scope":85815,"src":"13659:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85810,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13659:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85814,"mutability":"mutable","name":"code","nameLocation":"14011:4:169","nodeType":"VariableDeclaration","scope":85815,"src":"14004:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":85813,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14004:6:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"13465:12:169","scope":86834,"visibility":"public"},{"id":85843,"nodeType":"StructDefinition","src":"14299:1719:169","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":85816,"nodeType":"StructuredDocumentation","src":"14028:266:169","text":" @dev Represents state transition of `Mirror`.\n Most important type in this, in Rust we use this type to mutate state of `Mirror` instances.\n (see `ethexe/common/src/gear.rs` for more details on how this type is used in Rust)."},"members":[{"constant":false,"id":85819,"mutability":"mutable","name":"actorId","nameLocation":"14526:7:169","nodeType":"VariableDeclaration","scope":85843,"src":"14518:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85818,"name":"address","nodeType":"ElementaryTypeName","src":"14518:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85822,"mutability":"mutable","name":"newStateHash","nameLocation":"14707:12:169","nodeType":"VariableDeclaration","scope":85843,"src":"14699:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14699:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85825,"mutability":"mutable","name":"exited","nameLocation":"14814:6:169","nodeType":"VariableDeclaration","scope":85843,"src":"14809:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85824,"name":"bool","nodeType":"ElementaryTypeName","src":"14809:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":85828,"mutability":"mutable","name":"inheritor","nameLocation":"15016:9:169","nodeType":"VariableDeclaration","scope":85843,"src":"15008:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85827,"name":"address","nodeType":"ElementaryTypeName","src":"15008:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85831,"mutability":"mutable","name":"valueToReceive","nameLocation":"15394:14:169","nodeType":"VariableDeclaration","scope":85843,"src":"15386:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85830,"name":"uint128","nodeType":"ElementaryTypeName","src":"15386:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":85834,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"15690:26:169","nodeType":"VariableDeclaration","scope":85843,"src":"15685:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85833,"name":"bool","nodeType":"ElementaryTypeName","src":"15685:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":85837,"mutability":"mutable","name":"merkleRoot","nameLocation":"15914:10:169","nodeType":"VariableDeclaration","scope":85843,"src":"15906:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85836,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15906:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85842,"mutability":"mutable","name":"messages","nameLocation":"16003:8:169","nodeType":"VariableDeclaration","scope":85843,"src":"15993:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$85779_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":85840,"nodeType":"UserDefinedTypeName","pathNode":{"id":85839,"name":"Message","nameLocations":["15993:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":85779,"src":"15993:7:169"},"referencedDeclaration":85779,"src":"15993:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_storage_ptr","typeString":"struct Gear.Message"}},"id":85841,"nodeType":"ArrayTypeName","src":"15993:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$85779_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"14306:15:169","scope":86834,"visibility":"public"},{"id":85851,"nodeType":"StructDefinition","src":"16078:104:169","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":85844,"nodeType":"StructuredDocumentation","src":"16024:49:169","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":85846,"mutability":"mutable","name":"era","nameLocation":"16113:3:169","nodeType":"VariableDeclaration","scope":85851,"src":"16105:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85845,"name":"uint256","nodeType":"ElementaryTypeName","src":"16105:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85848,"mutability":"mutable","name":"election","nameLocation":"16134:8:169","nodeType":"VariableDeclaration","scope":85851,"src":"16126:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85847,"name":"uint256","nodeType":"ElementaryTypeName","src":"16126:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85850,"mutability":"mutable","name":"validationDelay","nameLocation":"16160:15:169","nodeType":"VariableDeclaration","scope":85851,"src":"16152:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85849,"name":"uint256","nodeType":"ElementaryTypeName","src":"16152:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"16085:9:169","scope":86834,"visibility":"public"},{"id":85863,"nodeType":"StructDefinition","src":"16252:171:169","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":85852,"nodeType":"StructuredDocumentation","src":"16188:59:169","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":85854,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16296:18:169","nodeType":"VariableDeclaration","scope":85863,"src":"16288:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85853,"name":"uint128","nodeType":"ElementaryTypeName","src":"16288:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":85856,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16332:20:169","nodeType":"VariableDeclaration","scope":85863,"src":"16324:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85855,"name":"uint128","nodeType":"ElementaryTypeName","src":"16324:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":85859,"mutability":"mutable","name":"validators0","nameLocation":"16373:11:169","nodeType":"VariableDeclaration","scope":85863,"src":"16362:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":85858,"nodeType":"UserDefinedTypeName","pathNode":{"id":85857,"name":"Validators","nameLocations":["16362:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"16362:10:169"},"referencedDeclaration":85606,"src":"16362:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":85862,"mutability":"mutable","name":"validators1","nameLocation":"16405:11:169","nodeType":"VariableDeclaration","scope":85863,"src":"16394:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":85861,"nodeType":"UserDefinedTypeName","pathNode":{"id":85860,"name":"Validators","nameLocations":["16394:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"16394:10:169"},"referencedDeclaration":85606,"src":"16394:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"16259:18:169","scope":86834,"visibility":"public"},{"id":85875,"nodeType":"StructDefinition","src":"16501:183:169","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":85864,"nodeType":"StructuredDocumentation","src":"16429:67:169","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":85866,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16549:18:169","nodeType":"VariableDeclaration","scope":85875,"src":"16541:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85865,"name":"uint128","nodeType":"ElementaryTypeName","src":"16541:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":85868,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16585:20:169","nodeType":"VariableDeclaration","scope":85875,"src":"16577:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85867,"name":"uint128","nodeType":"ElementaryTypeName","src":"16577:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":85871,"mutability":"mutable","name":"validators0","nameLocation":"16630:11:169","nodeType":"VariableDeclaration","scope":85875,"src":"16615:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":85870,"nodeType":"UserDefinedTypeName","pathNode":{"id":85869,"name":"ValidatorsView","nameLocations":["16615:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":85618,"src":"16615:14:169"},"referencedDeclaration":85618,"src":"16615:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":85874,"mutability":"mutable","name":"validators1","nameLocation":"16666:11:169","nodeType":"VariableDeclaration","scope":85875,"src":"16651:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":85873,"nodeType":"UserDefinedTypeName","pathNode":{"id":85872,"name":"ValidatorsView","nameLocations":["16651:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":85618,"src":"16651:14:169"},"referencedDeclaration":85618,"src":"16651:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"16508:22:169","scope":86834,"visibility":"public"},{"id":85883,"nodeType":"StructDefinition","src":"16746:104:169","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":85876,"nodeType":"StructuredDocumentation","src":"16690:51:169","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":85878,"mutability":"mutable","name":"messageId","nameLocation":"16782:9:169","nodeType":"VariableDeclaration","scope":85883,"src":"16774:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16774:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85880,"mutability":"mutable","name":"destination","nameLocation":"16809:11:169","nodeType":"VariableDeclaration","scope":85883,"src":"16801:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85879,"name":"address","nodeType":"ElementaryTypeName","src":"16801:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85882,"mutability":"mutable","name":"value","nameLocation":"16838:5:169","nodeType":"VariableDeclaration","scope":85883,"src":"16830:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":85881,"name":"uint128","nodeType":"ElementaryTypeName","src":"16830:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"16753:10:169","scope":86834,"visibility":"public"},{"id":85905,"nodeType":"StructDefinition","src":"16930:436:169","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":85884,"nodeType":"StructuredDocumentation","src":"16856:69:169","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":85886,"mutability":"mutable","name":"vaultRegistry","nameLocation":"17006:13:169","nodeType":"VariableDeclaration","scope":85905,"src":"16998:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85885,"name":"address","nodeType":"ElementaryTypeName","src":"16998:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85888,"mutability":"mutable","name":"operatorRegistry","nameLocation":"17037:16:169","nodeType":"VariableDeclaration","scope":85905,"src":"17029:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85887,"name":"address","nodeType":"ElementaryTypeName","src":"17029:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85890,"mutability":"mutable","name":"networkRegistry","nameLocation":"17071:15:169","nodeType":"VariableDeclaration","scope":85905,"src":"17063:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85889,"name":"address","nodeType":"ElementaryTypeName","src":"17063:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85892,"mutability":"mutable","name":"middlewareService","nameLocation":"17104:17:169","nodeType":"VariableDeclaration","scope":85905,"src":"17096:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85891,"name":"address","nodeType":"ElementaryTypeName","src":"17096:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85894,"mutability":"mutable","name":"networkOptIn","nameLocation":"17139:12:169","nodeType":"VariableDeclaration","scope":85905,"src":"17131:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85893,"name":"address","nodeType":"ElementaryTypeName","src":"17131:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85896,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"17169:20:169","nodeType":"VariableDeclaration","scope":85905,"src":"17161:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85895,"name":"address","nodeType":"ElementaryTypeName","src":"17161:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85898,"mutability":"mutable","name":"operatorRewards","nameLocation":"17243:15:169","nodeType":"VariableDeclaration","scope":85905,"src":"17235:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85897,"name":"address","nodeType":"ElementaryTypeName","src":"17235:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85900,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"17276:18:169","nodeType":"VariableDeclaration","scope":85905,"src":"17268:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85899,"name":"address","nodeType":"ElementaryTypeName","src":"17268:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85902,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"17312:17:169","nodeType":"VariableDeclaration","scope":85905,"src":"17304:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85901,"name":"address","nodeType":"ElementaryTypeName","src":"17304:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85904,"mutability":"mutable","name":"vetoResolver","nameLocation":"17347:12:169","nodeType":"VariableDeclaration","scope":85905,"src":"17339:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85903,"name":"address","nodeType":"ElementaryTypeName","src":"17339:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16937:18:169","scope":86834,"visibility":"public"},{"id":85909,"nodeType":"EnumDefinition","src":"17439:55:169","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":85906,"nodeType":"StructuredDocumentation","src":"17372:62:169","text":" @dev Represents the type of signature used."},"members":[{"id":85907,"name":"FROST","nameLocation":"17468:5:169","nodeType":"EnumValue","src":"17468:5:169"},{"id":85908,"name":"ECDSA","nameLocation":"17483:5:169","nodeType":"EnumValue","src":"17483:5:169"}],"name":"SignatureType","nameLocation":"17444:13:169"},{"id":85931,"nodeType":"FunctionDefinition","src":"17784:260:169","nodes":[],"body":{"id":85930,"nodeType":"Block","src":"17945:99:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":85924,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85912,"src":"17989:16:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":85925,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85914,"src":"18007:5:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":85926,"name":"_lastAdvancedEthBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85916,"src":"18014:21:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":85922,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17972:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":85923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17976:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"17972:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":85927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17972:64:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85921,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17962:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":85928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17962:75:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85920,"id":85929,"nodeType":"Return","src":"17955:82:169"}]},"documentation":{"id":85910,"nodeType":"StructuredDocumentation","src":"17500:279:169","text":" @dev Computes the hash of `ChainCommitment`.\n @param _transitionsHash The hash of the transitions in the chain commitment.\n @param _head The head of the chain commitment.\n @param _lastAdvancedEthBlock The latest folded-in Ethereum block hash."},"implemented":true,"kind":"function","modifiers":[],"name":"chainCommitmentHash","nameLocation":"17793:19:169","parameters":{"id":85917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85912,"mutability":"mutable","name":"_transitionsHash","nameLocation":"17821:16:169","nodeType":"VariableDeclaration","scope":85931,"src":"17813:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85911,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17813:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85914,"mutability":"mutable","name":"_head","nameLocation":"17847:5:169","nodeType":"VariableDeclaration","scope":85931,"src":"17839:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17839:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85916,"mutability":"mutable","name":"_lastAdvancedEthBlock","nameLocation":"17862:21:169","nodeType":"VariableDeclaration","scope":85931,"src":"17854:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17854:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17812:72:169"},"returnParameters":{"id":85920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85931,"src":"17932:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85918,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17932:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17931:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":85948,"nodeType":"FunctionDefinition","src":"18213:336:169","nodes":[],"body":{"id":85947,"nodeType":"Block","src":"18301:248:169","nodes":[],"statements":[{"assignments":[85942],"declarations":[{"constant":false,"id":85942,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"18319:19:169","nodeType":"VariableDeclaration","scope":85947,"src":"18311:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18311:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":85943,"nodeType":"VariableDeclarationStatement","src":"18311:27:169"},{"AST":{"nativeSrc":"18373:134:169","nodeType":"YulBlock","src":"18373:134:169","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18394:4:169","nodeType":"YulLiteral","src":"18394:4:169","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"18400:6:169","nodeType":"YulIdentifier","src":"18400:6:169"}],"functionName":{"name":"mstore","nativeSrc":"18387:6:169","nodeType":"YulIdentifier","src":"18387:6:169"},"nativeSrc":"18387:20:169","nodeType":"YulFunctionCall","src":"18387:20:169"},"nativeSrc":"18387:20:169","nodeType":"YulExpressionStatement","src":"18387:20:169"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18428:4:169","nodeType":"YulLiteral","src":"18428:4:169","type":"","value":"0x20"},{"name":"valid","nativeSrc":"18434:5:169","nodeType":"YulIdentifier","src":"18434:5:169"}],"functionName":{"name":"mstore8","nativeSrc":"18420:7:169","nodeType":"YulIdentifier","src":"18420:7:169"},"nativeSrc":"18420:20:169","nodeType":"YulFunctionCall","src":"18420:20:169"},"nativeSrc":"18420:20:169","nodeType":"YulExpressionStatement","src":"18420:20:169"},{"nativeSrc":"18453:44:169","nodeType":"YulAssignment","src":"18453:44:169","value":{"arguments":[{"kind":"number","nativeSrc":"18486:4:169","nodeType":"YulLiteral","src":"18486:4:169","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18492:4:169","nodeType":"YulLiteral","src":"18492:4:169","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"18476:9:169","nodeType":"YulIdentifier","src":"18476:9:169"},"nativeSrc":"18476:21:169","nodeType":"YulFunctionCall","src":"18476:21:169"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"18453:19:169","nodeType":"YulIdentifier","src":"18453:19:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":85942,"isOffset":false,"isSlot":false,"src":"18453:19:169","valueSize":1},{"declaration":85934,"isOffset":false,"isSlot":false,"src":"18400:6:169","valueSize":1},{"declaration":85936,"isOffset":false,"isSlot":false,"src":"18434:5:169","valueSize":1}],"flags":["memory-safe"],"id":85944,"nodeType":"InlineAssembly","src":"18348:159:169"},{"expression":{"id":85945,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85942,"src":"18523:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85940,"id":85946,"nodeType":"Return","src":"18516:26:169"}]},"documentation":{"id":85932,"nodeType":"StructuredDocumentation","src":"18050:158:169","text":" @dev Computes the hash of `CodeCommitment`.\n @param codeId The ID of the code.\n @param valid The validation status of the code."},"implemented":true,"kind":"function","modifiers":[],"name":"codeCommitmentHash","nameLocation":"18222:18:169","parameters":{"id":85937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85934,"mutability":"mutable","name":"codeId","nameLocation":"18249:6:169","nodeType":"VariableDeclaration","scope":85948,"src":"18241:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18241:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85936,"mutability":"mutable","name":"valid","nameLocation":"18262:5:169","nodeType":"VariableDeclaration","scope":85948,"src":"18257:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85935,"name":"bool","nodeType":"ElementaryTypeName","src":"18257:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18240:28:169"},"returnParameters":{"id":85940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85948,"src":"18292:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18292:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18291:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":85970,"nodeType":"FunctionDefinition","src":"18826:273:169","nodes":[],"body":{"id":85969,"nodeType":"Block","src":"18994:105:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":85963,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85951,"src":"19038:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":85964,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85953,"src":"19060:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":85965,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85955,"src":"19080:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":85961,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19021:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":85962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19025:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"19021:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":85966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19021:70:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85960,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19011:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":85967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19011:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85959,"id":85968,"nodeType":"Return","src":"19004:88:169"}]},"documentation":{"id":85949,"nodeType":"StructuredDocumentation","src":"18555:266:169","text":" @dev Computes the hash of `RewardsCommitment`.\n @param _operatorRewardsHash The hash of the operator rewards.\n @param _stakerRewardsHash The hash of the staker rewards.\n @param _timestamp The timestamp for the rewards commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"rewardsCommitmentHash","nameLocation":"18835:21:169","parameters":{"id":85956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85951,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"18865:20:169","nodeType":"VariableDeclaration","scope":85970,"src":"18857:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18857:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85953,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"18895:18:169","nodeType":"VariableDeclaration","scope":85970,"src":"18887:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18887:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":85955,"mutability":"mutable","name":"_timestamp","nameLocation":"18922:10:169","nodeType":"VariableDeclaration","scope":85970,"src":"18915:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":85954,"name":"uint48","nodeType":"ElementaryTypeName","src":"18915:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"18856:77:169"},"returnParameters":{"id":85959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85970,"src":"18981:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18981:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18980:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":85998,"nodeType":"FunctionDefinition","src":"19230:425:169","nodes":[],"body":{"id":85997,"nodeType":"Block","src":"19341:314:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":85982,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85974,"src":"19415:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":85983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19426:22:169","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85653,"src":"19415:33:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":85984,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85974,"src":"19466:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":85985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19477:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85656,"src":"19466:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":85986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19497:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":85582,"src":"19466:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":85987,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85974,"src":"19516:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":85988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19527:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85656,"src":"19516:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":85989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19547:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":85584,"src":"19516:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":85990,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85974,"src":"19566:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":85991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19577:10:169","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":85661,"src":"19566:21:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":85992,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85974,"src":"19605:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":85993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19616:8:169","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":85663,"src":"19605:19:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":85980,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19381:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":85981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19385:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"19381:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":85994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19381:257:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":85979,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19358:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":85995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19358:290:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":85978,"id":85996,"nodeType":"Return","src":"19351:297:169"}]},"documentation":{"id":85971,"nodeType":"StructuredDocumentation","src":"19105:120:169","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"19239:24:169","parameters":{"id":85975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85974,"mutability":"mutable","name":"commitment","nameLocation":"19297:10:169","nodeType":"VariableDeclaration","scope":85998,"src":"19264:43:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":85973,"nodeType":"UserDefinedTypeName","pathNode":{"id":85972,"name":"Gear.ValidatorsCommitment","nameLocations":["19264:4:169","19269:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":85664,"src":"19264:25:169"},"referencedDeclaration":85664,"src":"19264:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"19263:45:169"},"returnParameters":{"id":85978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85998,"src":"19332:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19332:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19331:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86035,"nodeType":"FunctionDefinition","src":"20268:697:169","nodes":[],"body":{"id":86034,"nodeType":"Block","src":"20605:360:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86023,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86001,"src":"20679:6:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86024,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86003,"src":"20703:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":86025,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86005,"src":"20731:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86026,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86007,"src":"20768:7:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":86027,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86009,"src":"20793:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86028,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86011,"src":"20831:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86029,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86013,"src":"20869:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86030,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86015,"src":"20909:25:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":86021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20645:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20649:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20645:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20645:303:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20622:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20622:336:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86019,"id":86033,"nodeType":"Return","src":"20615:343:169"}]},"documentation":{"id":85999,"nodeType":"StructuredDocumentation","src":"19661:602:169","text":" @dev Computes the hash of `BatchCommitment`.\n @param _block The hash of the block.\n @param _timestamp The timestamp for the batch commitment.\n @param _prevCommittedBlock The hash of the previous committed block.\n @param _expiry The expiry time for the batch commitment.\n @param _chainCommitmentHash The hash of the chain commitment.\n @param _codeCommitmentsHash The hash of the code commitments.\n @param _rewardsCommitmentHash The hash of the rewards commitment.\n @param _validatorsCommitmentHash The hash of the validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"batchCommitmentHash","nameLocation":"20277:19:169","parameters":{"id":86016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86001,"mutability":"mutable","name":"_block","nameLocation":"20314:6:169","nodeType":"VariableDeclaration","scope":86035,"src":"20306:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20306:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86003,"mutability":"mutable","name":"_timestamp","nameLocation":"20337:10:169","nodeType":"VariableDeclaration","scope":86035,"src":"20330:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":86002,"name":"uint48","nodeType":"ElementaryTypeName","src":"20330:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":86005,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"20365:19:169","nodeType":"VariableDeclaration","scope":86035,"src":"20357:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20357:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86007,"mutability":"mutable","name":"_expiry","nameLocation":"20400:7:169","nodeType":"VariableDeclaration","scope":86035,"src":"20394:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":86006,"name":"uint8","nodeType":"ElementaryTypeName","src":"20394:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":86009,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"20425:20:169","nodeType":"VariableDeclaration","scope":86035,"src":"20417:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20417:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86011,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"20463:20:169","nodeType":"VariableDeclaration","scope":86035,"src":"20455:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20455:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86013,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"20501:22:169","nodeType":"VariableDeclaration","scope":86035,"src":"20493:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20493:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86015,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"20541:25:169","nodeType":"VariableDeclaration","scope":86035,"src":"20533:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86014,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20533:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20296:276:169"},"returnParameters":{"id":86019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86035,"src":"20596:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20596:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20595:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86067,"nodeType":"FunctionDefinition","src":"21096:407:169","nodes":[],"body":{"id":86066,"nodeType":"Block","src":"21173:330:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":86047,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86039,"src":"21247:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21255:2:169","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85762,"src":"21247:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":86049,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86039,"src":"21275:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21283:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"21275:19:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86051,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86039,"src":"21312:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21320:7:169","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":85768,"src":"21312:15:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":86053,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86039,"src":"21345:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21353:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"21345:13:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":86055,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86039,"src":"21376:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21384:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"21376:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":86057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21397:2:169","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85811,"src":"21376:23:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":86058,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86039,"src":"21417:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21425:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"21417:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":86060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21438:4:169","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85814,"src":"21417:25:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":86061,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86039,"src":"21460:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_memory_ptr","typeString":"struct Gear.Message memory"}},"id":86062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21468:4:169","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":85778,"src":"21460:12:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86045,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21213:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21217:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"21213:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21213:273:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86044,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21190:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21190:306:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86043,"id":86065,"nodeType":"Return","src":"21183:313:169"}]},"documentation":{"id":86036,"nodeType":"StructuredDocumentation","src":"20971:120:169","text":" @dev Computes the hash of `Message`.\n @param message The message for which to compute the hash."},"implemented":true,"kind":"function","modifiers":[],"name":"messageHash","nameLocation":"21105:11:169","parameters":{"id":86040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86039,"mutability":"mutable","name":"message","nameLocation":"21132:7:169","nodeType":"VariableDeclaration","scope":86067,"src":"21117:22:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":86038,"nodeType":"UserDefinedTypeName","pathNode":{"id":86037,"name":"Message","nameLocations":["21117:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":85779,"src":"21117:7:169"},"referencedDeclaration":85779,"src":"21117:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"21116:24:169"},"returnParameters":{"id":86043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86067,"src":"21164:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21164:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21163:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86089,"nodeType":"FunctionDefinition","src":"21710:199:169","nodes":[],"body":{"id":86088,"nodeType":"Block","src":"21824:85:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86082,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86070,"src":"21868:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86083,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86072,"src":"21880:12:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86084,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86074,"src":"21894:6:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":86080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21851:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21855:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"21851:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21851:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86079,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21841:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21841:61:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86078,"id":86087,"nodeType":"Return","src":"21834:68:169"}]},"documentation":{"id":86068,"nodeType":"StructuredDocumentation","src":"21509:196:169","text":" @dev Computes the hash of `ValueClaim`.\n @param _messageId The message ID.\n @param _destination The destination address.\n @param _value The value of the claim."},"implemented":true,"kind":"function","modifiers":[],"name":"valueClaimHash","nameLocation":"21719:14:169","parameters":{"id":86075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86070,"mutability":"mutable","name":"_messageId","nameLocation":"21742:10:169","nodeType":"VariableDeclaration","scope":86089,"src":"21734:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21734:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86072,"mutability":"mutable","name":"_destination","nameLocation":"21762:12:169","nodeType":"VariableDeclaration","scope":86089,"src":"21754:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86071,"name":"address","nodeType":"ElementaryTypeName","src":"21754:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86074,"mutability":"mutable","name":"_value","nameLocation":"21784:6:169","nodeType":"VariableDeclaration","scope":86089,"src":"21776:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86073,"name":"uint128","nodeType":"ElementaryTypeName","src":"21776:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21733:58:169"},"returnParameters":{"id":86078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86089,"src":"21815:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21815:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21814:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86110,"nodeType":"FunctionDefinition","src":"22184:234:169","nodes":[],"body":{"id":86109,"nodeType":"Block","src":"22331:87:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":86103,"name":"VALUE_CLAIM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85558,"src":"22365:11:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":86104,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86092,"src":"22378:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86105,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86094,"src":"22390:12:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86106,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86096,"src":"22404:6:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":86101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22348:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22352:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"22348:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22348:63:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":86100,"id":86108,"nodeType":"Return","src":"22341:70:169"}]},"documentation":{"id":86090,"nodeType":"StructuredDocumentation","src":"21915:264:169","text":" @dev Packs the `ValueClaim` for outgoing actions merkle tree.\n @param _messageId The message ID.\n @param _destination The destination address.\n @param _value The value of the claim.\n @return packed The packed value claim."},"implemented":true,"kind":"function","modifiers":[],"name":"valueClaimPack","nameLocation":"22193:14:169","parameters":{"id":86097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86092,"mutability":"mutable","name":"_messageId","nameLocation":"22216:10:169","nodeType":"VariableDeclaration","scope":86110,"src":"22208:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86091,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22208:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86094,"mutability":"mutable","name":"_destination","nameLocation":"22236:12:169","nodeType":"VariableDeclaration","scope":86110,"src":"22228:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86093,"name":"address","nodeType":"ElementaryTypeName","src":"22228:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86096,"mutability":"mutable","name":"_value","nameLocation":"22258:6:169","nodeType":"VariableDeclaration","scope":86110,"src":"22250:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86095,"name":"uint128","nodeType":"ElementaryTypeName","src":"22250:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"22207:58:169"},"returnParameters":{"id":86100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86110,"src":"22313:12:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86098,"name":"bytes","nodeType":"ElementaryTypeName","src":"22313:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22312:14:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86129,"nodeType":"FunctionDefinition","src":"22600:192:169","nodes":[],"body":{"id":86128,"nodeType":"Block","src":"22690:102:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":86120,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86114,"src":"22722:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_memory_ptr","typeString":"struct Gear.ValueClaim memory"}},"id":86121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22733:9:169","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":85878,"src":"22722:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":86122,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86114,"src":"22744:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_memory_ptr","typeString":"struct Gear.ValueClaim memory"}},"id":86123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22755:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85880,"src":"22744:22:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86124,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86114,"src":"22768:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_memory_ptr","typeString":"struct Gear.ValueClaim memory"}},"id":86125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22779:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85882,"src":"22768:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86119,"name":"valueClaimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86089,"src":"22707:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":86126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22707:78:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86118,"id":86127,"nodeType":"Return","src":"22700:85:169"}]},"documentation":{"id":86111,"nodeType":"StructuredDocumentation","src":"22424:171:169","text":" @dev Computes the hash of a `ValueClaim`.\n @param valueClaim The value claim for which to compute the hash.\n @return hash The computed hash."},"implemented":true,"kind":"function","modifiers":[],"name":"outgoingActionHash","nameLocation":"22609:18:169","parameters":{"id":86115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86114,"mutability":"mutable","name":"valueClaim","nameLocation":"22646:10:169","nodeType":"VariableDeclaration","scope":86129,"src":"22628:28:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_memory_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":86113,"nodeType":"UserDefinedTypeName","pathNode":{"id":86112,"name":"ValueClaim","nameLocations":["22628:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85883,"src":"22628:10:169"},"referencedDeclaration":85883,"src":"22628:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"src":"22627:30:169"},"returnParameters":{"id":86118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86117,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86129,"src":"22681:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22681:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22680:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86148,"nodeType":"FunctionDefinition","src":"22975:183:169","nodes":[],"body":{"id":86147,"nodeType":"Block","src":"23056:102:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":86139,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86133,"src":"23088:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_memory_ptr","typeString":"struct Gear.ValueClaim memory"}},"id":86140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23099:9:169","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":85878,"src":"23088:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":86141,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86133,"src":"23110:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_memory_ptr","typeString":"struct Gear.ValueClaim memory"}},"id":86142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23121:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85880,"src":"23110:22:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86143,"name":"valueClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86133,"src":"23134:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_memory_ptr","typeString":"struct Gear.ValueClaim memory"}},"id":86144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23145:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85882,"src":"23134:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86138,"name":"valueClaimPack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86110,"src":"23073:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32,address,uint128) pure returns (bytes memory)"}},"id":86145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23073:78:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":86137,"id":86146,"nodeType":"Return","src":"23066:85:169"}]},"documentation":{"id":86130,"nodeType":"StructuredDocumentation","src":"22798:172:169","text":" @dev Packs the `ValueClaim` for outgoing actions merkle tree.\n @param valueClaim Value claim to pack.\n @return packed The packed value claim."},"implemented":true,"kind":"function","modifiers":[],"name":"pack","nameLocation":"22984:4:169","parameters":{"id":86134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86133,"mutability":"mutable","name":"valueClaim","nameLocation":"23007:10:169","nodeType":"VariableDeclaration","scope":86148,"src":"22989:28:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_memory_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":86132,"nodeType":"UserDefinedTypeName","pathNode":{"id":86131,"name":"ValueClaim","nameLocations":["22989:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85883,"src":"22989:10:169"},"referencedDeclaration":85883,"src":"22989:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85883_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"src":"22988:30:169"},"returnParameters":{"id":86137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86148,"src":"23042:12:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86135,"name":"bytes","nodeType":"ElementaryTypeName","src":"23042:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23041:14:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86185,"nodeType":"FunctionDefinition","src":"23664:636:169","nodes":[],"body":{"id":86184,"nodeType":"Block","src":"23969:331:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86173,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86151,"src":"24043:5:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86174,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86153,"src":"24066:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86175,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86155,"src":"24096:6:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":86176,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86157,"src":"24120:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":86177,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86159,"src":"24147:14:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":86178,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86161,"src":"24179:26:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":86179,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86163,"src":"24223:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86180,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86165,"src":"24251:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":86171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24009:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24013:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"24009:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24009:274:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":86170,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"23986:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":86182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23986:307:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86169,"id":86183,"nodeType":"Return","src":"23979:314:169"}]},"documentation":{"id":86149,"nodeType":"StructuredDocumentation","src":"23164:495:169","text":" @dev Computes the hash of `StateTransition`.\n @param actor The actor address.\n @param newStateHash The hash of the new state.\n @param exited The exit status.\n @param inheritor The inheritor address.\n @param valueToReceive The value to receive.\n @param valueToReceiveNegativeSign The sign of the value to receive.\n @param merkleRoot The merkle root of outgoing actions.\n @param messagesHashesHash The hash of the messages hashes."},"implemented":true,"kind":"function","modifiers":[],"name":"stateTransitionHash","nameLocation":"23673:19:169","parameters":{"id":86166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86151,"mutability":"mutable","name":"actor","nameLocation":"23710:5:169","nodeType":"VariableDeclaration","scope":86185,"src":"23702:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86150,"name":"address","nodeType":"ElementaryTypeName","src":"23702:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86153,"mutability":"mutable","name":"newStateHash","nameLocation":"23733:12:169","nodeType":"VariableDeclaration","scope":86185,"src":"23725:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23725:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86155,"mutability":"mutable","name":"exited","nameLocation":"23760:6:169","nodeType":"VariableDeclaration","scope":86185,"src":"23755:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86154,"name":"bool","nodeType":"ElementaryTypeName","src":"23755:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86157,"mutability":"mutable","name":"inheritor","nameLocation":"23784:9:169","nodeType":"VariableDeclaration","scope":86185,"src":"23776:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86156,"name":"address","nodeType":"ElementaryTypeName","src":"23776:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":86159,"mutability":"mutable","name":"valueToReceive","nameLocation":"23811:14:169","nodeType":"VariableDeclaration","scope":86185,"src":"23803:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86158,"name":"uint128","nodeType":"ElementaryTypeName","src":"23803:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86161,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"23840:26:169","nodeType":"VariableDeclaration","scope":86185,"src":"23835:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86160,"name":"bool","nodeType":"ElementaryTypeName","src":"23835:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":86163,"mutability":"mutable","name":"merkleRoot","nameLocation":"23884:10:169","nodeType":"VariableDeclaration","scope":86185,"src":"23876:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23876:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86165,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"23912:18:169","nodeType":"VariableDeclaration","scope":86185,"src":"23904:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23904:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23692:244:169"},"returnParameters":{"id":86169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86168,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86185,"src":"23960:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23960:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23959:9:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86250,"nodeType":"FunctionDefinition","src":"24574:532:169","nodes":[],"body":{"id":86249,"nodeType":"Block","src":"24673:433:169","nodes":[],"statements":[{"assignments":[86196],"declarations":[{"constant":false,"id":86196,"mutability":"mutable","name":"start","nameLocation":"24691:5:169","nodeType":"VariableDeclaration","scope":86249,"src":"24683:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86195,"name":"uint256","nodeType":"ElementaryTypeName","src":"24683:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86201,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86197,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24699:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24705:6:169","memberName":"number","nodeType":"MemberAccess","src":"24699:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":86199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24714:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24699:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24683:32:169"},{"assignments":[86203],"declarations":[{"constant":false,"id":86203,"mutability":"mutable","name":"end","nameLocation":"24733:3:169","nodeType":"VariableDeclaration","scope":86249,"src":"24725:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86202,"name":"uint256","nodeType":"ElementaryTypeName","src":"24725:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86214,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86204,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86190,"src":"24739:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":86205,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24749:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24755:6:169","memberName":"number","nodeType":"MemberAccess","src":"24749:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24739:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86209,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24768:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24774:6:169","memberName":"number","nodeType":"MemberAccess","src":"24768:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":86211,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86190,"src":"24783:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"24768:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24739:50:169","trueExpression":{"hexValue":"30","id":86208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24764:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24725:64:169"},{"body":{"id":86245,"nodeType":"Block","src":"24834:243:169","statements":[{"assignments":[86223],"declarations":[{"constant":false,"id":86223,"mutability":"mutable","name":"ret","nameLocation":"24856:3:169","nodeType":"VariableDeclaration","scope":86245,"src":"24848:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24848:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86227,"initialValue":{"arguments":[{"id":86225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86216,"src":"24872:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86224,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"24862:9:169","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":86226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24862:12:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24848:26:169"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86228,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86223,"src":"24892:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86229,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86188,"src":"24899:4:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24892:11:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":86236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86234,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86223,"src":"24959:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":86235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24966:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24959:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86239,"nodeType":"IfStatement","src":"24955:52:169","trueBody":{"id":86238,"nodeType":"Block","src":"24969:38:169","statements":[{"id":86237,"nodeType":"Break","src":"24987:5:169"}]}},"id":86240,"nodeType":"IfStatement","src":"24888:119:169","trueBody":{"id":86233,"nodeType":"Block","src":"24905:44:169","statements":[{"expression":{"hexValue":"74727565","id":86231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24930:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":86194,"id":86232,"nodeType":"Return","src":"24923:11:169"}]}},{"id":86244,"nodeType":"UncheckedBlock","src":"25021:46:169","statements":[{"expression":{"id":86242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"25049:3:169","subExpression":{"id":86241,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86216,"src":"25049:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86243,"nodeType":"ExpressionStatement","src":"25049:3:169"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86219,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86216,"src":"24823:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":86220,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86203,"src":"24828:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24823:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86246,"initializationExpression":{"assignments":[86216],"declarations":[{"constant":false,"id":86216,"mutability":"mutable","name":"i","nameLocation":"24812:1:169","nodeType":"VariableDeclaration","scope":86246,"src":"24804:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86215,"name":"uint256","nodeType":"ElementaryTypeName","src":"24804:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86218,"initialValue":{"id":86217,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86196,"src":"24816:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24804:17:169"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"24799:278:169"},{"expression":{"hexValue":"66616c7365","id":86247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"25094:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86194,"id":86248,"nodeType":"Return","src":"25087:12:169"}]},"documentation":{"id":86186,"nodeType":"StructuredDocumentation","src":"24306:263:169","text":" @dev Checks if block is predecessor of the current block.\n @param hash The hash of the block to check.\n @param expiry The expiry time for the block.\n @return isPredecessor `true` if the block is predecessor, `false` otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"blockIsPredecessor","nameLocation":"24583:18:169","parameters":{"id":86191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86188,"mutability":"mutable","name":"hash","nameLocation":"24610:4:169","nodeType":"VariableDeclaration","scope":86250,"src":"24602:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24602:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86190,"mutability":"mutable","name":"expiry","nameLocation":"24622:6:169","nodeType":"VariableDeclaration","scope":86250,"src":"24616:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":86189,"name":"uint8","nodeType":"ElementaryTypeName","src":"24616:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"24601:28:169"},"returnParameters":{"id":86194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86193,"mutability":"mutable","name":"isPredecessor","nameLocation":"24658:13:169","nodeType":"VariableDeclaration","scope":86250,"src":"24653:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86192,"name":"bool","nodeType":"ElementaryTypeName","src":"24653:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24652:20:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86263,"nodeType":"FunctionDefinition","src":"25251:222:169","nodes":[],"body":{"id":86262,"nodeType":"Block","src":"25360:113:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":86258,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85534,"src":"25409:21:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":86259,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85546,"src":"25448:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86257,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85750,"src":"25377:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$85750_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":86260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25398:9:169","25432:14:169"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"25377:89:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":86256,"id":86261,"nodeType":"Return","src":"25370:96:169"}]},"documentation":{"id":86251,"nodeType":"StructuredDocumentation","src":"25112:134:169","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"25260:26:169","parameters":{"id":86252,"nodeType":"ParameterList","parameters":[],"src":"25286:2:169"},"returnParameters":{"id":86256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86255,"mutability":"mutable","name":"computationSettings","nameLocation":"25339:19:169","nodeType":"VariableDeclaration","scope":86263,"src":"25312:46:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":86254,"nodeType":"UserDefinedTypeName","pathNode":{"id":86253,"name":"ComputationSettings","nameLocations":["25312:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":85750,"src":"25312:19:169"},"referencedDeclaration":85750,"src":"25312:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"25311:48:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86286,"nodeType":"FunctionDefinition","src":"25599:229:169","nodes":[],"body":{"id":86285,"nodeType":"Block","src":"25686:142:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":86273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25747:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":86272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25739:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":86271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25739:7:169","typeDescriptions":{}}},"id":86274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25739:10:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":86277,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25777:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25783:6:169","memberName":"number","nodeType":"MemberAccess","src":"25777:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":86275,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"25759:8:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$13734_$","typeString":"type(library SafeCast)"}},"id":86276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25768:8:169","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":12780,"src":"25759:17:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":86279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25759:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86280,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"25803:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":86281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25808:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"25803:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":86282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25803:16:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":86270,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85758,"src":"25715:16:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$85758_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":86283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25733:4:169","25751:6:169","25792:9:169"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"25715:106:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":86269,"id":86284,"nodeType":"Return","src":"25696:125:169"}]},"documentation":{"id":86264,"nodeType":"StructuredDocumentation","src":"25479:115:169","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"25608:10:169","parameters":{"id":86265,"nodeType":"ParameterList","parameters":[],"src":"25618:2:169"},"returnParameters":{"id":86269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86268,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"25668:16:169","nodeType":"VariableDeclaration","scope":86286,"src":"25644:40:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":86267,"nodeType":"UserDefinedTypeName","pathNode":{"id":86266,"name":"GenesisBlockInfo","nameLocations":["25644:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":85758,"src":"25644:16:169"},"referencedDeclaration":85758,"src":"25644:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"25643:42:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86536,"nodeType":"FunctionDefinition","src":"26319:3813:169","nodes":[],"body":{"id":86535,"nodeType":"Block","src":"26582:3550:169","nodes":[],"statements":[{"assignments":[86308],"declarations":[{"constant":false,"id":86308,"mutability":"mutable","name":"eraStarted","nameLocation":"26654:10:169","nodeType":"VariableDeclaration","scope":86535,"src":"26646:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86307,"name":"uint256","nodeType":"ElementaryTypeName","src":"26646:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86314,"initialValue":{"arguments":[{"id":86310,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86290,"src":"26680:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":86311,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26688:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26694:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"26688:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86309,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86769,"src":"26667:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":86313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26667:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26646:58:169"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86315,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86302,"src":"26718:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86316,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86308,"src":"26723:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26718:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86318,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26737:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26743:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"26737:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86320,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86308,"src":"26755:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":86321,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86290,"src":"26768:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26775:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"26768:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"id":86323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26785:15:169","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":85850,"src":"26768:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26755:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26737:63:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26718:82:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86368,"nodeType":"Block","src":"27161:229:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86351,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86302,"src":"27183:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":86352,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"27189:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27195:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"27189:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27183:21:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86355,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85567,"src":"27206:17:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27206:19:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27175:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27175:51:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86358,"nodeType":"ExpressionStatement","src":"27175:51:169"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86359,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86302,"src":"27245:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86360,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86308,"src":"27250:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27245:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86367,"nodeType":"IfStatement","src":"27241:69:169","trueBody":{"id":86366,"nodeType":"Block","src":"27262:48:169","statements":[{"expression":{"id":86364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86362,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86302,"src":"27280:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86363,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86308,"src":"27285:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27280:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86365,"nodeType":"ExpressionStatement","src":"27280:15:169"}]}}]},"id":86369,"nodeType":"IfStatement","src":"26714:676:169","trueBody":{"id":86349,"nodeType":"Block","src":"26802:353:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86328,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86302,"src":"26824:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":86329,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86290,"src":"26830:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26837:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"26830:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":86331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26850:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85757,"src":"26830:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"26824:35:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86333,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85561,"src":"26861:23:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26861:25:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86327,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26816:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26816:71:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86336,"nodeType":"ExpressionStatement","src":"26816:71:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86338,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86302,"src":"26909:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":86339,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86290,"src":"26914:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26921:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"26914:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"id":86341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26931:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85846,"src":"26914:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26909:25:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":86343,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86308,"src":"26938:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26909:39:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86345,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85564,"src":"26950:29:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26950:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86337,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26901:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26901:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86348,"nodeType":"ExpressionStatement","src":"26901:81:169"}]}},{"assignments":[86372],"declarations":[{"constant":false,"id":86372,"mutability":"mutable","name":"validators","nameLocation":"27471:10:169","nodeType":"VariableDeclaration","scope":86535,"src":"27452:29:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86371,"nodeType":"UserDefinedTypeName","pathNode":{"id":86370,"name":"Validators","nameLocations":["27452:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"27452:10:169"},"referencedDeclaration":85606,"src":"27452:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":86377,"initialValue":{"arguments":[{"id":86374,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86290,"src":"27497:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":86375,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86302,"src":"27505:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86373,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86608,"src":"27484:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":86376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:24:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27452:56:169"},{"assignments":[86379],"declarations":[{"constant":false,"id":86379,"mutability":"mutable","name":"_messageHash","nameLocation":"27526:12:169","nodeType":"VariableDeclaration","scope":86535,"src":"27518:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27518:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":86387,"initialValue":{"arguments":[{"id":86385,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86294,"src":"27587:9:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":86382,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27549:4:169","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$86834","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$86834","typeString":"library Gear"}],"id":86381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27541:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86380,"name":"address","nodeType":"ElementaryTypeName","src":"27541:7:169","typeDescriptions":{}}},"id":86383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27541:13:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":86384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27555:31:169","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":10204,"src":"27541:45:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":86386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27541:56:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27518:79:169"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"},"id":86391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86388,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86297,"src":"27612:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86389,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85909,"src":"27630:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$85909_$","typeString":"type(enum Gear.SignatureType)"}},"id":86390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27644:5:169","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":85907,"src":"27630:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"}},"src":"27612:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"},"id":86444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86441,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86297,"src":"28808:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":86442,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85909,"src":"28826:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$85909_$","typeString":"type(enum Gear.SignatureType)"}},"id":86443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28840:5:169","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":85908,"src":"28826:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"}},"src":"28808:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86531,"nodeType":"IfStatement","src":"28804:1299:169","trueBody":{"id":86530,"nodeType":"Block","src":"28847:1256:169","statements":[{"assignments":[86446],"declarations":[{"constant":false,"id":86446,"mutability":"mutable","name":"threshold","nameLocation":"28869:9:169","nodeType":"VariableDeclaration","scope":86530,"src":"28861:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86445,"name":"uint256","nodeType":"ElementaryTypeName","src":"28861:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86458,"initialValue":{"arguments":[{"expression":{"expression":{"id":86448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86372,"src":"28918:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28929:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"28918:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":86450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28934:6:169","memberName":"length","nodeType":"MemberAccess","src":"28918:22:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":86451,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86290,"src":"28958:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28965:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"28958:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28984:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85854,"src":"28958:44:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":86454,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86290,"src":"29020:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29027:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"29020:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29046:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85856,"src":"29020:46:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":86447,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86721,"src":"28881:19:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":86457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28881:199:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28861:219:169"},{"assignments":[86460],"declarations":[{"constant":false,"id":86460,"mutability":"mutable","name":"validSignatures","nameLocation":"29103:15:169","nodeType":"VariableDeclaration","scope":86530,"src":"29095:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86459,"name":"uint256","nodeType":"ElementaryTypeName","src":"29095:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86462,"initialValue":{"hexValue":"30","id":86461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29121:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29095:27:169"},{"body":{"id":86526,"nodeType":"Block","src":"29186:880:169","statements":[{"assignments":[86475],"declarations":[{"constant":false,"id":86475,"mutability":"mutable","name":"signature","nameLocation":"29219:9:169","nodeType":"VariableDeclaration","scope":86526,"src":"29204:24:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86474,"name":"bytes","nodeType":"ElementaryTypeName","src":"29204:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":86479,"initialValue":{"baseExpression":{"id":86476,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"29231:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86478,"indexExpression":{"id":86477,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86464,"src":"29243:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29231:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"29204:41:169"},{"assignments":[86481],"declarations":[{"constant":false,"id":86481,"mutability":"mutable","name":"validator","nameLocation":"29272:9:169","nodeType":"VariableDeclaration","scope":86526,"src":"29264:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":86480,"name":"address","nodeType":"ElementaryTypeName","src":"29264:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":86486,"initialValue":{"arguments":[{"id":86484,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86475,"src":"29305:9:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":86482,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86379,"src":"29284:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29297:7:169","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"29284:20:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":86485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29284:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"29264:51:169"},{"condition":{"baseExpression":{"expression":{"id":86487,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86372,"src":"29338:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29349:3:169","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85598,"src":"29338:14:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":86490,"indexExpression":{"id":86489,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86481,"src":"29353:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29338:25:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86525,"nodeType":"IfStatement","src":"29334:718:169","trueBody":{"id":86524,"nodeType":"Block","src":"29365:687:169","statements":[{"assignments":[86493],"declarations":[{"constant":false,"id":86493,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"29590:30:169","nodeType":"VariableDeclaration","scope":86524,"src":"29582:38:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29582:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev SECURITY:\n We use transient storage to prevent multiple signatures from the same validator.","id":86498,"initialValue":{"arguments":[{"id":86496,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86481,"src":"29660:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":86494,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86292,"src":"29623:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29646:13:169","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":6651,"src":"29623:36:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,address) pure returns (bytes32)"}},"id":86497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29623:47:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"29582:88:169"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86499,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86493,"src":"29697:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29728:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":8395,"src":"29697:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$8380_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":86501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29697:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$8380","typeString":"TransientSlot.BooleanSlot"}},"id":86502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29740:5:169","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":8479,"src":"29697:48:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$8380_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$8380_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":86503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29697:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86514,"nodeType":"Block","src":"29812:104:169","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":86511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29888:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":86506,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86493,"src":"29838:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":86508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29869:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":8395,"src":"29838:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$8380_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":86509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29838:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$8380","typeString":"TransientSlot.BooleanSlot"}},"id":86510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29881:6:169","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":8490,"src":"29838:49:169","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$8380_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$8380_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":86512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29838:55:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86513,"nodeType":"ExpressionStatement","src":"29838:55:169"}]},"id":86515,"nodeType":"IfStatement","src":"29693:223:169","trueBody":{"id":86505,"nodeType":"Block","src":"29749:57:169","statements":[{"id":86504,"nodeType":"Continue","src":"29775:8:169"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"29942:17:169","subExpression":{"id":86516,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86460,"src":"29944:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86518,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86446,"src":"29963:9:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29942:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86523,"nodeType":"IfStatement","src":"29938:96:169","trueBody":{"id":86522,"nodeType":"Block","src":"29974:60:169","statements":[{"expression":{"hexValue":"74727565","id":86520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30007:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":86306,"id":86521,"nodeType":"Return","src":"30000:11:169"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86467,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86464,"src":"29157:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":86468,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"29161:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29173:6:169","memberName":"length","nodeType":"MemberAccess","src":"29161:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29157:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86527,"initializationExpression":{"assignments":[86464],"declarations":[{"constant":false,"id":86464,"mutability":"mutable","name":"i","nameLocation":"29150:1:169","nodeType":"VariableDeclaration","scope":86527,"src":"29142:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86463,"name":"uint256","nodeType":"ElementaryTypeName","src":"29142:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86466,"initialValue":{"hexValue":"30","id":86465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29154:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29142:13:169"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":86472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29181:3:169","subExpression":{"id":86471,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86464,"src":"29181:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86473,"nodeType":"ExpressionStatement","src":"29181:3:169"},"nodeType":"ForStatement","src":"29137:929:169"},{"expression":{"hexValue":"66616c7365","id":86528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30087:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86306,"id":86529,"nodeType":"Return","src":"30080:12:169"}]}},"id":86532,"nodeType":"IfStatement","src":"27608:2495:169","trueBody":{"id":86440,"nodeType":"Block","src":"27651:1147:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86393,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"27673:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27685:6:169","memberName":"length","nodeType":"MemberAccess","src":"27673:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":86395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27695:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27673:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86397,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85570,"src":"27698:26:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27698:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86392,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27665:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27665:62:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86400,"nodeType":"ExpressionStatement","src":"27665:62:169"},{"assignments":[86402],"declarations":[{"constant":false,"id":86402,"mutability":"mutable","name":"_signature","nameLocation":"27755:10:169","nodeType":"VariableDeclaration","scope":86440,"src":"27742:23:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86401,"name":"bytes","nodeType":"ElementaryTypeName","src":"27742:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":86406,"initialValue":{"baseExpression":{"id":86403,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86300,"src":"27768:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":86405,"indexExpression":{"hexValue":"30","id":86404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27780:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27768:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27742:40:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86408,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86402,"src":"27804:10:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":86409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27815:6:169","memberName":"length","nodeType":"MemberAccess","src":"27804:17:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":86410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27825:2:169","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"27804:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86412,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85573,"src":"27829:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27829:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27796:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27796:63:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86415,"nodeType":"ExpressionStatement","src":"27796:63:169"},{"assignments":[86417],"declarations":[{"constant":false,"id":86417,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"27882:21:169","nodeType":"VariableDeclaration","scope":86440,"src":"27874:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86416,"name":"uint256","nodeType":"ElementaryTypeName","src":"27874:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86418,"nodeType":"VariableDeclarationStatement","src":"27874:29:169"},{"assignments":[86420],"declarations":[{"constant":false,"id":86420,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"27925:21:169","nodeType":"VariableDeclaration","scope":86440,"src":"27917:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86419,"name":"uint256","nodeType":"ElementaryTypeName","src":"27917:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86421,"nodeType":"VariableDeclarationStatement","src":"27917:29:169"},{"assignments":[86423],"declarations":[{"constant":false,"id":86423,"mutability":"mutable","name":"_signatureZ","nameLocation":"27968:11:169","nodeType":"VariableDeclaration","scope":86440,"src":"27960:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86422,"name":"uint256","nodeType":"ElementaryTypeName","src":"27960:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86424,"nodeType":"VariableDeclarationStatement","src":"27960:19:169"},{"AST":{"nativeSrc":"28019:215:169","nodeType":"YulBlock","src":"28019:215:169","statements":[{"nativeSrc":"28037:53:169","nodeType":"YulAssignment","src":"28037:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"28072:10:169","nodeType":"YulIdentifier","src":"28072:10:169"},{"kind":"number","nativeSrc":"28084:4:169","nodeType":"YulLiteral","src":"28084:4:169","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28068:3:169","nodeType":"YulIdentifier","src":"28068:3:169"},"nativeSrc":"28068:21:169","nodeType":"YulFunctionCall","src":"28068:21:169"}],"functionName":{"name":"mload","nativeSrc":"28062:5:169","nodeType":"YulIdentifier","src":"28062:5:169"},"nativeSrc":"28062:28:169","nodeType":"YulFunctionCall","src":"28062:28:169"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"28037:21:169","nodeType":"YulIdentifier","src":"28037:21:169"}]},{"nativeSrc":"28107:53:169","nodeType":"YulAssignment","src":"28107:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"28142:10:169","nodeType":"YulIdentifier","src":"28142:10:169"},{"kind":"number","nativeSrc":"28154:4:169","nodeType":"YulLiteral","src":"28154:4:169","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"28138:3:169","nodeType":"YulIdentifier","src":"28138:3:169"},"nativeSrc":"28138:21:169","nodeType":"YulFunctionCall","src":"28138:21:169"}],"functionName":{"name":"mload","nativeSrc":"28132:5:169","nodeType":"YulIdentifier","src":"28132:5:169"},"nativeSrc":"28132:28:169","nodeType":"YulFunctionCall","src":"28132:28:169"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"28107:21:169","nodeType":"YulIdentifier","src":"28107:21:169"}]},{"nativeSrc":"28177:43:169","nodeType":"YulAssignment","src":"28177:43:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"28202:10:169","nodeType":"YulIdentifier","src":"28202:10:169"},{"kind":"number","nativeSrc":"28214:4:169","nodeType":"YulLiteral","src":"28214:4:169","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"28198:3:169","nodeType":"YulIdentifier","src":"28198:3:169"},"nativeSrc":"28198:21:169","nodeType":"YulFunctionCall","src":"28198:21:169"}],"functionName":{"name":"mload","nativeSrc":"28192:5:169","nodeType":"YulIdentifier","src":"28192:5:169"},"nativeSrc":"28192:28:169","nodeType":"YulFunctionCall","src":"28192:28:169"},"variableNames":[{"name":"_signatureZ","nativeSrc":"28177:11:169","nodeType":"YulIdentifier","src":"28177:11:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":86402,"isOffset":false,"isSlot":false,"src":"28072:10:169","valueSize":1},{"declaration":86402,"isOffset":false,"isSlot":false,"src":"28142:10:169","valueSize":1},{"declaration":86402,"isOffset":false,"isSlot":false,"src":"28202:10:169","valueSize":1},{"declaration":86417,"isOffset":false,"isSlot":false,"src":"28037:21:169","valueSize":1},{"declaration":86420,"isOffset":false,"isSlot":false,"src":"28107:21:169","valueSize":1},{"declaration":86423,"isOffset":false,"isSlot":false,"src":"28177:11:169","valueSize":1}],"flags":["memory-safe"],"id":86425,"nodeType":"InlineAssembly","src":"27994:240:169"},{"documentation":" @dev SECURITY: `FROST.isValidPublicKey(validators.aggregatedPublicKey.x, validators.aggregatedPublicKey.y)` is not called here,\n because it is already checked in `Router._resetValidators(...)`.","expression":{"arguments":[{"expression":{"expression":{"id":86428,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86372,"src":"28554:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28565:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85590,"src":"28554:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":86430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28585:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":85582,"src":"28554:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":86431,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86372,"src":"28604:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28615:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85590,"src":"28604:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":86433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28635:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":85584,"src":"28604:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86434,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86417,"src":"28654:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86435,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86420,"src":"28693:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86436,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86423,"src":"28732:11:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":86437,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86379,"src":"28761:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":86426,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61980,"src":"28515:5:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$61980_$","typeString":"type(library FROST)"}},"id":86427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28521:15:169","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":61979,"src":"28515:21:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,bytes32) view returns (bool)"}},"id":86438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28515:272:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":86306,"id":86439,"nodeType":"Return","src":"28508:279:169"}]}},{"expression":{"hexValue":"66616c7365","id":86533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30120:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":86306,"id":86534,"nodeType":"Return","src":"30113:12:169"}]},"documentation":{"id":86287,"nodeType":"StructuredDocumentation","src":"25834:480:169","text":" @dev Validates signatures of the given data hash at the given timestamp.\n @param router The router storage.\n @param routerTransientStorage The router transient storage slot for this validation.\n @param _dataHash The hash of the data to validate signatures for.\n @param _signatureType The type of signatures to validate.\n @param _signatures The signatures to validate.\n @param ts The timestamp at which to validate signatures."},"implemented":true,"kind":"function","modifiers":[],"name":"validateSignaturesAt","nameLocation":"26328:20:169","parameters":{"id":86303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86290,"mutability":"mutable","name":"router","nameLocation":"26382:6:169","nodeType":"VariableDeclaration","scope":86536,"src":"26358:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86289,"nodeType":"UserDefinedTypeName","pathNode":{"id":86288,"name":"IRouter.Storage","nameLocations":["26358:7:169","26366:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"26358:15:169"},"referencedDeclaration":76458,"src":"26358:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86292,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"26406:22:169","nodeType":"VariableDeclaration","scope":86536,"src":"26398:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26398:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86294,"mutability":"mutable","name":"_dataHash","nameLocation":"26446:9:169","nodeType":"VariableDeclaration","scope":86536,"src":"26438:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26438:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86297,"mutability":"mutable","name":"_signatureType","nameLocation":"26479:14:169","nodeType":"VariableDeclaration","scope":86536,"src":"26465:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"},"typeName":{"id":86296,"nodeType":"UserDefinedTypeName","pathNode":{"id":86295,"name":"SignatureType","nameLocations":["26465:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":85909,"src":"26465:13:169"},"referencedDeclaration":85909,"src":"26465:13:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":86300,"mutability":"mutable","name":"_signatures","nameLocation":"26520:11:169","nodeType":"VariableDeclaration","scope":86536,"src":"26503:28:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":86298,"name":"bytes","nodeType":"ElementaryTypeName","src":"26503:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":86299,"nodeType":"ArrayTypeName","src":"26503:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":86302,"mutability":"mutable","name":"ts","nameLocation":"26549:2:169","nodeType":"VariableDeclaration","scope":86536,"src":"26541:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86301,"name":"uint256","nodeType":"ElementaryTypeName","src":"26541:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26348:209:169"},"returnParameters":{"id":86306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86536,"src":"26576:4:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86304,"name":"bool","nodeType":"ElementaryTypeName","src":"26576:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26575:6:169"},"scope":86834,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":86553,"nodeType":"FunctionDefinition","src":"30251:166:169","nodes":[],"body":{"id":86552,"nodeType":"Block","src":"30356:61:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":86547,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86540,"src":"30386:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":86548,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30394:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30400:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"30394:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86546,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86608,"src":"30373:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":86550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30373:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":86545,"id":86551,"nodeType":"Return","src":"30366:44:169"}]},"documentation":{"id":86537,"nodeType":"StructuredDocumentation","src":"30138:108:169","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"30260:20:169","parameters":{"id":86541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86540,"mutability":"mutable","name":"router","nameLocation":"30305:6:169","nodeType":"VariableDeclaration","scope":86553,"src":"30281:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86539,"nodeType":"UserDefinedTypeName","pathNode":{"id":86538,"name":"IRouter.Storage","nameLocations":["30281:7:169","30289:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"30281:15:169"},"referencedDeclaration":76458,"src":"30281:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"30280:32:169"},"returnParameters":{"id":86545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86553,"src":"30336:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86543,"nodeType":"UserDefinedTypeName","pathNode":{"id":86542,"name":"Validators","nameLocations":["30336:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"30336:10:169"},"referencedDeclaration":85606,"src":"30336:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"30335:20:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86580,"nodeType":"FunctionDefinition","src":"30623:322:169","nodes":[],"body":{"id":86579,"nodeType":"Block","src":"30729:216:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":86564,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86557,"src":"30769:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":86565,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"30777:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":86566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30783:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"30777:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86563,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86675,"src":"30743:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":86567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30743:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86577,"nodeType":"Block","src":"30870:69:169","statements":[{"expression":{"expression":{"expression":{"id":86573,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86557,"src":"30891:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30898:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"30891:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30917:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":85862,"src":"30891:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":86562,"id":86576,"nodeType":"Return","src":"30884:44:169"}]},"id":86578,"nodeType":"IfStatement","src":"30739:200:169","trueBody":{"id":86572,"nodeType":"Block","src":"30795:69:169","statements":[{"expression":{"expression":{"expression":{"id":86568,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86557,"src":"30816:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30823:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"30816:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30842:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85859,"src":"30816:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":86562,"id":86571,"nodeType":"Return","src":"30809:44:169"}]}}]},"documentation":{"id":86554,"nodeType":"StructuredDocumentation","src":"30423:195:169","text":" @dev Returns previous era validators, if there is no previous era,\n then returns free validators slot, which must be zeroed.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"previousEraValidators","nameLocation":"30632:21:169","parameters":{"id":86558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86557,"mutability":"mutable","name":"router","nameLocation":"30678:6:169","nodeType":"VariableDeclaration","scope":86580,"src":"30654:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86556,"nodeType":"UserDefinedTypeName","pathNode":{"id":86555,"name":"IRouter.Storage","nameLocations":["30654:7:169","30662:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"30654:15:169"},"referencedDeclaration":76458,"src":"30654:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"30653:32:169"},"returnParameters":{"id":86562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86580,"src":"30709:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86560,"nodeType":"UserDefinedTypeName","pathNode":{"id":86559,"name":"Validators","nameLocations":["30709:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"30709:10:169"},"referencedDeclaration":85606,"src":"30709:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"30708:20:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86608,"nodeType":"FunctionDefinition","src":"31082:312:169","nodes":[],"body":{"id":86607,"nodeType":"Block","src":"31191:203:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":86593,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86584,"src":"31231:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":86594,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86586,"src":"31239:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86592,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86675,"src":"31205:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":86595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31205:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":86605,"nodeType":"Block","src":"31319:69:169","statements":[{"expression":{"expression":{"expression":{"id":86601,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86584,"src":"31340:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31347:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"31340:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31366:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85859,"src":"31340:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":86591,"id":86604,"nodeType":"Return","src":"31333:44:169"}]},"id":86606,"nodeType":"IfStatement","src":"31201:187:169","trueBody":{"id":86600,"nodeType":"Block","src":"31244:69:169","statements":[{"expression":{"expression":{"expression":{"id":86596,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86584,"src":"31265:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31272:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"31265:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31291:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":85862,"src":"31265:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":86591,"id":86599,"nodeType":"Return","src":"31258:44:169"}]}}]},"documentation":{"id":86581,"nodeType":"StructuredDocumentation","src":"30951:126:169","text":" @dev Returns validators at the given timestamp.\n @param ts Timestamp for which to get the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsAt","nameLocation":"31091:12:169","parameters":{"id":86587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86584,"mutability":"mutable","name":"router","nameLocation":"31128:6:169","nodeType":"VariableDeclaration","scope":86608,"src":"31104:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86583,"nodeType":"UserDefinedTypeName","pathNode":{"id":86582,"name":"IRouter.Storage","nameLocations":["31104:7:169","31112:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"31104:15:169"},"referencedDeclaration":76458,"src":"31104:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86586,"mutability":"mutable","name":"ts","nameLocation":"31144:2:169","nodeType":"VariableDeclaration","scope":86608,"src":"31136:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86585,"name":"uint256","nodeType":"ElementaryTypeName","src":"31136:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31103:44:169"},"returnParameters":{"id":86591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86608,"src":"31171:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86589,"nodeType":"UserDefinedTypeName","pathNode":{"id":86588,"name":"Validators","nameLocations":["31171:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"31171:10:169"},"referencedDeclaration":85606,"src":"31171:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"31170:20:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86675,"nodeType":"FunctionDefinition","src":"31801:863:169","nodes":[],"body":{"id":86674,"nodeType":"Block","src":"31945:719:169","nodes":[],"statements":[{"assignments":[86620],"declarations":[{"constant":false,"id":86620,"mutability":"mutable","name":"ts0","nameLocation":"31963:3:169","nodeType":"VariableDeclaration","scope":86674,"src":"31955:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86619,"name":"uint256","nodeType":"ElementaryTypeName","src":"31955:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86625,"initialValue":{"expression":{"expression":{"expression":{"id":86621,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86612,"src":"31969:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31976:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"31969:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31995:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85859,"src":"31969:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}},"id":86624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32007:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85605,"src":"31969:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31955:68:169"},{"assignments":[86627],"declarations":[{"constant":false,"id":86627,"mutability":"mutable","name":"ts1","nameLocation":"32041:3:169","nodeType":"VariableDeclaration","scope":86674,"src":"32033:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86626,"name":"uint256","nodeType":"ElementaryTypeName","src":"32033:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86632,"initialValue":{"expression":{"expression":{"expression":{"id":86628,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86612,"src":"32047:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32054:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"32047:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":86630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32073:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":85862,"src":"32047:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}},"id":86631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32085:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85605,"src":"32047:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32033:68:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86634,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86620,"src":"32175:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":86635,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86627,"src":"32182:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32175:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86637,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85576,"src":"32187:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32187:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86633,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"32167:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32167:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86640,"nodeType":"ExpressionStatement","src":"32167:50:169"},{"assignments":[86642],"declarations":[{"constant":false,"id":86642,"mutability":"mutable","name":"ts1Greater","nameLocation":"32233:10:169","nodeType":"VariableDeclaration","scope":86674,"src":"32228:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86641,"name":"bool","nodeType":"ElementaryTypeName","src":"32228:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":86646,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86643,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86620,"src":"32246:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":86644,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86627,"src":"32252:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32246:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"32228:27:169"},{"assignments":[86648],"declarations":[{"constant":false,"id":86648,"mutability":"mutable","name":"tsGe0","nameLocation":"32270:5:169","nodeType":"VariableDeclaration","scope":86674,"src":"32265:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86647,"name":"bool","nodeType":"ElementaryTypeName","src":"32265:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":86652,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86649,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86620,"src":"32278:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":86650,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86614,"src":"32285:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32278:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"32265:22:169"},{"assignments":[86654],"declarations":[{"constant":false,"id":86654,"mutability":"mutable","name":"tsGe1","nameLocation":"32302:5:169","nodeType":"VariableDeclaration","scope":86674,"src":"32297:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86653,"name":"bool","nodeType":"ElementaryTypeName","src":"32297:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":86658,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86655,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86627,"src":"32310:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":86656,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86614,"src":"32317:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32310:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"32297:22:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86660,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86648,"src":"32411:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":86661,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86654,"src":"32420:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32411:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":86663,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85579,"src":"32427:30:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32427:32:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":86659,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"32403:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":86665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32403:57:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86666,"nodeType":"ExpressionStatement","src":"32403:57:169"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86667,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86642,"src":"32627:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":86670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86668,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86648,"src":"32642:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":86669,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86654,"src":"32651:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32642:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":86671,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32641:16:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32627:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":86618,"id":86673,"nodeType":"Return","src":"32620:37:169"}]},"documentation":{"id":86609,"nodeType":"StructuredDocumentation","src":"31400:396:169","text":" @dev Returns `true` if validators at `ts` are stored in `router.validationSettings.validators1`.\n `false` means that current era validators are stored in `router.validationSettings.validators0`.\n @param ts Timestamp for which to check the validators slot.\n @return isSlot1 Whether validators at `ts` are stored in `router.validationSettings.validators1`."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsStoredInSlot1At","nameLocation":"31810:25:169","parameters":{"id":86615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86612,"mutability":"mutable","name":"router","nameLocation":"31860:6:169","nodeType":"VariableDeclaration","scope":86675,"src":"31836:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86611,"nodeType":"UserDefinedTypeName","pathNode":{"id":86610,"name":"IRouter.Storage","nameLocations":["31836:7:169","31844:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"31836:15:169"},"referencedDeclaration":76458,"src":"31836:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86614,"mutability":"mutable","name":"ts","nameLocation":"31876:2:169","nodeType":"VariableDeclaration","scope":86675,"src":"31868:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86613,"name":"uint256","nodeType":"ElementaryTypeName","src":"31868:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31835:44:169"},"returnParameters":{"id":86618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86617,"mutability":"mutable","name":"isSlot1","nameLocation":"31932:7:169","nodeType":"VariableDeclaration","scope":86675,"src":"31927:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86616,"name":"bool","nodeType":"ElementaryTypeName","src":"31927:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31926:14:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86721,"nodeType":"FunctionDefinition","src":"33166:456:169","nodes":[],"body":{"id":86720,"nodeType":"Block","src":"33349:273:169","nodes":[],"statements":[{"assignments":[86688],"declarations":[{"constant":false,"id":86688,"mutability":"mutable","name":"a","nameLocation":"33367:1:169","nodeType":"VariableDeclaration","scope":86720,"src":"33359:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86687,"name":"uint256","nodeType":"ElementaryTypeName","src":"33359:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86689,"nodeType":"VariableDeclarationStatement","src":"33359:9:169"},{"id":86696,"nodeType":"UncheckedBlock","src":"33378:76:169","statements":[{"expression":{"id":86694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86690,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86688,"src":"33402:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86691,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86678,"src":"33406:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":86692,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86680,"src":"33425:18:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"33406:37:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33402:41:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86695,"nodeType":"ExpressionStatement","src":"33402:41:169"}]},{"assignments":[86698],"declarations":[{"constant":false,"id":86698,"mutability":"mutable","name":"d","nameLocation":"33471:1:169","nodeType":"VariableDeclaration","scope":86720,"src":"33463:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86697,"name":"uint256","nodeType":"ElementaryTypeName","src":"33463:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86702,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86699,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86688,"src":"33475:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":86700,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86682,"src":"33479:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"33475:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33463:36:169"},{"assignments":[86704],"declarations":[{"constant":false,"id":86704,"mutability":"mutable","name":"r","nameLocation":"33517:1:169","nodeType":"VariableDeclaration","scope":86720,"src":"33509:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86703,"name":"uint256","nodeType":"ElementaryTypeName","src":"33509:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":86708,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86705,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86688,"src":"33521:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":86706,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86682,"src":"33525:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"33521:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33509:36:169"},{"id":86719,"nodeType":"UncheckedBlock","src":"33555:61:169","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86709,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86704,"src":"33587:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":86710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33591:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"33587:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":86712,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33586:7:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":86716,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86698,"src":"33604:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":86717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33586:19:169","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86713,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86698,"src":"33596:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":86714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33600:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"33596:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86686,"id":86718,"nodeType":"Return","src":"33579:26:169"}]}]},"documentation":{"id":86676,"nodeType":"StructuredDocumentation","src":"32670:491:169","text":" @dev Calculates the threshold number of valid signatures required.\n The formula is:\n - `(validatorsAmount * thresholdNumerator).div_ceil(thresholdDenominator)`\n @param validatorsAmount The total number of validators.\n @param thresholdNumerator The numerator of the threshold fraction.\n @param thresholdDenominator The denominator of the threshold fraction.\n @return threshold The threshold number of valid signatures required."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"33175:19:169","parameters":{"id":86683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86678,"mutability":"mutable","name":"validatorsAmount","nameLocation":"33203:16:169","nodeType":"VariableDeclaration","scope":86721,"src":"33195:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86677,"name":"uint256","nodeType":"ElementaryTypeName","src":"33195:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":86680,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"33229:18:169","nodeType":"VariableDeclaration","scope":86721,"src":"33221:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86679,"name":"uint128","nodeType":"ElementaryTypeName","src":"33221:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":86682,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"33257:20:169","nodeType":"VariableDeclaration","scope":86721,"src":"33249:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":86681,"name":"uint128","nodeType":"ElementaryTypeName","src":"33249:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"33194:84:169"},"returnParameters":{"id":86686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86685,"mutability":"mutable","name":"threshold","nameLocation":"33334:9:169","nodeType":"VariableDeclaration","scope":86721,"src":"33326:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86684,"name":"uint256","nodeType":"ElementaryTypeName","src":"33326:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33325:19:169"},"scope":86834,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":86744,"nodeType":"FunctionDefinition","src":"33807:179:169","nodes":[],"body":{"id":86743,"nodeType":"Block","src":"33903:83:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":86732,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86727,"src":"33921:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":86733,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86725,"src":"33926:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33933:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"33926:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":86735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33946:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85757,"src":"33926:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"33921:34:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":86737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33920:36:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":86738,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86725,"src":"33959:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33966:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"33959:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"id":86740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33976:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85846,"src":"33959:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33920:59:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86731,"id":86742,"nodeType":"Return","src":"33913:66:169"}]},"documentation":{"id":86722,"nodeType":"StructuredDocumentation","src":"33628:174:169","text":" @dev Returns the era index for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era index."},"implemented":true,"kind":"function","modifiers":[],"name":"eraIndexAt","nameLocation":"33816:10:169","parameters":{"id":86728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86725,"mutability":"mutable","name":"router","nameLocation":"33851:6:169","nodeType":"VariableDeclaration","scope":86744,"src":"33827:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86724,"nodeType":"UserDefinedTypeName","pathNode":{"id":86723,"name":"IRouter.Storage","nameLocations":["33827:7:169","33835:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"33827:15:169"},"referencedDeclaration":76458,"src":"33827:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86727,"mutability":"mutable","name":"ts","nameLocation":"33867:2:169","nodeType":"VariableDeclaration","scope":86744,"src":"33859:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86726,"name":"uint256","nodeType":"ElementaryTypeName","src":"33859:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33826:44:169"},"returnParameters":{"id":86731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86744,"src":"33894:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86729,"name":"uint256","nodeType":"ElementaryTypeName","src":"33894:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33893:9:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86769,"nodeType":"FunctionDefinition","src":"34202:199:169","nodes":[],"body":{"id":86768,"nodeType":"Block","src":"34300:101:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":86755,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86748,"src":"34317:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34324:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"34317:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":86757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34337:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85757,"src":"34317:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":86765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":86759,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86748,"src":"34360:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":86760,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86750,"src":"34368:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86758,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86744,"src":"34349:10:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":86761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34349:22:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":86762,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86748,"src":"34374:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":86763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34381:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"34374:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"id":86764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34391:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85846,"src":"34374:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34349:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34317:77:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":86754,"id":86767,"nodeType":"Return","src":"34310:84:169"}]},"documentation":{"id":86745,"nodeType":"StructuredDocumentation","src":"33992:205:169","text":" @dev Returns the timestamp when the era started for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era start timestamp."},"implemented":true,"kind":"function","modifiers":[],"name":"eraStartedAt","nameLocation":"34211:12:169","parameters":{"id":86751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86748,"mutability":"mutable","name":"router","nameLocation":"34248:6:169","nodeType":"VariableDeclaration","scope":86769,"src":"34224:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":86747,"nodeType":"UserDefinedTypeName","pathNode":{"id":86746,"name":"IRouter.Storage","nameLocations":["34224:7:169","34232:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"34224:15:169"},"referencedDeclaration":76458,"src":"34224:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":86750,"mutability":"mutable","name":"ts","nameLocation":"34264:2:169","nodeType":"VariableDeclaration","scope":86769,"src":"34256:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86749,"name":"uint256","nodeType":"ElementaryTypeName","src":"34256:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34223:44:169"},"returnParameters":{"id":86754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86769,"src":"34291:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86752,"name":"uint256","nodeType":"ElementaryTypeName","src":"34291:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34290:9:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86792,"nodeType":"FunctionDefinition","src":"34741:467:169","nodes":[],"body":{"id":86791,"nodeType":"Block","src":"34887:321:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":86781,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86773,"src":"34959:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34970:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85590,"src":"34959:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":86783,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86773,"src":"35045:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35056:40:169","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":85593,"src":"35045:51:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":86785,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86773,"src":"35116:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35127:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"35116:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":86787,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86773,"src":"35163:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":86788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35174:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85605,"src":"35163:27:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":86779,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"34904:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":86780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34909:14:169","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":85618,"src":"34904:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$85618_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":86789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["34938:19:169","35003:40:169","35110:4:169","35145:16:169"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"34904:297:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":86778,"id":86790,"nodeType":"Return","src":"34897:304:169"}]},"documentation":{"id":86770,"nodeType":"StructuredDocumentation","src":"34407:329:169","text":" @dev Converts `Gear.Validators` storage to `Gear.ValidatorsView` struct.\n Note that `validators.map` is passed as `validators.list`.\n @param validators The `Gear.Validators` storage to convert.\n @return validatorsView `Gear.ValidatorsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"34750:6:169","parameters":{"id":86774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86773,"mutability":"mutable","name":"validators","nameLocation":"34781:10:169","nodeType":"VariableDeclaration","scope":86792,"src":"34757:34:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":86772,"nodeType":"UserDefinedTypeName","pathNode":{"id":86771,"name":"Gear.Validators","nameLocations":["34757:4:169","34762:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"34757:15:169"},"referencedDeclaration":85606,"src":"34757:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"34756:36:169"},"returnParameters":{"id":86778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86777,"mutability":"mutable","name":"validatorsView","nameLocation":"34867:14:169","nodeType":"VariableDeclaration","scope":86792,"src":"34840:41:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":86776,"nodeType":"UserDefinedTypeName","pathNode":{"id":86775,"name":"Gear.ValidatorsView","nameLocations":["34840:4:169","34845:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":85618,"src":"34840:19:169"},"referencedDeclaration":85618,"src":"34840:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"34839:43:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86833,"nodeType":"FunctionDefinition","src":"35505:581:169","nodes":[],"body":{"id":86832,"nodeType":"Block","src":"35663:423:169","nodes":[],"statements":[{"assignments":[86806],"declarations":[{"constant":false,"id":86806,"mutability":"mutable","name":"validators0","nameLocation":"35700:11:169","nodeType":"VariableDeclaration","scope":86832,"src":"35673:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":86805,"nodeType":"UserDefinedTypeName","pathNode":{"id":86804,"name":"Gear.ValidatorsView","nameLocations":["35673:4:169","35678:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":85618,"src":"35673:19:169"},"referencedDeclaration":85618,"src":"35673:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":86811,"initialValue":{"arguments":[{"expression":{"id":86808,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86796,"src":"35721:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":86809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35730:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85859,"src":"35721:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}],"id":86807,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[86792,86833],"referencedDeclaration":86792,"src":"35714:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$85606_storage_ptr_$returns$_t_struct$_ValidatorsView_$85618_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":86810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35714:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"35673:69:169"},{"assignments":[86816],"declarations":[{"constant":false,"id":86816,"mutability":"mutable","name":"validators1","nameLocation":"35779:11:169","nodeType":"VariableDeclaration","scope":86832,"src":"35752:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":86815,"nodeType":"UserDefinedTypeName","pathNode":{"id":86814,"name":"Gear.ValidatorsView","nameLocations":["35752:4:169","35757:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":85618,"src":"35752:19:169"},"referencedDeclaration":85618,"src":"35752:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":86821,"initialValue":{"arguments":[{"expression":{"id":86818,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86796,"src":"35800:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":86819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35809:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":85862,"src":"35800:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}],"id":86817,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[86792,86833],"referencedDeclaration":86792,"src":"35793:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$85606_storage_ptr_$returns$_t_struct$_ValidatorsView_$85618_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":86820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35793:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"35752:69:169"},{"expression":{"arguments":[{"expression":{"id":86824,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86796,"src":"35900:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":86825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35909:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85854,"src":"35900:27:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":86826,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86796,"src":"35963:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":86827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35972:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85856,"src":"35963:29:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":86828,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86806,"src":"36019:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":86829,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86816,"src":"36057:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$85618_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":86822,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"35838:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":86823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35843:22:169","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":85875,"src":"35838:27:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$85875_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":86830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["35880:18:169","35941:20:169","36006:11:169","36044:11:169"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"35838:241:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85875_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":86801,"id":86831,"nodeType":"Return","src":"35831:248:169"}]},"documentation":{"id":86793,"nodeType":"StructuredDocumentation","src":"35214:286:169","text":" @dev Converts `Gear.ValidationSettings` storage to `Gear.ValidationSettingsView` struct.\n @param settings The `Gear.ValidationSettings` storage to convert.\n @return settingsView `Gear.ValidationSettingsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"35514:6:169","parameters":{"id":86797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86796,"mutability":"mutable","name":"settings","nameLocation":"35553:8:169","nodeType":"VariableDeclaration","scope":86833,"src":"35521:40:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":86795,"nodeType":"UserDefinedTypeName","pathNode":{"id":86794,"name":"Gear.ValidationSettings","nameLocations":["35521:4:169","35526:18:169"],"nodeType":"IdentifierPath","referencedDeclaration":85863,"src":"35521:23:169"},"referencedDeclaration":85863,"src":"35521:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"35520:42:169"},"returnParameters":{"id":86801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86800,"mutability":"mutable","name":"settingsView","nameLocation":"35645:12:169","nodeType":"VariableDeclaration","scope":86833,"src":"35610:47:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85875_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":86799,"nodeType":"UserDefinedTypeName","pathNode":{"id":86798,"name":"Gear.ValidationSettingsView","nameLocations":["35610:4:169","35615:22:169"],"nodeType":"IdentifierPath","referencedDeclaration":85875,"src":"35610:27:169"},"referencedDeclaration":85875,"src":"35610:27:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85875_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"35609:49:169"},"scope":86834,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":85520,"nodeType":"StructuredDocumentation","src":"784:770:169","text":" @dev Library for core protocol utility functions for hashing, validation, and consensus-related logic.\n It provides:\n - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions)\n - Validator set management with era-based switching and threshold configuration\n - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures\n with transient storage to prevent double counting of signatures\n - Era and timeline utilities for selecting correct validator sets based on timestamp\n The library acts as a shared foundation for consensus, validation, and commitment verification\n across all protocol components."},"fullyImplemented":true,"linearizedBaseContracts":[86834],"name":"Gear","nameLocation":"1563:4:169","scope":86835,"usedErrors":[85561,85564,85567,85570,85573,85576,85579],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":169} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Middleware.json b/ethexe/ethereum/abi/Middleware.json index 79597a9886f..61556a8af7a 100644 --- a/ethexe/ethereum/abi/Middleware.json +++ b/ethexe/ethereum/abi/Middleware.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"_commitment","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashes","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"activeOperators","type":"address[]","internalType":"address[]"},{"name":"stakes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"stake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"maxValidators","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerVault","inputs":[{"name":"_vault","type":"address","internalType":"address"},{"name":"_rewards","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"data","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyAdded","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnumerableMapNonexistentKey","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotEnabled","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020613d365f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6f90816100c78239608051818181611c690152611d380152f35b6001600160401b0319166001600160401b039081175f516020613d365f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;7983:34:30;7979:146;;-1:-1:-1;2376:21827:160;;;;;;;;1052:13:60;2376:21827:160;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;8085:29:30;;2376:21827:160;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;2376:21827:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7849:17;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;2357:1:29;2376:21827:160;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;2376:21827:160;;;;;;;;;;;;;;;9103:10;9074:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9074:20;9103:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;13809:372;2376:21827;;:::i;:::-;;;:::i;:::-;22945:2;;;;:::i;:::-;13809:372;:::i;:::-;2376:21827;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7536:21;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7422:30:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7422:30;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7641:21;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7296:34:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7296:34;2376:21827;;;;;;;;;;;;;;;;;;;;;;7747:22;-1:-1:-1;;;;;;;;;;;2376:21827:160;7747:22;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;:::i;:::-;;;;;;7981:20;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;16223:38;;2376:21827;-1:-1:-1;;;;;2376:21827:160;16209:10;:52;16205:108;;2376:21827;;;;16328:9;16339:18;;;;;;2376:21827;;;16359:3;16411:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;8806:28:86;;16441:17:160;;-1:-1:-1;;;;;16468:11:160;2376:21827;16468:11;:::i;:::-;2376:21827;8806:28:86;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;16440:40:160;16436:106;;2376:21827;;-1:-1:-1;;;;;16576:11:160;;;:::i;:::-;2376:21827;;;;;;;;;;16569:29;;;;;;;;;2376:21827;16569:29;;;;;;;16359:3;2376:21827;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16556:83;;16613:11;2376:21827;;16556:83;;2376:21827;;;;;;;;;;;:::i;:::-;16556:83;;-1:-1:-1;;;;;2376:21827:160;16556:83;;;;;;;2376:21827;16556:83;;;16359:3;;2376:21827;16328:9;;16556:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;16569:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;16436:106;-1:-1:-1;;;16507:20:160;;2376:21827;15830:20;16507;16205:108;-1:-1:-1;;;16284:18:160;;2376:21827;8477:18;16284;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;4301:16:30;2376:21827:160;;4724:16:30;;:34;;;;2376:21827:160;4803:1:30;4788:16;:50;;;;2376:21827:160;4853:13:30;:30;;;;2376:21827:160;4849:91:30;;;2376:21827:160;4803:1:30;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;3446:19;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;3501:29;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3564:27;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3622:24;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3676:23;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3736:30;2376:21827;;;;;;;;;4803:1:30;3709:24:160;;2376:21827;;;;;;;;;;3776:27;;;2376:21827;3806:33;2376:21827;;;3877:31;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;;;;3849:25:160;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;3942:27;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;4017:18;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;4002:12;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4068:4;3564:27;2376:21827;;4045:12;;2376:21827;4130:19;2376:21827;4114:13;;;2376:21827;4171:14;2376:21827;;;;;;;;4160:8;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4210:17;2376:21827;;;;;;;;4196:11;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;4255:33;;:::i;:::-;2376:21827;4238:69;;;;;2376:21827;;;;;;;;;;;;;4238:69;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;4343:35:160;;:::i;:::-;2376:21827;4317:91;;;;;2376:21827;;;3446:19;2376:21827;;;;;;;;;4317:91;;4068:4;2376:21827;4317:91;;2376:21827;4317:91;;;;;;;;2376:21827;;;;;;;;17713:17;2376:21827;;;;;;;;;4803:1:30;2376:21827:160;;;;;;;;;;;18102:44;;2376:21827;;;;;3564:27;2376:21827;;18377:48;2376:21827;;;;;;;;18665:45;2376:21827;;3736:30;2376:21827;;;;18840:21;;2376:21827;;;;;;19112:28;;2376:21827;;;19219:44;;;;:::i;:::-;2376:21827;19219:71;2376:21827;;3849:25;2376:21827;;19561:32;2376:21827;;5064:101:30;;2376:21827:160;;;5064:101:30;2376:21827:160;5140:14:30;2376:21827:160;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;4803:1:30;2376:21827:160;;5140:14:30;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;3033:1;2376:21827;;3446:19;2376:21827;;;-1:-1:-1;;;2376:21827:160;;;;;4317:91;;;;;:::i;:::-;2376:21827;;4317:91;;;;2376:21827;;;;4317:91;2376:21827;;;;;;;;;4238:69;;;;;:::i;:::-;2376:21827;;4238:69;;;;2376:21827;;;;;;;;;;;;4977:67:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;2376:21827:160;6496:23:30;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;2376:21827:160;;;;;;;;;;;;;;7164:36;-1:-1:-1;;;;;;;;;;;2376:21827:160;7164:36;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;9356:11;;;;3505:23:170;23973:47:85;2376:21827:160;9356:11;23973:47:85;:::i;:::-;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3505:23;-1:-1:-1;2376:21827:160;;;9401:17;;2376:21827;-1:-1:-1;9401:76:160;;;;2376:21827;9397:144;;;;21805:50:85;;;;:::i;:::-;;2376:21827:160;;9397:144;-1:-1:-1;;;9500:30:160;;2376:21827;9500:30;;9401:76;2376:21827;837:15:87;;;9441:36:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;9441:36;;:::i;:::-;2376:21827;;;9422:55;9401:76;;;;2376:21827;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;11781:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11756:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11756:17;11781:5;:::i;2376:21827::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8425:29;;2376:21827;;8425:29;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8411:10;:43;8407:99;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2376:21827:160;10308:8;;;;2376:21827;;;;;;;;;10294:10;:22;10290:71;;2376:21827;;;10396:12;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;10375:33;10371:90;;10471:30;;;;;;2376:21827;10516:13;;10670:8;2376:21827;10906:13;10670:8;;;10906:13;;2376:21827;;;;10511:677;10568:3;10535:24;;2376:21827;;10531:35;;;;;10623:27;;;;:::i;:::-;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;2376:21827:160;;;;5197:14:86;;2376:21827:160;;;;;;5197:26:86;10665:99:160;;2376:21827;;;;10884:58;2376:21827;;;;3710:23:170;2376:21827:160;23973:47:85;2376:21827:160;;;;;;;;;23973:47:85;;:::i;3710:23:170:-;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;-1:-1:-1;2376:21827:160;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10884:58;;;;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;:::i;:::-;10884:58;2376:21827;;10884:58;;;;;;:::i;:::-;2376:21827;;;;11041:14;;;2376:21827;;11041:14;;2376:21827;;11041:14;;-1:-1:-1;;;;;2376:21827:160;;;;;10956:106;;;;;2376:21827;;;;;;;;;;;;;;;;;;;10956:106;;2376:21827;10956:106;;2376:21827;;;;;;;;;;;;;;;;;;;:::i;:::-;10956:106;;;;;;;;;;;;;10568:3;2376:21827;;;11097:80;2376:21827;;;;;;;;;;;;;;;11129:47;;;2376:21827;;;;;;11129:47;;;;;;:::i;:::-;11097:80;:::i;:::-;10568:3;2376:21827;10516:13;;;10956:106;;;;;:::i;:::-;2376:21827;;10956:106;;;;;2376:21827;;;;;;;;;10956:106;2376:21827;;;10531:35;;11215:93;10531:35;;;2376:21827;;;;;11247:60;;;;2376:21827;;;;;;;;;;;;11247:60;;;11129:47;11247:60;;:::i;11215:93::-;2376:21827;;;;;11205:104;2376:21827;;;;;;10371:90;-1:-1:-1;;;10431:19:160;;2376:21827;20113:19;10431;10290:71;-1:-1:-1;;;10339:11:160;;2376:21827;9799:11;10339;2376:21827;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;9768:8;;;2376:21827;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;9754:10;:22;;;9750:71;;9844:12;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9835:21;;9831:78;;9943:27;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9919:101;;;;;;2376:21827;;;;;;;;;;;;9919:101;;2376:21827;9919:101;;2376:21827;;;;;;;;;;;;;;;9919:101;;;;;;;;2376:21827;;;;;;10048:30;;;;2376:21827;;;;;;;;10048:30;;;2376:21827;10048:30;;:::i;:::-;2376:21827;10038:41;;2376:21827;;;;;;9919:101;;;;;;:::i;:::-;2376:21827;;9919:101;;;;2376:21827;;;;;;;;;9831:78;-1:-1:-1;;;9879:19:160;;2376:21827;20113:19;9879;9750:71;-1:-1:-1;;;9799:11:160;;2376:21827;9799:11;;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;2376:21827:160;;3975:40:29;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8157:30;;2376:21827;;8157:30;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8143:10;:44;8139:101;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;8139:101;-1:-1:-1;;;8210:19:160;;2376:21827;15350:19;8210;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;6429:44:30;;;;;2376:21827:160;6425:105:30;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6959:1:30;;-1:-1:-1;;;;;2376:21827:160;6891:76:30;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;2376:21827:160;;;;;;;1800:178:73;2376:21827:160;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;6591:4:30;5155:33:160;;2376:21827;;;6591:4:30;5119:33:160;;2376:21827;;;;;;;;;;4573:1;5237:36;;2376:21827;4573:1;5198:36;;2376:21827;5364:63;5320:34;;;-1:-1:-1;;;;;2376:21827:160;;;;5283:34;;5320;5283;;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;5364:63;5461:21;;;;2376:21827;5437:21;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;5516:21;;;2376:21827;5492:21;;;2376:21827;5572:22;;;;2376:21827;5547:22;;;2376:21827;5624:17;;;;2376:21827;5604:17;;;2376:21827;;;;;;;;;;;5674:20;5651;;;;5674;;2376:21827;;;;;;-1:-1:-1;;5729:20:160;5850;;;;5710:13;5729:20;;;;5710:13;5760:3;2376:21827;;5725:33;;;;;5810:26;5850:36;5810:26;6591:4:30;5810:26:160;;;:::i;:::-;5850:36;;;:::i;:::-;;2376:21827;5710:13;;5725:33;-1:-1:-1;5931:17:160;6046;;;;5725:33;5931:17;5725:33;5959:3;2376:21827;;5927:30;;;;;6009:23;6046:33;6009:23;6591:4:30;6009:23:160;;;:::i;:::-;6046:33;;;:::i;:::-;;2376:21827;5912:13;;5927:30;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6654:20:30;2376:21827:160;;;4573:1;2376:21827;;6654:20:30;2376:21827:160;;;;;;-1:-1:-1;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;6425:105:30;-1:-1:-1;;;6496:23:30;;2376:21827:160;;6496:23:30;6429:44;4573:1:160;2376:21827;;-1:-1:-1;;;;;2376:21827:160;6448:25:30;;6429:44;;;2376:21827:160;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;2376:21827:160;4815:4:60;4807:23;4803:145;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;4803:145:60;-1:-1:-1;;;4908:29:60;;2376:21827:160;;4908:29:60;2376:21827:160;-1:-1:-1;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;2376:21827:160;4392:4:60;4384:23;;;:120;;;;2376:21827:160;4367:251:60;;;2303:62:29;;:::i;:::-;2376:21827:160;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;5865:52:60;;;;;;;2376:21827:160;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;2376:21827:160;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;2407:36:53;2376:21827:160;;2407:36:53;2376:21827:160;;2458:15:53;:11;;4107:55:66;4065:25;;;;;;;;2376:21827:160;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;2376:21827:160:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;;6159:70;;2376:21827:160;;6159:70:53;-1:-1:-1;;;6199:19:53;;2376:21827:160;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;2376:21827:160;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;2376:21827:160;;;6026:34:60;;5865:52;;;;2376:21827:160;5865:52:60;;2376:21827:160;5865:52:60;;;;;;2376:21827:160;5865:52:60;;;:::i;:::-;;;2376:21827:160;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;2376:21827:160;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;4462:42:60;;;-1:-1:-1;4384:120:60;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;9200:10;9172:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9172:20;9200:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;11664:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11638:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11638:17;11664:5;:::i;2376:21827::-;;;;;;;;;;;;;;;7032:33;-1:-1:-1;;;;;;;;;;;2376:21827:160;7032:33;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;8720:28;;;2376:21827;;;-1:-1:-1;;;8710:60:160;;8759:10;2376:21827;8710:60;;2376:21827;;;;;;8710:60;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8710:60;;;;;;;;;;;2376:21827;8709:61;;8705:121;;8854:24;;;2376:21827;;;-1:-1:-1;;;8840:76:160;;8759:10;2376:21827;8840:76;;2376:21827;8910:4;8710:60;2376:21827;;;;;;;;8840:76;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8840:76;;;;;;;;;;;2376:21827;8839:77;;8835:137;;2166:50:170;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;8759:10;8982:11;8759:10;8982:11;;2166:50:170;:::i;:::-;2165:51;2161:103;;2376:21827:160;;2161:103:170;-1:-1:-1;;;2239:14:170;;2376:21827:160;;2239:14:170;8835:137:160;-1:-1:-1;;;8939:22:160;;2376:21827;8939:22;;8840:76;;;;2376:21827;8840:76;2376:21827;8840:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;8705:121;-1:-1:-1;;;8793:22:160;;2376:21827;8793:22;;8710:60;;;;2376:21827;8710:60;2376:21827;8710:60;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;11943:8;;;;3505:23:170;23973:47:85;2376:21827:160;11943:8;23973:47:85;:::i;3505:23:170:-;-1:-1:-1;2376:21827:160;;;11982:17;;2376:21827;-1:-1:-1;11982:73:160;;;;2376:21827;11978:138;;;;21805:50:85;;;;:::i;11978:138:160:-;-1:-1:-1;;;12078:27:160;;2376:21827;12078:27;;11982:73;2376:21827;837:15:87;;;12022:33:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;12022:33;;:::i;:::-;2376:21827;;;12003:52;11982:73;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;15297:30;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;15283:10;:44;15279:101;;15395:9;2376:21827;;15390:726;15423:3;2376:21827;;;;;15406:15;;;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;8806:28:86;-1:-1:-1;;;;;15520:18:160;2376:21827;;;15520:18;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15498:41:160;15494:110;;15623:9;15663:3;15638:16;;;;2376:21827;;;15638:16;:::i;:::-;15634:27;;;;;;;15722:19;15638:16;15722;15638;;;2376:21827;;;15722:16;:::i;:::-;:19;;:::i;:::-;8806:28:86;-1:-1:-1;;;;;15783:15:160;;;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15764:35:160;15760:109;;2376:21827;;;;;;-1:-1:-1;;;;;15912:15:160;2376:21827;15912:15;:::i;:::-;2376:21827;;;;;;;;;;15905:33;;;;;;;;;;;;;15663:3;16012:12;2376:21827;16012:12;;2376:21827;;16026:18;2376:21827;;;16026:18;:::i;:::-;16064:12;;;2376:21827;;;;;;;;16064:12;;;;2376:21827;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;15956:135;;2376:21827;15956:135;;2376:21827;;;;;;;;;;;16046:16;2376:21827;;;;;;16064:12;;;2376:21827;;;;;;;;;;;;;;;;:::i;:::-;15956:135;;-1:-1:-1;;;;;2376:21827:160;15956:135;;;;;;;2376:21827;15956:135;;;15663:3;;2376:21827;15623:9;;15956:135;;;;;;;;;;;;;:::i;:::-;;;;;15905:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15634:27;;;2376:21827;15634:27;;2376:21827;15395:9;;;15494:110;-1:-1:-1;;;15566:23:160;;2376:21827;15566:23;;15406:15;;2376:21827;;15279:101;-1:-1:-1;;;15350:19:160;;2376:21827;15350:19;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;19801:11;;;2376:21827;;;-1:-1:-1;;;19791:53:160;;-1:-1:-1;;;;;2376:21827:160;;;;19791:53;;2376:21827;;;;;;;;;;;;;;;19791:53;;;;;;;2376:21827;19791:53;;;2376:21827;19790:54;;19786:109;;2376:21827;;-1:-1:-1;;;19909:35:160;;2376:21827;;;;19909:35;;;;;;;;2376:21827;19909:35;;;2376:21827;19948:25;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;19909:64;19905:128;;2376:21827;;-1:-1:-1;;;20047:27:160;;2376:21827;;;;20047:27;;;;;;;;2376:21827;20047:27;;;2376:21827;-1:-1:-1;20078:12:160;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;20047:43;20043:100;;2376:21827;;-1:-1:-1;;;20209:30:160;;2376:21827;;;;20209:30;;;;;;;;2376:21827;20209:30;;;2376:21827;;;;;;;;;;;20253:44;;;20249:107;;2376:21827;;-1:-1:-1;;;20404:39:160;;2376:21827;;;;20404:39;;;;;;;;2376:21827;20404:39;;;2376:21827;20403:40;;20399:103;;2376:21827;;-1:-1:-1;;;20554:26:160;;2376:21827;;;;20554:26;;;;;;;;2376:21827;20554:26;;;2376:21827;-1:-1:-1;2376:21827:160;20621:12;;;2376:21827;;;;-1:-1:-1;;;20595:39:160;;;;;2376:21827;20621:12;;-1:-1:-1;;;;;2376:21827:160;;;;;;;20595:39;;;;;;;2376:21827;20595:39;;;2376:21827;-1:-1:-1;20595:60:160;20591:158;;2376:21827;;;;;;;;;;;;;20778:32;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;17543:82;;2376:21827;;-1:-1:-1;;;20858:37:160;;2376:21827;;;;20858:37;;;;;;;;;;;;2376:21827;20857:38;;20853:99;;2376:21827;;-1:-1:-1;;;20980:24:160;;2376:21827;;;;20980:24;;;;;;;;;;;;2376:21827;-1:-1:-1;2376:21827:160;;-1:-1:-1;;;21018:23:160;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;21018:23;;;;;;;;;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;21018:48;21014:111;;2376:21827;;-1:-1:-1;;;21139:36:160;;2376:21827;;;;21139:36;;;;;;;;;;;;2376:21827;21135:98;;;2376:21827;;-1:-1:-1;;;21265:36:160;;2376:21827;;;;21265:36;;;;;;;;;;;;2376:21827;;;;;;;;;;;21315:32;21311:92;;21417:39;2376:21827;21432:24;;;;;2376:21827;;21417:39;;:::i;:::-;2376:21827;21417:60;21413:119;;2376:21827;;-1:-1:-1;;;21546:46:160;;2376:21827;;;;21546:46;;;;;;;;;;;;2376:21827;21595:27;;;;2376:21827;-1:-1:-1;21542:139:160;;2376:21827;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;21710:58;;2376:21827;21710:58;;2376:21827;;;;;;;;;;;:::i;:::-;21710:58;;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;21782:22;;;-1:-1:-1;21874:24:160;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;21820:93;;;;;2376:21827;;;;;;;;;;;;;;;;;21820:93;;;2376:21827;21820:93;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;21820:93;;;;;;;;;;;;;21778:299;;;;2376:21827;;-1:-1:-1;;;22163:23:160;;;2376:21827;;;22163:23;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22163:37;22159:94;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;22369:41;;;2376:21827;;;;;;;;;;;22359:71;;;2376:21827;22359:71;;2376:21827;22359:71;;;;;;;;;;;21778:299;22358:72;;22354:135;;2376:21827;;-1:-1:-1;;;22503:39:160;;;2376:21827;;;22503:39;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22503:49;22499:114;;2376:21827;;-1:-1:-1;;;22627:41:160;;;2376:21827;;;22627:41;;;;;;;;;-1:-1:-1;;;;;22627:41:160;21595:27;22627:41;;;;;21778:299;2376:21827;;;22627:46;22623:118;;11500:17;2166:50:170;837:15:87;;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;11500:17:160;2166:50:170;:::i;22623:118:160:-;-1:-1:-1;;;22696:34:160;;2376:21827;22696:34;;22627:41;;;;;;-1:-1:-1;22627:41:160;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;22499:114;-1:-1:-1;;;22575:27:160;;2376:21827;22575:27;;22503:39;;;;;;;;;;;;;;:::i;:::-;;;;;2376:21827;;;;;;;;;22354:135;-1:-1:-1;;;22453:25:160;;2376:21827;22453:25;;22359:71;;;;;;;;;;;;;;:::i;:::-;;;;22159:94;-1:-1:-1;;;22223:19:160;;2376:21827;22223:19;;22163:23;;;;;;;;;;;;;;:::i;:::-;;;;21820:93;;;;;:::i;:::-;2376:21827;;21820:93;;;;21778:299;21946:24;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;21934:36;;-1:-1:-1;21778:299:160;;-1:-1:-1;21930:147:160;-1:-1:-1;;;22048:18:160;;2376:21827;22048:18;;21710:58;;;;;;;;;;;;;;:::i;:::-;;;;21542:139;-1:-1:-1;;;21645:25:160;;2376:21827;21645:25;;21546:46;;;2376:21827;21546:46;;2376:21827;21546:46;;;;;;2376:21827;21546:46;;;:::i;:::-;;;2376:21827;;;;;21546:46;;;2376:21827;-1:-1:-1;2376:21827:160;;21546:46;;;-1:-1:-1;21546:46:160;;21413:119;-1:-1:-1;;;21500:21:160;;2376:21827;21500:21;;21311:92;-1:-1:-1;;;21370:22:160;;2376:21827;21370:22;;21265:36;;;;2376:21827;21265:36;2376:21827;21265:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21135:98;-1:-1:-1;;;21198:24:160;;2376:21827;21198:24;;21139:36;;;;2376:21827;21139:36;2376:21827;21139:36;;;;;;;:::i;:::-;;;;21014:111;-1:-1:-1;;;21089:25:160;;2376:21827;21089:25;;21018:23;-1:-1:-1;;;;;21018:23:160;;;;;;2376:21827;21018:23;2376:21827;21018:23;;;;;;;:::i;:::-;;;;;;20980:24;;;;2376:21827;20980:24;2376:21827;20980:24;;;;;;;:::i;:::-;;;;20853:99;-1:-1:-1;;;20918:23:160;;2376:21827;20918:23;;20858:37;;;;2376:21827;20858:37;2376:21827;20858:37;;;;;;;:::i;:::-;;;;17543:82;-1:-1:-1;;;;;;17588:26:160;;2376:21827;17588:26;;20778:32;;;;2376:21827;20778:32;2376:21827;20778:32;;;;;;;:::i;:::-;;;;20591:158;20671:67;;;;;2376:21827;;-1:-1:-1;;;20671:67:160;;2376:21827;;20671:67;;2376:21827;;;-1:-1:-1;;2376:21827:160;;;;;20671:67;2376:21827;;20671:67;;;;;;;;;20591:158;;;;20671:67;;;;;2376:21827;20671:67;;:::i;:::-;2376:21827;;;20671:67;;;2376:21827;;;;;;;;;20595:39;;;2376:21827;20595:39;;2376:21827;20595:39;;;;;;2376:21827;20595:39;;;:::i;:::-;;;2376:21827;;;;;20595:39;;;;;;-1:-1:-1;20595:39:160;;20554:26;;;;2376:21827;20554:26;2376:21827;20554:26;;;;;;;:::i;:::-;;;;20399:103;20466:25;;;2376:21827;20466:25;2376:21827;;20466:25;20404:39;;;;2376:21827;20404:39;2376:21827;20404:39;;;;;;;:::i;:::-;;;;20249:107;20320:25;;;2376:21827;20320:25;2376:21827;;20320:25;20209:30;;;;2376:21827;20209:30;2376:21827;20209:30;;;;;;;:::i;:::-;;;;20043:100;20113:19;;;2376:21827;20113:19;2376:21827;;20113:19;20047:27;;;;2376:21827;20047:27;2376:21827;20047:27;;;;;;;:::i;:::-;;;;19905:128;19996:26;;;2376:21827;19996:26;2376:21827;;19996:26;19909:35;;;;2376:21827;19909:35;2376:21827;19909:35;;;;;;;:::i;:::-;;;;19786:109;19867:17;;;2376:21827;19867:17;2376:21827;;19867:17;19791:53;;;;2376:21827;19791:53;2376:21827;19791:53;;;;;;;:::i;:::-;;;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;-1:-1:-1;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12161:1642::-;;12278:17;;2376:21827;;12407:29;;;:::i;:::-;2376:21827;;;12451:39;;;;12447:92;;12294:1;20638:17;;2376:21827;;;;;12627:368;12647:5;;;;;;13062:26;;;;12701:1;20638:17;;;2376:21827;;;;;;;;13118:25;;;;:::i;:::-;2376:21827;13158:25;13153:188;13213:3;2376:21827;;13185:26;;;;;13236:9;;;;;:::i;:::-;2376:21827;13236:22;13232:66;;12701:1;2376:21827;;;;;;;12701:1;13311:19;13213:3;2376:21827;13158:25;;;13232:66;13278:5;;;;;;;;;13153:188;12701:1;13355:18;;13351:316;;13153:188;13677:87;;;;;12161:1642;:::o;13351:316::-;2376:21827;;13518:20;;;2376:21827;;;;;;;;;;13518:20;;;;;;;:::i;:::-;2376:21827;13508:31;;2376:21827;;;;;13624:27;2376:21827;;13624:27;;:::i;:::-;-1:-1:-1;;2376:21827:160;;;;;;;13571:85;;-1:-1:-1;;;;;2376:21827:160;13608:48;;;;:::i;:::-;2376:21827;;;13571:85;;:::i;:::-;2376:21827;13351:316;;;;;2376:21827;;;;12294:1;2376:21827;;;;;12294:1;2376:21827;13185:26;;;;;;;;;;;;12654:3;12678:13;;;;;;;;;12294:1;12673:312;12708:3;2376:21827;;;;;-1:-1:-1;;2376:21827:160;;;;;;12693:13;;;;;12735:9;;;;:::i;:::-;2376:21827;12701:1;2376:21827;;;;;;;;12747:13;;;12701:1;12747:13;;;;;;:::i;:::-;2376:21827;-1:-1:-1;12731:240:160;;12708:3;;;;2376:21827;12678:13;;;12731:240;12861:91;2376:21827;12814:13;12784:55;12814:13;;;;;:::i;:::-;2376:21827;12829:9;;;;;:::i;:::-;2376:21827;12784:55;;;;:::i;:::-;2376:21827;12784:55;:::i;:::-;2376:21827;;;;;;12909:22;;;;:::i;:::-;2376:21827;;;12861:91;2376:21827;;;;;12933:18;;;;:::i;:::-;2376:21827;;;12861:91;;:::i;:::-;2376:21827;12731:240;;;;;12693:13;;;;;12701:1;12693:13;;;;;;2376:21827;12632:13;;;12447:92;12506:22;;;;;;;:::o;2376:21827::-;;;;12294:1;2376:21827;;12294:1;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;:::i;:::-;:::o;14224:940::-;;22945:2;;;:::i;:::-;14487:11;-1:-1:-1;;;;;;;;;;;2376:21827:160;14487:11;2376:21827;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;-1:-1:-1;14612:9:160;-1:-1:-1;14607:416:160;14623:24;;;;;;15033:125;;;;;;;;;14376:23;14224:940;:::o;14649:3::-;3215:12:170;;;;3268:14;14768:35:160;3215:12:170;;;;;:::i;:::-;3268:14;;;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3268:14;14768:35:160;;;:::i;:::-;14767:36;14763:83;;14860:39;14935:47;14860:39;;;;;:::i;:::-;-1:-1:-1;;;;;2376:21827:160;;;;14935:47;:::i;:::-;14913:69;;;;:::i;:::-;2376:21827;15011:1;2376:21827;;;;;;;15011:1;14996:16;14649:3;14612:9;2376:21827;14612:9;;;;;14763:83;14823:8;;15011:1;14823:8;;;13809:372;;14031:43;2376:21827;3505:23:170;23973:47:85;13977:20:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;13977:20;2376:21827;;;;;;;23973:47:85;;:::i;14031:43:160:-;14030:44;14026:83;;14127:47;;;:::i;:::-;13809:372;:::o;14026:83::-;14090:8;;-1:-1:-1;14090:8:160;:::o;3405:215:29:-;-1:-1:-1;;;;;2376:21827:160;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;2376:21827:160;;3509:1:29;3534:31;24020:181:160;2376:21827;;-1:-1:-1;;;24085:61:160;;2979:4;24085:61;;;2376:21827;24135:10;2979:4;;;2376:21827;;2979:4;;2376:21827;;24085:61;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;24085:61;;;;;;;2979:4;24085:61;;;24020:181;24084:62;;24080:115;;24020:181::o;24080:115::-;24169:15;;;2979:4;24169:15;24085:61;2979:4;24169:15;24085:61;;;;2979:4;24085:61;2979:4;24085:61;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2626:351:170:-;2376:21827:160;;2779:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2779:23:170:-;2376:21827:160;;;;;2817:16:170;;;:37;;;;;2626:351;2813:87;;;2910:60;837:15:87;-1:-1:-1;;;819:34:87;837:15;819:34;:::i;:::-;1716:2:170;2376:21827:160;;1667:52:170;1740:2;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2910:60;:::i;:::-;;2626:351::o;2813:87::-;2877:12;;;-1:-1:-1;2877:12:170;;-1:-1:-1;2877:12:170;2817:37;2376:21827:160;;;;2837:17:170;;2817:37;;;2276:344;2376:21827:160;;2428:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2428:23:170:-;2376:21827:160;;;;2466:16:170;;:37;;;;2276:344;2462:91;;;2563:50;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2563:50;:::i;2462:91::-;2526:16;;;-1:-1:-1;2526:16:170;;-1:-1:-1;2526:16:170;2466:37;2376:21827:160;;;;2486:17:170;2466:37;;;2658:162:29;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;2376:21827:160;;-1:-1:-1;2763:40:29;23080:242:85;;;5853:18:86;5004:11:85;23080:242;5853:18:86;;:::i;:::-;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;5004:11:85;2376:21827:160;;;-1:-1:-1;2376:21827:160;;;;;;;;;23260:55:85;23080:242;:::o;21364:182::-;7898:23:86;21364:182:85;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;3096:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;7898:23:86;:::i;22972:408:160:-;-1:-1:-1;;;;;;;;;;;2376:21827:160;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;;;;23076:22;;23072:80;;23284:16;2376:21827;;;;;;;;;;;;23183:42;;;:87;:42;;;:87;;23284:16;:::i;:::-;2376:21827;837:15:87;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;23284:36;;23280:94;;22972:408::o;23280:94::-;23121:20;;;-1:-1:-1;23343:20:160;;-1:-1:-1;23343:20:160;23183:87;;;;23284:16;:::i;17224:208::-;2376:21827;;17343:16;;;;17224:208;;17343:16;:37;;17224:208;17343:82;;;;17336:89;;17224:208;:::o;17343:82::-;2376:21827;;17385:17;;;-1:-1:-1;2376:21827:160;17385:39;;;;17343:82;;17224:208;:::o;17385:39::-;2376:21827;;-1:-1:-1;17406:18:160;;-1:-1:-1;17224:208:160;:::o;17343:37::-;2376:21827;;;-1:-1:-1;17363:17:160;;-1:-1:-1;17343:37:160;;;16662:556;-1:-1:-1;;;;;;;;;;;2376:21827:160;16841:8;;;2376:21827;;17125:25;17160:12;;;2376:21827;;;16662:556;2376:21827;;;;;;;16662:556;16837:21;;;;;;16662:556;;;;;;;;:::o;16860:3::-;3215:12:170;;;;;;;;3268:14;16991:53:160;3215:12:170;;;;;:::i;16991:53:160:-;16990:54;16986:101;;2376:21827;;-1:-1:-1;;;17125:25:160;;2376:21827;;;;;17125:25;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;17125:25;;;;;;;2376:21827;17125:25;;;2376:21827;17125:25;;;16860:3;2376:21827;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17110:91:160;;17125:25;17110:91;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17110:91;;-1:-1:-1;;;;;2376:21827:160;17110:91;;;;;;;2376:21827;17110:91;;;16860:3;17101:100;;;2376:21827;17101:100;;:::i;:::-;16860:3;16826:9;2376:21827;16826:9;;;;;;;;;17110:91;;;;;;;;;;;;;;;;:::i;:::-;;;2376:21827;;;;;;17110:91;;;;;;;17125:25;;;;;;;;;;;;;;:::i;:::-;;;;16986:101;17064:8;;2376:21827;17064:8;;;14296:213:83;2376:21827:160;14374:24:83;;14370:103;;2376:21827:160;;14296:213:83;:::o;14370:103::-;14421:41;;;;;14452:2;14421:41;2376:21827:160;;;;14421:41:83;;3330:164:85;;8192:26:86;3330:164:85;2376:21827:160;-1:-1:-1;2376:21827:160;3433:11:85;;;2376:21827:160;;-1:-1:-1;2376:21827:160;;;;8192:26:86;:::i;7082:141:30:-;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5626:274:85;;2376:21827:160;-1:-1:-1;2376:21827:160;5743:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5773:10:85;;;;:33;;;;5626:274;5769:103;;;;5881:12;5626:274;:::o;5769:103::-;5829:32;;;-1:-1:-1;5829:32:85;;2376:21827:160;;-1:-1:-1;5829:32:85;5773:33;8806:28:86;;;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;5787:19:85;5773:33;;;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;;-1:-1:-1;2376:21827:160;;;-1:-1:-1;2376:21827:160;:::o;3071:1368:86:-;;3266:14;;;2376:21827:160;;;;;;;;;;;3302:13:86;;;3298:1135;3302:13;;;-1:-1:-1;;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;20638:17;2376:21827;;;;3777:23:86;;;3773:378;;3298:1135;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;20638:17;;2376:21827;;;;;;;;;;;;;;;;;;3266:14:86;4368:11;:::o;2376:21827:160:-;;;;;;;;;;;;3773:378:86;2376:21827:160;3840:22:86;3961:23;3840:22;;;:::i;:::-;2376:21827:160;;;;;;3961:23:86;;;;;:::i;:::-;2376:21827:160;;;;;;;;;;20638:17;;;2376:21827;;;;;;;;;;;;;;;;;;;3773:378:86;;;;;3298:1135;4410:12;;;;2376:21827:160;4410:12:86;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;2376:21827:160;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;2376:21827:160;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;2376:21827:160;;;;4933:24:66;2376:21827:160;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;2497:406:86;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;2581:21:86;;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2776:14:86;2376:21827:160;;;;;;;2832:11:86;:::o","linkReferences":{},"immutableReferences":{"46093":[{"start":7273,"length":32},{"start":7480,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"EnumerableMapNonexistentKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"_commitment\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"slashes\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"activeOperators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"maxValidators\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewards\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AlreadyAdded()\":[{\"details\":\"Thrown when an address is already added to the map.\"}],\"AlreadyEnabled()\":[{\"details\":\"Thrown when an address is already enabled.\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnumerableMapNonexistentKey(bytes32)\":[{\"details\":\"Query for a nonexistent map key.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotEnabled()\":[{\"details\":\"Thrown when an address is not enabled.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorStakeAt(address,uint48)\":{\"returns\":{\"stake\":\"The total stake of the operator in all vaults that was active at the given timestamp.\"}},\"makeElectionAt(uint48,uint256)\":{\"details\":\"This function returns the list of validators that are will be responsible for block production in the next era.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"disableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"distributeOperatorRewards(address,uint256,bytes32)\":{\"notice\":\"The function can be called only by the Router contract.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterOperator(address)\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Middleware.sol\":\"Middleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"lib/symbiotic-core/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/symbiotic-core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/symbiotic-core/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"lib/symbiotic-core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06\",\"dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4\"]},\"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/Middleware.sol\":{\"keccak256\":\"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1\",\"dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadyAdded"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"type":"error","name":"EnumerableMapNonexistentKey"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotEnabled"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"_commitment","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"slashes","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"activeOperators","type":"address[]"},{"internalType":"uint256[]","name":"stakes","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"uint256","name":"maxValidators","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_rewards","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getOperatorStakeAt(address,uint48)":{"returns":{"stake":"The total stake of the operator in all vaults that was active at the given timestamp."}},"makeElectionAt(uint48,uint256)":{"details":"This function returns the list of validators that are will be responsible for block production in the next era."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"disableVault(address)":{"notice":"This function can be called only by the vault owner."},"distributeOperatorRewards(address,uint256,bytes32)":{"notice":"The function can be called only by the Router contract."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"enableVault(address)":{"notice":"This function can be called only by the vault owner."},"registerOperator()":{"notice":"This function can be called only be operator themselves."},"unregisterOperator(address)":{"notice":"This function can be called only be operator themselves."},"unregisterVault(address)":{"notice":"This function can be called only by the vault owner."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28","urls":["bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06","dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Middleware.sol":{"keccak256":"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8","urls":["bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1","dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":77279,"exportedSymbols":{"EnumerableMap":[58543],"Gear":[84099],"IAccessControl":[44539],"IBaseDelegator":[65506],"IDefaultOperatorRewards":[71798],"IDefaultStakerRewards":[71992],"IEntity":[65100],"IMiddleware":[74131],"IMigratableEntity":[65208],"INetworkMiddlewareService":[65994],"INetworkRegistry":[64998],"IOptInService":[66120],"IRegistry":[65332],"IVault":[66856],"IVetoSlasher":[66518],"MapWithTimeData":[84387],"Middleware":[77278],"OwnableUpgradeable":[42322],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"Subnetwork":[64978],"Time":[60343],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:24130:160","nodes":[{"id":75008,"nodeType":"PragmaDirective","src":"74:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":75010,"nodeType":"ImportDirective","src":"100:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":75009,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75012,"nodeType":"ImportDirective","src":"202:140:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":75011,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75014,"nodeType":"ImportDirective","src":"343:81:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":44540,"symbolAliases":[{"foreign":{"id":75013,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"351:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75016,"nodeType":"ImportDirective","src":"425:88:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":75015,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"433:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75018,"nodeType":"ImportDirective","src":"514:80:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":75017,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"522:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75020,"nodeType":"ImportDirective","src":"595:74:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":75019,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"603:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75022,"nodeType":"ImportDirective","src":"670:86:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":58544,"symbolAliases":[{"foreign":{"id":75021,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58543,"src":"678:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75024,"nodeType":"ImportDirective","src":"757:66:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":75023,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"765:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75026,"nodeType":"ImportDirective","src":"824:48:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":75025,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"832:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75028,"nodeType":"ImportDirective","src":"873:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":75027,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"881:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75030,"nodeType":"ImportDirective","src":"918:66:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":84388,"symbolAliases":[{"foreign":{"id":75029,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84387,"src":"926:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75032,"nodeType":"ImportDirective","src":"985:81:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":64979,"symbolAliases":[{"foreign":{"id":75031,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64978,"src":"993:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75034,"nodeType":"ImportDirective","src":"1067:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":64999,"symbolAliases":[{"foreign":{"id":75033,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"1075:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75036,"nodeType":"ImportDirective","src":"1152:73:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65101,"symbolAliases":[{"foreign":{"id":75035,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"1160:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75038,"nodeType":"ImportDirective","src":"1226:93:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65209,"symbolAliases":[{"foreign":{"id":75037,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"1234:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75040,"nodeType":"ImportDirective","src":"1320:77:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65333,"symbolAliases":[{"foreign":{"id":75039,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"1328:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75042,"nodeType":"ImportDirective","src":"1398:90:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65507,"symbolAliases":[{"foreign":{"id":75041,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1406:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75044,"nodeType":"ImportDirective","src":"1489:110:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65995,"symbolAliases":[{"foreign":{"id":75043,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"1497:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75046,"nodeType":"ImportDirective","src":"1600:86:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66121,"symbolAliases":[{"foreign":{"id":75045,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"1608:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75048,"nodeType":"ImportDirective","src":"1687:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66519,"symbolAliases":[{"foreign":{"id":75047,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"1695:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75050,"nodeType":"ImportDirective","src":"1772:70:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66857,"symbolAliases":[{"foreign":{"id":75049,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"1780:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75052,"nodeType":"ImportDirective","src":"1843:130:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":71799,"symbolAliases":[{"foreign":{"id":75051,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"1856:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75054,"nodeType":"ImportDirective","src":"1974:118:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":71993,"symbolAliases":[{"foreign":{"id":75053,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"1982:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77278,"nodeType":"ContractDefinition","src":"2376:21827:160","nodes":[{"id":75066,"nodeType":"UsingForDirective","src":"2491:55:160","nodes":[],"global":false,"libraryName":{"id":75063,"name":"EnumerableMap","nameLocations":["2497:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2497:13:160"},"typeName":{"id":75065,"nodeType":"UserDefinedTypeName","pathNode":{"id":75064,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2515:13:160","2529:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2515:30:160"},"referencedDeclaration":56867,"src":"2515:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75070,"nodeType":"UsingForDirective","src":"2551:57:160","nodes":[],"global":false,"libraryName":{"id":75067,"name":"MapWithTimeData","nameLocations":["2557:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":84387,"src":"2557:15:160"},"typeName":{"id":75069,"nodeType":"UserDefinedTypeName","pathNode":{"id":75068,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2577:13:160","2591:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2577:30:160"},"referencedDeclaration":56867,"src":"2577:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75074,"nodeType":"UsingForDirective","src":"2614:58:160","nodes":[],"global":false,"libraryName":{"id":75071,"name":"EnumerableMap","nameLocations":["2620:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2620:13:160"},"typeName":{"id":75073,"nodeType":"UserDefinedTypeName","pathNode":{"id":75072,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2638:13:160","2652:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":57162,"src":"2638:33:160"},"referencedDeclaration":57162,"src":"2638:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$57162_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":75077,"nodeType":"UsingForDirective","src":"2678:29:160","nodes":[],"global":false,"libraryName":{"id":75075,"name":"Subnetwork","nameLocations":["2684:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64978,"src":"2684:10:160"},"typeName":{"id":75076,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75080,"nodeType":"VariableDeclaration","src":"2820:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2845:12:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2820:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":75079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2860:66:160","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":75083,"nodeType":"VariableDeclaration","src":"2933:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2958:18:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2933:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":75082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2979:4:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":75086,"nodeType":"VariableDeclaration","src":"2989:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3012:18:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":75084,"name":"uint8","nodeType":"ElementaryTypeName","src":"2989:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":75085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3033:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":75094,"nodeType":"FunctionDefinition","src":"3109:53:160","nodes":[],"body":{"id":75093,"nodeType":"Block","src":"3123:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75090,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"3133:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75092,"nodeType":"ExpressionStatement","src":"3133:22:160"}]},"documentation":{"id":75087,"nodeType":"StructuredDocumentation","src":"3041:63:160","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75088,"nodeType":"ParameterList","parameters":[],"src":"3120:2:160"},"returnParameters":{"id":75089,"nodeType":"ParameterList","parameters":[],"src":"3123:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75248,"nodeType":"FunctionDefinition","src":"3168:1277:160","nodes":[],"body":{"id":75247,"nodeType":"Block","src":"3236:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75103,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3261:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:5:160","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"3261:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75102,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"3246:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75106,"nodeType":"ExpressionStatement","src":"3246:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75107,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"3285:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75109,"nodeType":"ExpressionStatement","src":"3285:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":75111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3345:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":75110,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77247,"src":"3329:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3329:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75113,"nodeType":"ExpressionStatement","src":"3329:50:160"},{"assignments":[75116],"declarations":[{"constant":false,"id":75116,"mutability":"mutable","name":"$","nameLocation":"3405:1:160","nodeType":"VariableDeclaration","scope":75247,"src":"3389:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75115,"nodeType":"UserDefinedTypeName","pathNode":{"id":75114,"name":"Storage","nameLocations":["3389:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"3389:7:160"},"referencedDeclaration":73928,"src":"3389:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75119,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75117,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"3409:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3409:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3389:30:160"},{"expression":{"id":75125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75120,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3430:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3432:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"3430:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75123,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3446:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3454:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73864,"src":"3446:19:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3430:35:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75126,"nodeType":"ExpressionStatement","src":"3430:35:160"},{"expression":{"id":75132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75127,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3475:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3477:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"3475:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75130,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3501:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3509:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73866,"src":"3501:29:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3475:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75133,"nodeType":"ExpressionStatement","src":"3475:55:160"},{"expression":{"id":75139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75134,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3540:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3542:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"3540:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75137,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3564:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3572:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73868,"src":"3564:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3540:51:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75140,"nodeType":"ExpressionStatement","src":"3540:51:160"},{"expression":{"id":75146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75141,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3601:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3603:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"3601:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75144,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3622:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3630:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73870,"src":"3622:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3601:45:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75147,"nodeType":"ExpressionStatement","src":"3601:45:160"},{"expression":{"id":75153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75148,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3656:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3658:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"3656:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75151,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3676:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3684:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73872,"src":"3676:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3656:43:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75154,"nodeType":"ExpressionStatement","src":"3656:43:160"},{"expression":{"id":75160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75155,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3709:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3711:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"3709:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75158,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3736:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3744:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73874,"src":"3736:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3709:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75161,"nodeType":"ExpressionStatement","src":"3709:57:160"},{"expression":{"id":75167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75162,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3776:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3778:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"3776:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75165,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3806:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73880,"src":"3806:33:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3776:63:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75168,"nodeType":"ExpressionStatement","src":"3776:63:160"},{"expression":{"id":75174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75169,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3849:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3851:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"3849:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75172,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73876,"src":"3877:31:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3849:59:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75175,"nodeType":"ExpressionStatement","src":"3849:59:160"},{"expression":{"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75176,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3918:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3920:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"3918:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75179,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3942:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3950:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73878,"src":"3942:27:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:51:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75182,"nodeType":"ExpressionStatement","src":"3918:51:160"},{"expression":{"id":75188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75183,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4002:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4004:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"4002:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75186,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4017:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4025:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73884,"src":"4017:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4002:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75189,"nodeType":"ExpressionStatement","src":"4002:33:160"},{"expression":{"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75190,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4047:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"4045:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75198,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"4085:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":75195,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4068:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4060:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75193,"name":"address","nodeType":"ElementaryTypeName","src":"4060:7:160","typeDescriptions":{}}},"id":75196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4074:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":64940,"src":"4060:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint96_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,uint96) pure returns (bytes32)"}},"id":75199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4045:59:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75201,"nodeType":"ExpressionStatement","src":"4045:59:160"},{"expression":{"id":75207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75202,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4114:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4116:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"4114:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75205,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4130:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4138:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73882,"src":"4130:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4114:35:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75208,"nodeType":"ExpressionStatement","src":"4114:35:160"},{"expression":{"id":75214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75209,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4162:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"4160:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75212,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4171:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4179:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"4171:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4160:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75215,"nodeType":"ExpressionStatement","src":"4160:25:160"},{"expression":{"id":75221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75216,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4196:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4198:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"4196:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75219,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4210:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4218:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4210:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4196:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75222,"nodeType":"ExpressionStatement","src":"4196:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":75224,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4255:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4263:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4255:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4273:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"4255:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75223,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"4238:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64998_$","typeString":"type(contract INetworkRegistry)"}},"id":75227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$64998","typeString":"contract INetworkRegistry"}},"id":75228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4290:15:160","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":64997,"src":"4238:67:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":75229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:69:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75230,"nodeType":"ExpressionStatement","src":"4238:69:160"},{"expression":{"arguments":[{"arguments":[{"id":75239,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4402:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4394:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75237,"name":"address","nodeType":"ElementaryTypeName","src":"4394:7:160","typeDescriptions":{}}},"id":75240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4394:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75232,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4343:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4351:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4343:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":83216,"src":"4343:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75231,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"4317:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65994_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":75235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$65994","typeString":"contract INetworkMiddlewareService"}},"id":75236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4380:13:160","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":65993,"src":"4317:76:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75242,"nodeType":"ExpressionStatement","src":"4317:91:160"},{"expression":{"arguments":[{"id":75244,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4436:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":75243,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76827,"src":"4419:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73928_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":75245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75246,"nodeType":"ExpressionStatement","src":"4419:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":75100,"kind":"modifierInvocation","modifierName":{"id":75099,"name":"initializer","nameLocations":["3224:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"3224:11:160"},"nodeType":"ModifierInvocation","src":"3224:11:160"}],"name":"initialize","nameLocation":"3177:10:160","parameters":{"id":75098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75097,"mutability":"mutable","name":"_params","nameLocation":"3208:7:160","nodeType":"VariableDeclaration","scope":75248,"src":"3188:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":75096,"nodeType":"UserDefinedTypeName","pathNode":{"id":75095,"name":"InitParams","nameLocations":["3188:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"3188:10:160"},"referencedDeclaration":73890,"src":"3188:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3187:29:160"},"returnParameters":{"id":75101,"nodeType":"ParameterList","parameters":[],"src":"3236:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75445,"nodeType":"FunctionDefinition","src":"4518:1578:160","nodes":[],"body":{"id":75444,"nodeType":"Block","src":"4576:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75258,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"4601:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:7:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75257,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4586:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75261,"nodeType":"ExpressionStatement","src":"4586:23:160"},{"assignments":[75264],"declarations":[{"constant":false,"id":75264,"mutability":"mutable","name":"oldStorage","nameLocation":"4636:10:160","nodeType":"VariableDeclaration","scope":75444,"src":"4620:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75263,"nodeType":"UserDefinedTypeName","pathNode":{"id":75262,"name":"Storage","nameLocations":["4620:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4620:7:160"},"referencedDeclaration":73928,"src":"4620:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75267,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75265,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"4649:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4620:39:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":75269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4686:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":75268,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77247,"src":"4670:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75271,"nodeType":"ExpressionStatement","src":"4670:50:160"},{"assignments":[75274],"declarations":[{"constant":false,"id":75274,"mutability":"mutable","name":"newStorage","nameLocation":"4746:10:160","nodeType":"VariableDeclaration","scope":75444,"src":"4730:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75273,"nodeType":"UserDefinedTypeName","pathNode":{"id":75272,"name":"Storage","nameLocations":["4730:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4730:7:160"},"referencedDeclaration":73928,"src":"4730:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75277,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75275,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"4759:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4759:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4730:39:160"},{"expression":{"id":75283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75278,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4780:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4791:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4780:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75281,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4805:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4816:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4805:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4780:47:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75284,"nodeType":"ExpressionStatement","src":"4780:47:160"},{"expression":{"id":75290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75285,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4837:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4848:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4837:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75288,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4872:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4883:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4872:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4837:67:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75291,"nodeType":"ExpressionStatement","src":"4837:67:160"},{"expression":{"id":75297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75292,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4914:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4925:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4914:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75295,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4947:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4958:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4947:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4914:63:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75298,"nodeType":"ExpressionStatement","src":"4914:63:160"},{"expression":{"id":75304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75299,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4987:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4998:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"4987:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75302,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5017:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"5017:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4987:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75305,"nodeType":"ExpressionStatement","src":"4987:57:160"},{"expression":{"id":75311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75306,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5054:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5065:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5054:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75309,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5083:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5094:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5083:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5054:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75312,"nodeType":"ExpressionStatement","src":"5054:55:160"},{"expression":{"id":75318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75313,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5119:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5130:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5119:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75316,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5155:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5166:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5155:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5119:69:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75319,"nodeType":"ExpressionStatement","src":"5119:69:160"},{"expression":{"id":75325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75320,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5198:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5209:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5198:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75323,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5237:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5248:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5237:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5198:75:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75326,"nodeType":"ExpressionStatement","src":"5198:75:160"},{"expression":{"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75327,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5283:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5294:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5283:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75330,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5320:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5331:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5320:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5283:71:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75333,"nodeType":"ExpressionStatement","src":"5283:71:160"},{"expression":{"id":75339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75334,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5364:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5375:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5364:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75337,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5397:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5408:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5397:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5364:63:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75340,"nodeType":"ExpressionStatement","src":"5364:63:160"},{"expression":{"id":75346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75341,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5437:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5448:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5437:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75344,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5461:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5472:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5461:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5437:45:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75347,"nodeType":"ExpressionStatement","src":"5437:45:160"},{"expression":{"id":75353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75348,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5492:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5503:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5492:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75351,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5516:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5527:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5516:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5492:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75354,"nodeType":"ExpressionStatement","src":"5492:45:160"},{"expression":{"id":75360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75355,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5547:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5558:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5547:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75358,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5572:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5583:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5572:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5547:47:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75361,"nodeType":"ExpressionStatement","src":"5547:47:160"},{"expression":{"id":75367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75362,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5604:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5604:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75365,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5624:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5635:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5624:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5604:37:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75368,"nodeType":"ExpressionStatement","src":"5604:37:160"},{"expression":{"id":75374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75369,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5651:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5662:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5651:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75372,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5674:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5685:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5674:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5651:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75375,"nodeType":"ExpressionStatement","src":"5651:43:160"},{"body":{"id":75408,"nodeType":"Block","src":"5765:132:160","statements":[{"assignments":[75390,75392],"declarations":[{"constant":false,"id":75390,"mutability":"mutable","name":"key","nameLocation":"5788:3:160","nodeType":"VariableDeclaration","scope":75408,"src":"5780:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75389,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75392,"mutability":"mutable","name":"value","nameLocation":"5801:5:160","nodeType":"VariableDeclaration","scope":75408,"src":"5793:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75398,"initialValue":{"arguments":[{"id":75396,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5834:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75393,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5810:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5821:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5810:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5831:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"5810:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5810:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5779:57:160"},{"expression":{"arguments":[{"id":75404,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75390,"src":"5875:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75392,"src":"5880:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75399,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5850:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5861:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5850:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5871:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"5850:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5850:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75407,"nodeType":"ExpressionStatement","src":"5850:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5725:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75381,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5729:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5740:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5729:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5750:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5729:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5729:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5725:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75409,"initializationExpression":{"assignments":[75377],"declarations":[{"constant":false,"id":75377,"mutability":"mutable","name":"i","nameLocation":"5718:1:160","nodeType":"VariableDeclaration","scope":75409,"src":"5710:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75376,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75379,"initialValue":{"hexValue":"30","id":75378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5722:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5710:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5760:3:160","subExpression":{"id":75386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5760:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75388,"nodeType":"ExpressionStatement","src":"5760:3:160"},"nodeType":"ForStatement","src":"5705:192:160"},{"body":{"id":75442,"nodeType":"Block","src":"5964:126:160","statements":[{"assignments":[75424,75426],"declarations":[{"constant":false,"id":75424,"mutability":"mutable","name":"key","nameLocation":"5987:3:160","nodeType":"VariableDeclaration","scope":75442,"src":"5979:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75423,"name":"address","nodeType":"ElementaryTypeName","src":"5979:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75426,"mutability":"mutable","name":"value","nameLocation":"6000:5:160","nodeType":"VariableDeclaration","scope":75442,"src":"5992:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5992:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75432,"initialValue":{"arguments":[{"id":75430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"6030:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75427,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"6009:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6020:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6009:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6027:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"6009:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5978:54:160"},{"expression":{"arguments":[{"id":75438,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75424,"src":"6068:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75439,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75426,"src":"6073:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75433,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"6046:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6057:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6046:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6064:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"6046:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6046:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75441,"nodeType":"ExpressionStatement","src":"6046:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75414,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"5927:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75415,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5931:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5942:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"5931:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5949:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5931:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5927:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75443,"initializationExpression":{"assignments":[75411],"declarations":[{"constant":false,"id":75411,"mutability":"mutable","name":"i","nameLocation":"5920:1:160","nodeType":"VariableDeclaration","scope":75443,"src":"5912:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75410,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75413,"initialValue":{"hexValue":"30","id":75412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5924:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5912:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:160","subExpression":{"id":75420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"5959:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75422,"nodeType":"ExpressionStatement","src":"5959:3:160"},"nodeType":"ForStatement","src":"5907:183:160"}]},"documentation":{"id":75249,"nodeType":"StructuredDocumentation","src":"4451:62:160","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75252,"kind":"modifierInvocation","modifierName":{"id":75251,"name":"onlyOwner","nameLocations":["4549:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"4549:9:160"},"nodeType":"ModifierInvocation","src":"4549:9:160"},{"arguments":[{"hexValue":"32","id":75254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4573:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75255,"kind":"modifierInvocation","modifierName":{"id":75253,"name":"reinitializer","nameLocations":["4559:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"4559:13:160"},"nodeType":"ModifierInvocation","src":"4559:16:160"}],"name":"reinitialize","nameLocation":"4527:12:160","parameters":{"id":75250,"nodeType":"ParameterList","parameters":[],"src":"4539:2:160"},"returnParameters":{"id":75256,"nodeType":"ParameterList","parameters":[],"src":"4576:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75455,"nodeType":"FunctionDefinition","src":"6261:84:160","nodes":[],"body":{"id":75454,"nodeType":"Block","src":"6343:2:160","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":75446,"nodeType":"StructuredDocumentation","src":"6102:154:160","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":75452,"kind":"modifierInvocation","modifierName":{"id":75451,"name":"onlyOwner","nameLocations":["6333:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6333:9:160"},"nodeType":"ModifierInvocation","src":"6333:9:160"}],"name":"_authorizeUpgrade","nameLocation":"6270:17:160","overrides":{"id":75450,"nodeType":"OverrideSpecifier","overrides":[],"src":"6324:8:160"},"parameters":{"id":75449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75448,"mutability":"mutable","name":"newImplementation","nameLocation":"6296:17:160","nodeType":"VariableDeclaration","scope":75455,"src":"6288:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75447,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6287:27:160"},"returnParameters":{"id":75453,"nodeType":"ParameterList","parameters":[],"src":"6343:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75465,"nodeType":"FunctionDefinition","src":"6370:98:160","nodes":[],"body":{"id":75464,"nodeType":"Block","src":"6422:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75460,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6439:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6439:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6450:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"6439:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75459,"id":75463,"nodeType":"Return","src":"6432:29:160"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6379:11:160","parameters":{"id":75456,"nodeType":"ParameterList","parameters":[],"src":"6390:2:160"},"returnParameters":{"id":75459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75465,"src":"6414:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75457,"name":"uint48","nodeType":"ElementaryTypeName","src":"6414:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6413:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75475,"nodeType":"FunctionDefinition","src":"6474:118:160","nodes":[],"body":{"id":75474,"nodeType":"Block","src":"6536:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75470,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6553:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6553:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6564:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"6553:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75469,"id":75473,"nodeType":"Return","src":"6546:39:160"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6483:21:160","parameters":{"id":75466,"nodeType":"ParameterList","parameters":[],"src":"6504:2:160"},"returnParameters":{"id":75469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75475,"src":"6528:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75467,"name":"uint48","nodeType":"ElementaryTypeName","src":"6528:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6527:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75485,"nodeType":"FunctionDefinition","src":"6598:116:160","nodes":[],"body":{"id":75484,"nodeType":"Block","src":"6660:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75480,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6677:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6677:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6688:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"6677:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75479,"id":75483,"nodeType":"Return","src":"6670:37:160"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6607:19:160","parameters":{"id":75476,"nodeType":"ParameterList","parameters":[],"src":"6626:2:160"},"returnParameters":{"id":75479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75485,"src":"6652:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75477,"name":"uint48","nodeType":"ElementaryTypeName","src":"6652:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6651:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75495,"nodeType":"FunctionDefinition","src":"6720:110:160","nodes":[],"body":{"id":75494,"nodeType":"Block","src":"6779:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75490,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6796:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6796:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6807:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"6796:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75489,"id":75493,"nodeType":"Return","src":"6789:34:160"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6729:16:160","parameters":{"id":75486,"nodeType":"ParameterList","parameters":[],"src":"6745:2:160"},"returnParameters":{"id":75489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75495,"src":"6771:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75487,"name":"uint48","nodeType":"ElementaryTypeName","src":"6771:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6770:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75505,"nodeType":"FunctionDefinition","src":"6836:108:160","nodes":[],"body":{"id":75504,"nodeType":"Block","src":"6894:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75500,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6911:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6922:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"6911:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75499,"id":75503,"nodeType":"Return","src":"6904:33:160"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6845:15:160","parameters":{"id":75496,"nodeType":"ParameterList","parameters":[],"src":"6860:2:160"},"returnParameters":{"id":75499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75505,"src":"6886:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75497,"name":"uint48","nodeType":"ElementaryTypeName","src":"6886:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6885:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75515,"nodeType":"FunctionDefinition","src":"6950:122:160","nodes":[],"body":{"id":75514,"nodeType":"Block","src":"7015:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75510,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7032:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7032:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7043:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"7032:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75509,"id":75513,"nodeType":"Return","src":"7025:40:160"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6959:22:160","parameters":{"id":75506,"nodeType":"ParameterList","parameters":[],"src":"6981:2:160"},"returnParameters":{"id":75509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75515,"src":"7007:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75507,"name":"uint48","nodeType":"ElementaryTypeName","src":"7007:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7006:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75525,"nodeType":"FunctionDefinition","src":"7078:129:160","nodes":[],"body":{"id":75524,"nodeType":"Block","src":"7147:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75520,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7164:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7164:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7175:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"7164:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75519,"id":75523,"nodeType":"Return","src":"7157:43:160"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7087:25:160","parameters":{"id":75516,"nodeType":"ParameterList","parameters":[],"src":"7112:2:160"},"returnParameters":{"id":75519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75525,"src":"7138:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75517,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75535,"nodeType":"FunctionDefinition","src":"7213:124:160","nodes":[],"body":{"id":75534,"nodeType":"Block","src":"7279:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75530,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7296:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7296:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7307:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"7296:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75529,"id":75533,"nodeType":"Return","src":"7289:41:160"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7222:23:160","parameters":{"id":75526,"nodeType":"ParameterList","parameters":[],"src":"7245:2:160"},"returnParameters":{"id":75529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75535,"src":"7271:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75527,"name":"uint64","nodeType":"ElementaryTypeName","src":"7271:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7270:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75545,"nodeType":"FunctionDefinition","src":"7343:116:160","nodes":[],"body":{"id":75544,"nodeType":"Block","src":"7405:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75540,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7422:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7422:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7433:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"7422:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75539,"id":75543,"nodeType":"Return","src":"7415:37:160"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7352:19:160","parameters":{"id":75536,"nodeType":"ParameterList","parameters":[],"src":"7371:2:160"},"returnParameters":{"id":75539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75545,"src":"7397:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75537,"name":"uint64","nodeType":"ElementaryTypeName","src":"7397:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7396:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75555,"nodeType":"FunctionDefinition","src":"7465:99:160","nodes":[],"body":{"id":75554,"nodeType":"Block","src":"7519:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75550,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7536:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7547:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"7536:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75549,"id":75553,"nodeType":"Return","src":"7529:28:160"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7474:10:160","parameters":{"id":75546,"nodeType":"ParameterList","parameters":[],"src":"7484:2:160"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75555,"src":"7510:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75547,"name":"address","nodeType":"ElementaryTypeName","src":"7510:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7509:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75565,"nodeType":"FunctionDefinition","src":"7570:99:160","nodes":[],"body":{"id":75564,"nodeType":"Block","src":"7624:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75560,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7641:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7641:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7652:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"7641:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75559,"id":75563,"nodeType":"Return","src":"7634:28:160"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7579:10:160","parameters":{"id":75556,"nodeType":"ParameterList","parameters":[],"src":"7589:2:160"},"returnParameters":{"id":75559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75558,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75565,"src":"7615:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7615:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7614:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75575,"nodeType":"FunctionDefinition","src":"7675:101:160","nodes":[],"body":{"id":75574,"nodeType":"Block","src":"7730:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75570,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7747:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7747:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7758:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"7747:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75569,"id":75573,"nodeType":"Return","src":"7740:29:160"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7684:11:160","parameters":{"id":75566,"nodeType":"ParameterList","parameters":[],"src":"7695:2:160"},"returnParameters":{"id":75569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75575,"src":"7721:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75567,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7720:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75585,"nodeType":"FunctionDefinition","src":"7782:91:160","nodes":[],"body":{"id":75584,"nodeType":"Block","src":"7832:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75580,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7849:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7860:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"7849:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75579,"id":75583,"nodeType":"Return","src":"7842:24:160"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7791:6:160","parameters":{"id":75576,"nodeType":"ParameterList","parameters":[],"src":"7797:2:160"},"returnParameters":{"id":75579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75585,"src":"7823:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75577,"name":"address","nodeType":"ElementaryTypeName","src":"7823:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7822:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75596,"nodeType":"FunctionDefinition","src":"7879:129:160","nodes":[],"body":{"id":75595,"nodeType":"Block","src":"7964:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75591,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7981:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7981:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7992:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"7981:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":75590,"id":75594,"nodeType":"Return","src":"7974:27:160"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7888:18:160","parameters":{"id":75586,"nodeType":"ParameterList","parameters":[],"src":"7906:2:160"},"returnParameters":{"id":75590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75596,"src":"7932:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":75588,"nodeType":"UserDefinedTypeName","pathNode":{"id":75587,"name":"Gear.SymbioticContracts","nameLocations":["7932:4:160","7937:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":83229,"src":"7932:23:160"},"referencedDeclaration":83229,"src":"7932:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7931:32:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75627,"nodeType":"FunctionDefinition","src":"8033:263:160","nodes":[],"body":{"id":75626,"nodeType":"Block","src":"8089:207:160","nodes":[],"statements":[{"assignments":[75603],"declarations":[{"constant":false,"id":75603,"mutability":"mutable","name":"$","nameLocation":"8115:1:160","nodeType":"VariableDeclaration","scope":75626,"src":"8099:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75602,"nodeType":"UserDefinedTypeName","pathNode":{"id":75601,"name":"Storage","nameLocations":["8099:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8099:7:160"},"referencedDeclaration":73928,"src":"8099:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75606,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75604,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8119:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8119:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8099:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75607,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8143:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8143:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75609,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75603,"src":"8157:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8159:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8157:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8169:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"8157:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8143:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75617,"nodeType":"IfStatement","src":"8139:101:160","trueBody":{"id":75616,"nodeType":"Block","src":"8189:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75613,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"8210:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8210:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75615,"nodeType":"RevertStatement","src":"8203:26:160"}]}},{"expression":{"id":75624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75618,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75603,"src":"8249:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8251:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8249:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8261:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"8249:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75623,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75598,"src":"8282:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8249:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75625,"nodeType":"ExpressionStatement","src":"8249:40:160"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8042:20:160","parameters":{"id":75599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75598,"mutability":"mutable","name":"newRole","nameLocation":"8071:7:160","nodeType":"VariableDeclaration","scope":75627,"src":"8063:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75597,"name":"address","nodeType":"ElementaryTypeName","src":"8063:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8062:17:160"},"returnParameters":{"id":75600,"nodeType":"ParameterList","parameters":[],"src":"8089:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75658,"nodeType":"FunctionDefinition","src":"8302:259:160","nodes":[],"body":{"id":75657,"nodeType":"Block","src":"8357:204:160","nodes":[],"statements":[{"assignments":[75634],"declarations":[{"constant":false,"id":75634,"mutability":"mutable","name":"$","nameLocation":"8383:1:160","nodeType":"VariableDeclaration","scope":75657,"src":"8367:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75633,"nodeType":"UserDefinedTypeName","pathNode":{"id":75632,"name":"Storage","nameLocations":["8367:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8367:7:160"},"referencedDeclaration":73928,"src":"8367:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75637,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75635,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8387:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8387:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8367:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75638,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8411:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8415:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8411:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75640,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"8425:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8427:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8425:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8437:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"8425:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8411:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75648,"nodeType":"IfStatement","src":"8407:99:160","trueBody":{"id":75647,"nodeType":"Block","src":"8456:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75644,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"8477:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75646,"nodeType":"RevertStatement","src":"8470:25:160"}]}},{"expression":{"id":75655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75649,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"8515:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8517:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8515:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8527:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"8515:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75654,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"8547:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8515:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75656,"nodeType":"ExpressionStatement","src":"8515:39:160"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8311:19:160","parameters":{"id":75630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75629,"mutability":"mutable","name":"newRole","nameLocation":"8339:7:160","nodeType":"VariableDeclaration","scope":75658,"src":"8331:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75628,"name":"address","nodeType":"ElementaryTypeName","src":"8331:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8330:17:160"},"returnParameters":{"id":75631,"nodeType":"ParameterList","parameters":[],"src":"8357:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75712,"nodeType":"FunctionDefinition","src":"8617:405:160","nodes":[],"body":{"id":75711,"nodeType":"Block","src":"8654:368:160","nodes":[],"statements":[{"assignments":[75663],"declarations":[{"constant":false,"id":75663,"mutability":"mutable","name":"$","nameLocation":"8680:1:160","nodeType":"VariableDeclaration","scope":75711,"src":"8664:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75662,"nodeType":"UserDefinedTypeName","pathNode":{"id":75661,"name":"Storage","nameLocations":["8664:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8664:7:160"},"referencedDeclaration":73928,"src":"8664:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75666,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75664,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8684:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8684:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8664:30:160"},{"condition":{"id":75676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8709:61:160","subExpression":{"arguments":[{"expression":{"id":75673,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8759:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8763:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8759:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75668,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8720:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8722:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8720:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":83212,"src":"8720:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75667,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"8710:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":75671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":75672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8750:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"8710:48:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":75675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75681,"nodeType":"IfStatement","src":"8705:121:160","trueBody":{"id":75680,"nodeType":"Block","src":"8772:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75677,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73773,"src":"8793:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8793:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75679,"nodeType":"RevertStatement","src":"8786:29:160"}]}},{"condition":{"id":75695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8839:77:160","subExpression":{"arguments":[{"expression":{"id":75688,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8890:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8894:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8890:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":75692,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8910:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8902:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75690,"name":"address","nodeType":"ElementaryTypeName","src":"8902:7:160","typeDescriptions":{}}},"id":75693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8902:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75683,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8854:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8854:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8866:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":83218,"src":"8854:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75682,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"8840:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$66120_$","typeString":"type(contract IOptInService)"}},"id":75686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$66120","typeString":"contract IOptInService"}},"id":75687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8880:9:160","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":66067,"src":"8840:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":75694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75700,"nodeType":"IfStatement","src":"8835:137:160","trueBody":{"id":75699,"nodeType":"Block","src":"8918:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75696,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73776,"src":"8939:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8939:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75698,"nodeType":"RevertStatement","src":"8932:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":75706,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9001:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9005:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9001:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":75708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9013:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"expression":{"id":75701,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8982:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8984:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"8982:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8994:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84212,"src":"8982:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":75709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75710,"nodeType":"ExpressionStatement","src":"8982:33:160"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8626:16:160","parameters":{"id":75659,"nodeType":"ParameterList","parameters":[],"src":"8642:2:160"},"returnParameters":{"id":75660,"nodeType":"ParameterList","parameters":[],"src":"8654:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75724,"nodeType":"FunctionDefinition","src":"9028:93:160","nodes":[],"body":{"id":75723,"nodeType":"Block","src":"9064:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75719,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9103:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9107:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9103:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75715,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9074:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9085:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9074:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9095:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84306,"src":"9074:28:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75722,"nodeType":"ExpressionStatement","src":"9074:40:160"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9037:15:160","parameters":{"id":75713,"nodeType":"ParameterList","parameters":[],"src":"9052:2:160"},"returnParameters":{"id":75714,"nodeType":"ParameterList","parameters":[],"src":"9064:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75736,"nodeType":"FunctionDefinition","src":"9127:91:160","nodes":[],"body":{"id":75735,"nodeType":"Block","src":"9162:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75731,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9200:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9204:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9200:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75727,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9172:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9183:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9172:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9193:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84259,"src":"9172:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75734,"nodeType":"ExpressionStatement","src":"9172:39:160"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9136:14:160","parameters":{"id":75725,"nodeType":"ParameterList","parameters":[],"src":"9150:2:160"},"returnParameters":{"id":75726,"nodeType":"ParameterList","parameters":[],"src":"9162:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75781,"nodeType":"FunctionDefinition","src":"9224:362:160","nodes":[],"body":{"id":75780,"nodeType":"Block","src":"9279:307:160","nodes":[],"statements":[{"assignments":[75743],"declarations":[{"constant":false,"id":75743,"mutability":"mutable","name":"$","nameLocation":"9305:1:160","nodeType":"VariableDeclaration","scope":75780,"src":"9289:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75742,"nodeType":"UserDefinedTypeName","pathNode":{"id":75741,"name":"Storage","nameLocations":["9289:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9289:7:160"},"referencedDeclaration":73928,"src":"9289:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75746,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75744,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9309:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9309:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9289:30:160"},{"assignments":[null,75748],"declarations":[null,{"constant":false,"id":75748,"mutability":"mutable","name":"disabledTime","nameLocation":"9340:12:160","nodeType":"VariableDeclaration","scope":75780,"src":"9333:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75747,"name":"uint48","nodeType":"ElementaryTypeName","src":"9333:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75754,"initialValue":{"arguments":[{"id":75752,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9377:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75749,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9356:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9358:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9356:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9368:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"9356:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9330:56:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75755,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9401:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9417:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9401:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75758,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"9422:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":75759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9427:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"9422:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":75760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9422:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75761,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9441:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75762,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9456:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9458:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"9456:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9441:36:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9422:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9401:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75771,"nodeType":"IfStatement","src":"9397:144:160","trueBody":{"id":75770,"nodeType":"Block","src":"9479:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75767,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73761,"src":"9500:28:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9500:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75769,"nodeType":"RevertStatement","src":"9493:37:160"}]}},{"expression":{"arguments":[{"id":75777,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9570:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75772,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9551:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9553:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9551:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9563:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"9551:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":75778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9551:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75779,"nodeType":"ExpressionStatement","src":"9551:28:160"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9233:18:160","parameters":{"id":75739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75738,"mutability":"mutable","name":"operator","nameLocation":"9260:8:160","nodeType":"VariableDeclaration","scope":75781,"src":"9252:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75737,"name":"address","nodeType":"ElementaryTypeName","src":"9252:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9251:18:160"},"returnParameters":{"id":75740,"nodeType":"ParameterList","parameters":[],"src":"9279:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75839,"nodeType":"FunctionDefinition","src":"9592:494:160","nodes":[],"body":{"id":75838,"nodeType":"Block","src":"9699:387:160","nodes":[],"statements":[{"assignments":[75794],"declarations":[{"constant":false,"id":75794,"mutability":"mutable","name":"$","nameLocation":"9725:1:160","nodeType":"VariableDeclaration","scope":75838,"src":"9709:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75793,"nodeType":"UserDefinedTypeName","pathNode":{"id":75792,"name":"Storage","nameLocations":["9709:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9709:7:160"},"referencedDeclaration":73928,"src":"9709:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75797,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75795,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9729:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9729:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9709:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75798,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9754:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9758:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9754:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75800,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9768:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9770:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9768:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9754:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75807,"nodeType":"IfStatement","src":"9750:71:160","trueBody":{"id":75806,"nodeType":"Block","src":"9778:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75803,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"9799:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9799:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75805,"nodeType":"RevertStatement","src":"9792:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75808,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"9835:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75809,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9844:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9846:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"9844:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9835:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75816,"nodeType":"IfStatement","src":"9831:78:160","trueBody":{"id":75815,"nodeType":"Block","src":"9858:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75812,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"9879:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9879:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75814,"nodeType":"RevertStatement","src":"9872:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":75823,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9990:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9992:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9990:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75825,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"10000:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75826,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"10007:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75827,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"10015:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"expression":{"id":75818,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9945:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"9943:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9955:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":83222,"src":"9943:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75817,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"9919:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71798_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":75821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$71798","typeString":"contract IDefaultOperatorRewards"}},"id":75822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9972:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71780,"src":"9919:70:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":75828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:101:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75829,"nodeType":"ExpressionStatement","src":"9919:101:160"},{"expression":{"arguments":[{"arguments":[{"id":75833,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"10065:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75834,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"10073:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75831,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10048:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10052:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"10048:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10048:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75830,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10038:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10038:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75791,"id":75837,"nodeType":"Return","src":"10031:48:160"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9601:25:160","parameters":{"id":75788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75783,"mutability":"mutable","name":"token","nameLocation":"9635:5:160","nodeType":"VariableDeclaration","scope":75839,"src":"9627:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75782,"name":"address","nodeType":"ElementaryTypeName","src":"9627:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75785,"mutability":"mutable","name":"amount","nameLocation":"9650:6:160","nodeType":"VariableDeclaration","scope":75839,"src":"9642:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75784,"name":"uint256","nodeType":"ElementaryTypeName","src":"9642:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75787,"mutability":"mutable","name":"root","nameLocation":"9666:4:160","nodeType":"VariableDeclaration","scope":75839,"src":"9658:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9658:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9626:45:160"},"returnParameters":{"id":75791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75839,"src":"9690:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9690:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9689:9:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75987,"nodeType":"FunctionDefinition","src":"10092:1224:160","nodes":[],"body":{"id":75986,"nodeType":"Block","src":"10239:1077:160","nodes":[],"statements":[{"assignments":[75851],"declarations":[{"constant":false,"id":75851,"mutability":"mutable","name":"$","nameLocation":"10265:1:160","nodeType":"VariableDeclaration","scope":75986,"src":"10249:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75850,"nodeType":"UserDefinedTypeName","pathNode":{"id":75849,"name":"Storage","nameLocations":["10249:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"10249:7:160"},"referencedDeclaration":73928,"src":"10249:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75854,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75852,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"10269:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10249:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10294:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10298:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10294:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10308:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10310:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"10308:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10294:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75864,"nodeType":"IfStatement","src":"10290:71:160","trueBody":{"id":75863,"nodeType":"Block","src":"10318:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75860,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"10339:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75862,"nodeType":"RevertStatement","src":"10332:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75865,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10375:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10387:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"10375:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75867,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10396:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10398:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"10396:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10375:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75874,"nodeType":"IfStatement","src":"10371:90:160","trueBody":{"id":75873,"nodeType":"Block","src":"10410:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75870,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"10431:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10431:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75872,"nodeType":"RevertStatement","src":"10424:26:160"}]}},{"assignments":[75876],"declarations":[{"constant":false,"id":75876,"mutability":"mutable","name":"distributionBytes","nameLocation":"10484:17:160","nodeType":"VariableDeclaration","scope":75986,"src":"10471:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75875,"name":"bytes","nodeType":"ElementaryTypeName","src":"10471:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75877,"nodeType":"VariableDeclarationStatement","src":"10471:30:160"},{"body":{"id":75969,"nodeType":"Block","src":"10573:615:160","statements":[{"assignments":[75894],"declarations":[{"constant":false,"id":75894,"mutability":"mutable","name":"rewards","nameLocation":"10613:7:160","nodeType":"VariableDeclaration","scope":75969,"src":"10587:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":75893,"nodeType":"UserDefinedTypeName","pathNode":{"id":75892,"name":"Gear.StakerRewards","nameLocations":["10587:4:160","10592:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":83052,"src":"10587:18:160"},"referencedDeclaration":83052,"src":"10587:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":75899,"initialValue":{"baseExpression":{"expression":{"id":75895,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10623:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10635:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"10623:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75898,"indexExpression":{"id":75897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10648:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10623:27:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10587:63:160"},{"condition":{"id":75906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10669:33:160","subExpression":{"arguments":[{"expression":{"id":75903,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"10688:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10696:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"10688:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75900,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10670:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10672:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10670:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10679:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"10670:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10670:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75911,"nodeType":"IfStatement","src":"10665:99:160","trueBody":{"id":75910,"nodeType":"Block","src":"10704:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75907,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"10729:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10729:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75909,"nodeType":"RevertStatement","src":"10722:27:160"}]}},{"assignments":[75913],"declarations":[{"constant":false,"id":75913,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10786:14:160","nodeType":"VariableDeclaration","scope":75969,"src":"10778:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75912,"name":"address","nodeType":"ElementaryTypeName","src":"10778:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75923,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":75919,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"10834:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10842:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"10834:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75916,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10811:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10813:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10811:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10820:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":84386,"src":"10811:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":75921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10811:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":75915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10803:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75914,"name":"address","nodeType":"ElementaryTypeName","src":"10803:7:160","typeDescriptions":{}}},"id":75922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10803:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10778:71:160"},{"assignments":[75925],"declarations":[{"constant":false,"id":75925,"mutability":"mutable","name":"data","nameLocation":"10877:4:160","nodeType":"VariableDeclaration","scope":75969,"src":"10864:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75924,"name":"bytes","nodeType":"ElementaryTypeName","src":"10864:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75940,"initialValue":{"arguments":[{"id":75928,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75844,"src":"10895:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":75929,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10906:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10908:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"10906:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":75933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10927:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10921:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75931,"name":"bytes","nodeType":"ElementaryTypeName","src":"10921:5:160","typeDescriptions":{}}},"id":75934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10921:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":75937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10938:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10932:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75935,"name":"bytes","nodeType":"ElementaryTypeName","src":"10932:5:160","typeDescriptions":{}}},"id":75938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10932:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75926,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10888:6:160","memberName":"encode","nodeType":"MemberAccess","src":"10884:10:160","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10884:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10864:78:160"},{"expression":{"arguments":[{"expression":{"id":75945,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"11012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11014:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"11012:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75947,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11022:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11034:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"11022:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75949,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11041:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11049:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83051,"src":"11041:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75951,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75925,"src":"11057:4:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75942,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75913,"src":"10978:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75941,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"10956:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":75944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10994:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":72068,"src":"10956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory) external"}},"id":75952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:106:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75953,"nodeType":"ExpressionStatement","src":"10956:106:160"},{"expression":{"id":75967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75954,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11077:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75958,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11110:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75961,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11146:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11154:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"11146:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75963,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11161:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11169:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83051,"src":"11161:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75959,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11129:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11133:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11129:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11097:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75955,"name":"bytes","nodeType":"ElementaryTypeName","src":"11097:5:160","typeDescriptions":{}}},"id":75957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11103:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11097:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11097:80:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11077:100:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75968,"nodeType":"ExpressionStatement","src":"11077:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75882,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10531:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75883,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10535:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"10535:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10560:6:160","memberName":"length","nodeType":"MemberAccess","src":"10535:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10531:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75970,"initializationExpression":{"assignments":[75879],"declarations":[{"constant":false,"id":75879,"mutability":"mutable","name":"i","nameLocation":"10524:1:160","nodeType":"VariableDeclaration","scope":75970,"src":"10516:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75878,"name":"uint256","nodeType":"ElementaryTypeName","src":"10516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75881,"initialValue":{"hexValue":"30","id":75880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10528:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10516:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10568:3:160","subExpression":{"id":75887,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10570:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75889,"nodeType":"ExpressionStatement","src":"10568:3:160"},"nodeType":"ForStatement","src":"10511:677:160"},{"expression":{"arguments":[{"arguments":[{"id":75975,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11228:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75978,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11264:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11276:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83043,"src":"11264:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75980,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11289:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11301:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"11289:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11247:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11251:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11247:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11247:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11215:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75972,"name":"bytes","nodeType":"ElementaryTypeName","src":"11215:5:160","typeDescriptions":{}}},"id":75974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11221:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11215:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11215:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75971,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11205:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:104:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75848,"id":75985,"nodeType":"Return","src":"11198:111:160"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10101:23:160","parameters":{"id":75845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75842,"mutability":"mutable","name":"_commitment","nameLocation":"10161:11:160","nodeType":"VariableDeclaration","scope":75987,"src":"10125:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":75841,"nodeType":"UserDefinedTypeName","pathNode":{"id":75840,"name":"Gear.StakerRewardsCommitment","nameLocations":["10125:4:160","10130:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"10125:28:160"},"referencedDeclaration":83046,"src":"10125:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":75844,"mutability":"mutable","name":"timestamp","nameLocation":"10181:9:160","nodeType":"VariableDeclaration","scope":75987,"src":"10174:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75843,"name":"uint48","nodeType":"ElementaryTypeName","src":"10174:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10124:67:160"},"returnParameters":{"id":75848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75987,"src":"10226:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10226:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10225:9:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76018,"nodeType":"FunctionDefinition","src":"11322:236:160","nodes":[],"body":{"id":76017,"nodeType":"Block","src":"11407:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75998,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11432:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75997,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77094,"src":"11417:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11417:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76000,"nodeType":"ExpressionStatement","src":"11417:22:160"},{"expression":{"arguments":[{"id":76002,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11472:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76003,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75991,"src":"11480:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76001,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77141,"src":"11449:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":76004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11449:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76005,"nodeType":"ExpressionStatement","src":"11449:40:160"},{"expression":{"arguments":[{"id":76010,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11525:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76013,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75991,"src":"11541:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11533:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":76011,"name":"uint160","nodeType":"ElementaryTypeName","src":"11533:7:160","typeDescriptions":{}}},"id":76014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11533:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76006,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11500:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11511:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11500:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11518:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84212,"src":"11500:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":76015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76016,"nodeType":"ExpressionStatement","src":"11500:51:160"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75994,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11399:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75995,"kind":"modifierInvocation","modifierName":{"id":75993,"name":"vaultOwner","nameLocations":["11388:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11388:10:160"},"nodeType":"ModifierInvocation","src":"11388:18:160"}],"name":"registerVault","nameLocation":"11331:13:160","parameters":{"id":75992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75989,"mutability":"mutable","name":"_vault","nameLocation":"11353:6:160","nodeType":"VariableDeclaration","scope":76018,"src":"11345:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75988,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75991,"mutability":"mutable","name":"_rewards","nameLocation":"11369:8:160","nodeType":"VariableDeclaration","scope":76018,"src":"11361:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75990,"name":"address","nodeType":"ElementaryTypeName","src":"11361:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11344:34:160"},"returnParameters":{"id":75996,"nodeType":"ParameterList","parameters":[],"src":"11407:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76034,"nodeType":"FunctionDefinition","src":"11564:113:160","nodes":[],"body":{"id":76033,"nodeType":"Block","src":"11628:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76030,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76020,"src":"11664:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76026,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11638:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11649:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11638:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11656:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84306,"src":"11638:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76032,"nodeType":"ExpressionStatement","src":"11638:32:160"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76023,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76020,"src":"11621:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76024,"kind":"modifierInvocation","modifierName":{"id":76022,"name":"vaultOwner","nameLocations":["11610:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11610:10:160"},"nodeType":"ModifierInvocation","src":"11610:17:160"}],"name":"disableVault","nameLocation":"11573:12:160","parameters":{"id":76021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76020,"mutability":"mutable","name":"vault","nameLocation":"11594:5:160","nodeType":"VariableDeclaration","scope":76034,"src":"11586:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76019,"name":"address","nodeType":"ElementaryTypeName","src":"11586:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11585:15:160"},"returnParameters":{"id":76025,"nodeType":"ParameterList","parameters":[],"src":"11628:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76050,"nodeType":"FunctionDefinition","src":"11683:111:160","nodes":[],"body":{"id":76049,"nodeType":"Block","src":"11746:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76046,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"11781:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76042,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11756:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11756:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11774:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84259,"src":"11756:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76048,"nodeType":"ExpressionStatement","src":"11756:31:160"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76039,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"11739:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76040,"kind":"modifierInvocation","modifierName":{"id":76038,"name":"vaultOwner","nameLocations":["11728:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11728:10:160"},"nodeType":"ModifierInvocation","src":"11728:17:160"}],"name":"enableVault","nameLocation":"11692:11:160","parameters":{"id":76037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76036,"mutability":"mutable","name":"vault","nameLocation":"11712:5:160","nodeType":"VariableDeclaration","scope":76050,"src":"11704:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76035,"name":"address","nodeType":"ElementaryTypeName","src":"11704:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11703:15:160"},"returnParameters":{"id":76041,"nodeType":"ParameterList","parameters":[],"src":"11746:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76098,"nodeType":"FunctionDefinition","src":"11800:355:160","nodes":[],"body":{"id":76097,"nodeType":"Block","src":"11867:288:160","nodes":[],"statements":[{"assignments":[76060],"declarations":[{"constant":false,"id":76060,"mutability":"mutable","name":"$","nameLocation":"11893:1:160","nodeType":"VariableDeclaration","scope":76097,"src":"11877:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76059,"nodeType":"UserDefinedTypeName","pathNode":{"id":76058,"name":"Storage","nameLocations":["11877:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"11877:7:160"},"referencedDeclaration":73928,"src":"11877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76063,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76061,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11897:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11897:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11877:30:160"},{"assignments":[null,76065],"declarations":[null,{"constant":false,"id":76065,"mutability":"mutable","name":"disabledTime","nameLocation":"11927:12:160","nodeType":"VariableDeclaration","scope":76097,"src":"11920:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76064,"name":"uint48","nodeType":"ElementaryTypeName","src":"11920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76071,"initialValue":{"arguments":[{"id":76069,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"11961:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76066,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"11943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11945:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11943:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11952:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"11943:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11943:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11917:50:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76072,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"11982:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11998:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11982:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76075,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"12003:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":76076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12008:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"12003:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76078,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"12022:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76079,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"12037:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12039:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"12037:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12022:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12003:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11982:73:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76088,"nodeType":"IfStatement","src":"11978:138:160","trueBody":{"id":76087,"nodeType":"Block","src":"12057:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76084,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73764,"src":"12078:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76086,"nodeType":"RevertStatement","src":"12071:34:160"}]}},{"expression":{"arguments":[{"id":76094,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"12142:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76089,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"12126:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12128:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"12126:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12135:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"12126:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":76095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12126:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76096,"nodeType":"ExpressionStatement","src":"12126:22:160"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76055,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"11860:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76056,"kind":"modifierInvocation","modifierName":{"id":76054,"name":"vaultOwner","nameLocations":["11849:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11849:10:160"},"nodeType":"ModifierInvocation","src":"11849:17:160"}],"name":"unregisterVault","nameLocation":"11809:15:160","parameters":{"id":76053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76052,"mutability":"mutable","name":"vault","nameLocation":"11833:5:160","nodeType":"VariableDeclaration","scope":76098,"src":"11825:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76051,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11824:15:160"},"returnParameters":{"id":76057,"nodeType":"ParameterList","parameters":[],"src":"11867:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76294,"nodeType":"FunctionDefinition","src":"12161:1642:160","nodes":[],"body":{"id":76293,"nodeType":"Block","src":"12260:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76109,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"12278:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12294:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12278:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76112,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73836,"src":"12297:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12297:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76108,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12270:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12270:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76115,"nodeType":"ExpressionStatement","src":"12270:64:160"},{"assignments":[76120,76123],"declarations":[{"constant":false,"id":76120,"mutability":"mutable","name":"activeOperators","nameLocation":"12363:15:160","nodeType":"VariableDeclaration","scope":76293,"src":"12346:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76118,"name":"address","nodeType":"ElementaryTypeName","src":"12346:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76119,"nodeType":"ArrayTypeName","src":"12346:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76123,"mutability":"mutable","name":"stakes","nameLocation":"12397:6:160","nodeType":"VariableDeclaration","scope":76293,"src":"12380:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76121,"name":"uint256","nodeType":"ElementaryTypeName","src":"12380:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76122,"nodeType":"ArrayTypeName","src":"12380:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":76127,"initialValue":{"arguments":[{"id":76125,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"12433:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76124,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76437,"src":"12407:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint48) view returns (address[] memory,uint256[] memory)"}},"id":76126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12407:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12345:91:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76128,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12451:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12467:6:160","memberName":"length","nodeType":"MemberAccess","src":"12451:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76130,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"12477:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76135,"nodeType":"IfStatement","src":"12447:92:160","trueBody":{"id":76134,"nodeType":"Block","src":"12492:47:160","statements":[{"expression":{"id":76132,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12513:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76107,"id":76133,"nodeType":"Return","src":"12506:22:160"}]}},{"assignments":[76137],"declarations":[{"constant":false,"id":76137,"mutability":"mutable","name":"n","nameLocation":"12591:1:160","nodeType":"VariableDeclaration","scope":76293,"src":"12583:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76136,"name":"uint256","nodeType":"ElementaryTypeName","src":"12583:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76140,"initialValue":{"expression":{"id":76138,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12595:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12611:6:160","memberName":"length","nodeType":"MemberAccess","src":"12595:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12583:34:160"},{"body":{"id":76218,"nodeType":"Block","src":"12659:336:160","statements":[{"body":{"id":76216,"nodeType":"Block","src":"12713:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76165,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12735:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76167,"indexExpression":{"id":76166,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12742:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12735:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":76168,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12747:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76172,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76169,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12754:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12758:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12754:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12747:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12735:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76215,"nodeType":"IfStatement","src":"12731:240:160","trueBody":{"id":76214,"nodeType":"Block","src":"12762:209:160","statements":[{"expression":{"id":76192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76174,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12785:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76176,"indexExpression":{"id":76175,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12792:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12785:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76177,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12796:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76181,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76178,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12803:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12807:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12803:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12796:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76182,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12784:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76183,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12814:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76187,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76184,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12821:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12825:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12821:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12814:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76188,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12829:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76190,"indexExpression":{"id":76189,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12836:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12829:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12813:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12784:55:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76193,"nodeType":"ExpressionStatement","src":"12784:55:160"},{"expression":{"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76194,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12862:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76196,"indexExpression":{"id":76195,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12878:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12862:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76197,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12882:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76201,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76198,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12898:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12902:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12898:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12882:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76202,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12861:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76203,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12909:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76207,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76204,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12925:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12929:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12925:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12909:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76208,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12933:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76210,"indexExpression":{"id":76209,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12949:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12933:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76211,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12908:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12861:91:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76213,"nodeType":"ExpressionStatement","src":"12861:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76155,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12693:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76156,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"12697:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12701:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12697:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76159,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12705:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12697:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12693:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76217,"initializationExpression":{"assignments":[76152],"declarations":[{"constant":false,"id":76152,"mutability":"mutable","name":"j","nameLocation":"12686:1:160","nodeType":"VariableDeclaration","scope":76217,"src":"12678:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76151,"name":"uint256","nodeType":"ElementaryTypeName","src":"12678:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76154,"initialValue":{"hexValue":"30","id":76153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12690:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12678:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12708:3:160","subExpression":{"id":76162,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12708:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76164,"nodeType":"ExpressionStatement","src":"12708:3:160"},"nodeType":"ForStatement","src":"12673:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76145,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12647:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76146,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"12651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12647:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76219,"initializationExpression":{"assignments":[76142],"declarations":[{"constant":false,"id":76142,"mutability":"mutable","name":"i","nameLocation":"12640:1:160","nodeType":"VariableDeclaration","scope":76219,"src":"12632:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76141,"name":"uint256","nodeType":"ElementaryTypeName","src":"12632:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76144,"initialValue":{"hexValue":"30","id":76143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12644:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12632:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:160","subExpression":{"id":76148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12654:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76150,"nodeType":"ExpressionStatement","src":"12654:3:160"},"nodeType":"ForStatement","src":"12627:368:160"},{"assignments":[76221],"declarations":[{"constant":false,"id":76221,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13070:14:160","nodeType":"VariableDeclaration","scope":76293,"src":"13062:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76220,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76223,"initialValue":{"hexValue":"31","id":76222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13087:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13062:26:160"},{"assignments":[76225],"declarations":[{"constant":false,"id":76225,"mutability":"mutable","name":"lastStake","nameLocation":"13106:9:160","nodeType":"VariableDeclaration","scope":76293,"src":"13098:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76224,"name":"uint256","nodeType":"ElementaryTypeName","src":"13098:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76231,"initialValue":{"baseExpression":{"id":76226,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"13118:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76230,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76227,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13125:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13141:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13125:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13118:25:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13098:45:160"},{"body":{"id":76255,"nodeType":"Block","src":"13218:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76243,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"13236:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76245,"indexExpression":{"id":76244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13243:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13236:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76246,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76225,"src":"13249:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13236:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76250,"nodeType":"IfStatement","src":"13232:66:160","trueBody":{"id":76249,"nodeType":"Block","src":"13260:38:160","statements":[{"id":76248,"nodeType":"Break","src":"13278:5:160"}]}},{"expression":{"id":76253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76251,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13311:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13329:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13311:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76254,"nodeType":"ExpressionStatement","src":"13311:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13185:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76237,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13189:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13205:6:160","memberName":"length","nodeType":"MemberAccess","src":"13189:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13185:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76256,"initializationExpression":{"assignments":[76233],"declarations":[{"constant":false,"id":76233,"mutability":"mutable","name":"i","nameLocation":"13166:1:160","nodeType":"VariableDeclaration","scope":76256,"src":"13158:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76232,"name":"uint256","nodeType":"ElementaryTypeName","src":"13158:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76235,"initialValue":{"id":76234,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13170:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13158:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13213:3:160","subExpression":{"id":76240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13213:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76242,"nodeType":"ExpressionStatement","src":"13213:3:160"},"nodeType":"ForStatement","src":"13153:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76257,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13355:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":76258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13372:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13355:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76289,"nodeType":"IfStatement","src":"13351:316:160","trueBody":{"id":76288,"nodeType":"Block","src":"13375:292:160","statements":[{"assignments":[76261],"declarations":[{"constant":false,"id":76261,"mutability":"mutable","name":"randomIndex","nameLocation":"13486:11:160","nodeType":"VariableDeclaration","scope":76288,"src":"13478:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76260,"name":"uint256","nodeType":"ElementaryTypeName","src":"13478:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76273,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":76267,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"13535:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":76265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13518:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13522:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"13518:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13518:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76264,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13508:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13508:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13500:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76262,"name":"uint256","nodeType":"ElementaryTypeName","src":"13500:7:160","typeDescriptions":{}}},"id":76270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13500:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":76271,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13543:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13500:57:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13478:79:160"},{"expression":{"id":76286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76274,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13571:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76278,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76275,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13587:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13603:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13587:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13571:34:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76279,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13608:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76285,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76280,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13624:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76281,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76261,"src":"13640:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13624:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13654:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13624:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13608:48:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13571:85:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76287,"nodeType":"ExpressionStatement","src":"13571:85:160"}]}},{"AST":{"nativeSrc":"13702:62:160","nodeType":"YulBlock","src":"13702:62:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13723:15:160","nodeType":"YulIdentifier","src":"13723:15:160"},{"name":"maxValidators","nativeSrc":"13740:13:160","nodeType":"YulIdentifier","src":"13740:13:160"}],"functionName":{"name":"mstore","nativeSrc":"13716:6:160","nodeType":"YulIdentifier","src":"13716:6:160"},"nativeSrc":"13716:38:160","nodeType":"YulFunctionCall","src":"13716:38:160"},"nativeSrc":"13716:38:160","nodeType":"YulExpressionStatement","src":"13716:38:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76120,"isOffset":false,"isSlot":false,"src":"13723:15:160","valueSize":1},{"declaration":76102,"isOffset":false,"isSlot":false,"src":"13740:13:160","valueSize":1}],"flags":["memory-safe"],"id":76290,"nodeType":"InlineAssembly","src":"13677:87:160"},{"expression":{"id":76291,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13781:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76107,"id":76292,"nodeType":"Return","src":"13774:22:160"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12170:14:160","parameters":{"id":76103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76100,"mutability":"mutable","name":"ts","nameLocation":"12192:2:160","nodeType":"VariableDeclaration","scope":76294,"src":"12185:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76099,"name":"uint48","nodeType":"ElementaryTypeName","src":"12185:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76102,"mutability":"mutable","name":"maxValidators","nameLocation":"12204:13:160","nodeType":"VariableDeclaration","scope":76294,"src":"12196:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76101,"name":"uint256","nodeType":"ElementaryTypeName","src":"12196:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12184:34:160"},"returnParameters":{"id":76107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76294,"src":"12242:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76104,"name":"address","nodeType":"ElementaryTypeName","src":"12242:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76105,"nodeType":"ArrayTypeName","src":"12242:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12241:18:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76335,"nodeType":"FunctionDefinition","src":"13809:372:160","nodes":[],"body":{"id":76334,"nodeType":"Block","src":"13923:258:160","nodes":[],"statements":[{"assignments":[76307,76309],"declarations":[{"constant":false,"id":76307,"mutability":"mutable","name":"enabledTime","nameLocation":"13941:11:160","nodeType":"VariableDeclaration","scope":76334,"src":"13934:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76306,"name":"uint48","nodeType":"ElementaryTypeName","src":"13934:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76309,"mutability":"mutable","name":"disabledTime","nameLocation":"13961:12:160","nodeType":"VariableDeclaration","scope":76334,"src":"13954:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76308,"name":"uint48","nodeType":"ElementaryTypeName","src":"13954:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76316,"initialValue":{"arguments":[{"id":76314,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"14007:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76310,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"13977:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13988:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"13977:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13998:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"13977:29:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13933:83:160"},{"condition":{"id":76322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14030:44:160","subExpression":{"arguments":[{"id":76318,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76307,"src":"14044:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76319,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76309,"src":"14057:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76320,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"14071:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76317,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"14031:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14031:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76326,"nodeType":"IfStatement","src":"14026:83:160","trueBody":{"id":76325,"nodeType":"Block","src":"14076:33:160","statements":[{"expression":{"hexValue":"30","id":76323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14097:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":76305,"id":76324,"nodeType":"Return","src":"14090:8:160"}]}},{"expression":{"id":76332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76327,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76304,"src":"14119:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76329,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"14161:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76330,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"14171:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76328,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"14127:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14119:55:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76333,"nodeType":"ExpressionStatement","src":"14119:55:160"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76301,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"13895:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76302,"kind":"modifierInvocation","modifierName":{"id":76300,"name":"validTimestamp","nameLocations":["13880:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77151,"src":"13880:14:160"},"nodeType":"ModifierInvocation","src":"13880:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13818:18:160","parameters":{"id":76299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76296,"mutability":"mutable","name":"operator","nameLocation":"13845:8:160","nodeType":"VariableDeclaration","scope":76335,"src":"13837:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76295,"name":"address","nodeType":"ElementaryTypeName","src":"13837:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76298,"mutability":"mutable","name":"ts","nameLocation":"13862:2:160","nodeType":"VariableDeclaration","scope":76335,"src":"13855:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76297,"name":"uint48","nodeType":"ElementaryTypeName","src":"13855:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13836:29:160"},"returnParameters":{"id":76305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76304,"mutability":"mutable","name":"stake","nameLocation":"13916:5:160","nodeType":"VariableDeclaration","scope":76335,"src":"13908:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76303,"name":"uint256","nodeType":"ElementaryTypeName","src":"13908:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13907:15:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76437,"nodeType":"FunctionDefinition","src":"14224:940:160","nodes":[],"body":{"id":76436,"nodeType":"Block","src":"14405:759:160","nodes":[],"statements":[{"assignments":[76351],"declarations":[{"constant":false,"id":76351,"mutability":"mutable","name":"$","nameLocation":"14431:1:160","nodeType":"VariableDeclaration","scope":76436,"src":"14415:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76350,"nodeType":"UserDefinedTypeName","pathNode":{"id":76349,"name":"Storage","nameLocations":["14415:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"14415:7:160"},"referencedDeclaration":73928,"src":"14415:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76354,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76352,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"14435:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14435:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14415:30:160"},{"expression":{"id":76364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76355,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76344,"src":"14455:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76359,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14487:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14487:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14499:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14487:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14487:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14473:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76356,"name":"address","nodeType":"ElementaryTypeName","src":"14477:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76357,"nodeType":"ArrayTypeName","src":"14477:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14455:53:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76365,"nodeType":"ExpressionStatement","src":"14455:53:160"},{"expression":{"id":76375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76366,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"14518:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76370,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14541:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14543:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14541:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14553:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14541:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14541:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14527:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":76367,"name":"uint256","nodeType":"ElementaryTypeName","src":"14531:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76368,"nodeType":"ArrayTypeName","src":"14531:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":76374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14527:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14518:44:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76376,"nodeType":"ExpressionStatement","src":"14518:44:160"},{"assignments":[76378],"declarations":[{"constant":false,"id":76378,"mutability":"mutable","name":"operatorIdx","nameLocation":"14581:11:160","nodeType":"VariableDeclaration","scope":76436,"src":"14573:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76377,"name":"uint256","nodeType":"ElementaryTypeName","src":"14573:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76380,"initialValue":{"hexValue":"30","id":76379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14595:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14573:23:160"},{"body":{"id":76433,"nodeType":"Block","src":"14654:369:160","statements":[{"assignments":[76394,76396,76398],"declarations":[{"constant":false,"id":76394,"mutability":"mutable","name":"operator","nameLocation":"14677:8:160","nodeType":"VariableDeclaration","scope":76433,"src":"14669:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76393,"name":"address","nodeType":"ElementaryTypeName","src":"14669:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76396,"mutability":"mutable","name":"enabled","nameLocation":"14694:7:160","nodeType":"VariableDeclaration","scope":76433,"src":"14687:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76395,"name":"uint48","nodeType":"ElementaryTypeName","src":"14687:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76398,"mutability":"mutable","name":"disabled","nameLocation":"14710:8:160","nodeType":"VariableDeclaration","scope":76433,"src":"14703:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76397,"name":"uint48","nodeType":"ElementaryTypeName","src":"14703:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76404,"initialValue":{"arguments":[{"id":76402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14746:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76399,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14722:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14724:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14722:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14734:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84341,"src":"14722:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14722:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14668:80:160"},{"condition":{"id":76410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14767:36:160","subExpression":{"arguments":[{"id":76406,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76396,"src":"14781:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76407,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76398,"src":"14790:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76408,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14800:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76405,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"14768:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14768:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76413,"nodeType":"IfStatement","src":"14763:83:160","trueBody":{"id":76412,"nodeType":"Block","src":"14805:41:160","statements":[{"id":76411,"nodeType":"Continue","src":"14823:8:160"}]}},{"expression":{"id":76418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76414,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76344,"src":"14860:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76416,"indexExpression":{"id":76415,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14876:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14860:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76417,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76394,"src":"14891:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14860:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76419,"nodeType":"ExpressionStatement","src":"14860:39:160"},{"expression":{"id":76427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76420,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"14913:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76422,"indexExpression":{"id":76421,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14920:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14913:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76424,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76394,"src":"14969:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76425,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14979:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76423,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"14935:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14935:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14913:69:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76428,"nodeType":"ExpressionStatement","src":"14913:69:160"},{"expression":{"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76429,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14996:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15011:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14996:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76432,"nodeType":"ExpressionStatement","src":"14996:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14623:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76385,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14627:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14629:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14627:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14639:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14627:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14623:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76434,"initializationExpression":{"assignments":[76382],"declarations":[{"constant":false,"id":76382,"mutability":"mutable","name":"i","nameLocation":"14620:1:160","nodeType":"VariableDeclaration","scope":76434,"src":"14612:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76381,"name":"uint256","nodeType":"ElementaryTypeName","src":"14612:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76383,"nodeType":"VariableDeclarationStatement","src":"14612:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14649:3:160","subExpression":{"id":76390,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76392,"nodeType":"ExpressionStatement","src":"14649:3:160"},"nodeType":"ForStatement","src":"14607:416:160"},{"AST":{"nativeSrc":"15058:100:160","nodeType":"YulBlock","src":"15058:100:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15079:15:160","nodeType":"YulIdentifier","src":"15079:15:160"},{"name":"operatorIdx","nativeSrc":"15096:11:160","nodeType":"YulIdentifier","src":"15096:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15072:6:160","nodeType":"YulIdentifier","src":"15072:6:160"},"nativeSrc":"15072:36:160","nodeType":"YulFunctionCall","src":"15072:36:160"},"nativeSrc":"15072:36:160","nodeType":"YulExpressionStatement","src":"15072:36:160"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15128:6:160","nodeType":"YulIdentifier","src":"15128:6:160"},{"name":"operatorIdx","nativeSrc":"15136:11:160","nodeType":"YulIdentifier","src":"15136:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15121:6:160","nodeType":"YulIdentifier","src":"15121:6:160"},"nativeSrc":"15121:27:160","nodeType":"YulFunctionCall","src":"15121:27:160"},"nativeSrc":"15121:27:160","nodeType":"YulExpressionStatement","src":"15121:27:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76344,"isOffset":false,"isSlot":false,"src":"15079:15:160","valueSize":1},{"declaration":76378,"isOffset":false,"isSlot":false,"src":"15096:11:160","valueSize":1},{"declaration":76378,"isOffset":false,"isSlot":false,"src":"15136:11:160","valueSize":1},{"declaration":76347,"isOffset":false,"isSlot":false,"src":"15128:6:160","valueSize":1}],"flags":["memory-safe"],"id":76435,"nodeType":"InlineAssembly","src":"15033:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76340,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14321:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76341,"kind":"modifierInvocation","modifierName":{"id":76339,"name":"validTimestamp","nameLocations":["14306:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77151,"src":"14306:14:160"},"nodeType":"ModifierInvocation","src":"14306:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14233:25:160","parameters":{"id":76338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76337,"mutability":"mutable","name":"ts","nameLocation":"14266:2:160","nodeType":"VariableDeclaration","scope":76437,"src":"14259:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76336,"name":"uint48","nodeType":"ElementaryTypeName","src":"14259:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14258:11:160"},"returnParameters":{"id":76348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76344,"mutability":"mutable","name":"activeOperators","nameLocation":"14359:15:160","nodeType":"VariableDeclaration","scope":76437,"src":"14342:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76342,"name":"address","nodeType":"ElementaryTypeName","src":"14342:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76343,"nodeType":"ArrayTypeName","src":"14342:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76347,"mutability":"mutable","name":"stakes","nameLocation":"14393:6:160","nodeType":"VariableDeclaration","scope":76437,"src":"14376:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76345,"name":"uint256","nodeType":"ElementaryTypeName","src":"14376:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76346,"nodeType":"ArrayTypeName","src":"14376:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14341:59:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":76553,"nodeType":"FunctionDefinition","src":"15170:952:160","nodes":[],"body":{"id":76552,"nodeType":"Block","src":"15228:894:160","nodes":[],"statements":[{"assignments":[76446],"declarations":[{"constant":false,"id":76446,"mutability":"mutable","name":"$","nameLocation":"15254:1:160","nodeType":"VariableDeclaration","scope":76552,"src":"15238:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76445,"nodeType":"UserDefinedTypeName","pathNode":{"id":76444,"name":"Storage","nameLocations":["15238:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"15238:7:160"},"referencedDeclaration":73928,"src":"15238:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76449,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76447,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"15258:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15258:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15238:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76450,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15283:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15287:6:160","memberName":"sender","nodeType":"MemberAccess","src":"15283:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76452,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15297:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15299:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"15297:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"15297:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15283:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76460,"nodeType":"IfStatement","src":"15279:101:160","trueBody":{"id":76459,"nodeType":"Block","src":"15329:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76456,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"15350:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15350:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76458,"nodeType":"RevertStatement","src":"15343:26:160"}]}},{"body":{"id":76550,"nodeType":"Block","src":"15428:688:160","statements":[{"assignments":[76473],"declarations":[{"constant":false,"id":76473,"mutability":"mutable","name":"slashData","nameLocation":"15461:9:160","nodeType":"VariableDeclaration","scope":76550,"src":"15442:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":76472,"nodeType":"UserDefinedTypeName","pathNode":{"id":76471,"name":"SlashData","nameLocations":["15442:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15442:9:160"},"referencedDeclaration":73942,"src":"15442:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":76477,"initialValue":{"baseExpression":{"id":76474,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15473:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76476,"indexExpression":{"id":76475,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15478:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15473:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15442:38:160"},{"condition":{"id":76484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15498:41:160","subExpression":{"arguments":[{"expression":{"id":76481,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15520:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15530:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"15520:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76478,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15499:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15501:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"15499:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15511:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15499:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15499:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76489,"nodeType":"IfStatement","src":"15494:110:160","trueBody":{"id":76488,"nodeType":"Block","src":"15541:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76485,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73812,"src":"15566:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15566:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76487,"nodeType":"RevertStatement","src":"15559:30:160"}]}},{"body":{"id":76548,"nodeType":"Block","src":"15668:438:160","statements":[{"assignments":[76503],"declarations":[{"constant":false,"id":76503,"mutability":"mutable","name":"vaultData","nameLocation":"15710:9:160","nodeType":"VariableDeclaration","scope":76548,"src":"15686:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":76502,"nodeType":"UserDefinedTypeName","pathNode":{"id":76501,"name":"VaultSlashData","nameLocations":["15686:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":73933,"src":"15686:14:160"},"referencedDeclaration":73933,"src":"15686:14:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":76508,"initialValue":{"baseExpression":{"expression":{"id":76504,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15722:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15732:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15722:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76507,"indexExpression":{"id":76506,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15739:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15722:19:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15686:55:160"},{"condition":{"id":76515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15764:35:160","subExpression":{"arguments":[{"expression":{"id":76512,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"15783:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15793:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15783:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76509,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15765:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"15765:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15774:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15765:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15765:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76520,"nodeType":"IfStatement","src":"15760:109:160","trueBody":{"id":76519,"nodeType":"Block","src":"15801:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76516,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"15830:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15830:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76518,"nodeType":"RevertStatement","src":"15823:27:160"}]}},{"assignments":[76522],"declarations":[{"constant":false,"id":76522,"mutability":"mutable","name":"slasher","nameLocation":"15895:7:160","nodeType":"VariableDeclaration","scope":76548,"src":"15887:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76521,"name":"address","nodeType":"ElementaryTypeName","src":"15887:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76524,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"15912:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15922:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15912:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76523,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"15905:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15929:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"15905:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15887:51:160"},{"expression":{"arguments":[{"expression":{"id":76534,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"16012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16014:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"16012:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76536,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"16026:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"16026:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76538,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"16046:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16056:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":73932,"src":"16046:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76540,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"16064:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16074:2:160","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":73937,"src":"16064:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16088:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16078:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76542,"name":"bytes","nodeType":"ElementaryTypeName","src":"16082:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76531,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76522,"src":"15969:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76530,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"15956:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:12:160","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":66489,"src":"15956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256,uint48,bytes memory) external returns (uint256)"}},"id":76546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:135:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76547,"nodeType":"ExpressionStatement","src":"15956:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76493,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15634:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76494,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15638:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15648:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15638:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15655:6:160","memberName":"length","nodeType":"MemberAccess","src":"15638:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15634:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76549,"initializationExpression":{"assignments":[76491],"declarations":[{"constant":false,"id":76491,"mutability":"mutable","name":"j","nameLocation":"15631:1:160","nodeType":"VariableDeclaration","scope":76549,"src":"15623:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76490,"name":"uint256","nodeType":"ElementaryTypeName","src":"15623:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76492,"nodeType":"VariableDeclarationStatement","src":"15623:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15663:3:160","subExpression":{"id":76498,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15665:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76500,"nodeType":"ExpressionStatement","src":"15663:3:160"},"nodeType":"ForStatement","src":"15618:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15406:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76465,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15410:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15415:6:160","memberName":"length","nodeType":"MemberAccess","src":"15410:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15406:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76551,"initializationExpression":{"assignments":[76462],"declarations":[{"constant":false,"id":76462,"mutability":"mutable","name":"i","nameLocation":"15403:1:160","nodeType":"VariableDeclaration","scope":76551,"src":"15395:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76461,"name":"uint256","nodeType":"ElementaryTypeName","src":"15395:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76463,"nodeType":"VariableDeclarationStatement","src":"15395:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15423:3:160","subExpression":{"id":76468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15425:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76470,"nodeType":"ExpressionStatement","src":"15423:3:160"},"nodeType":"ForStatement","src":"15390:726:160"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15179:12:160","parameters":{"id":76442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76441,"mutability":"mutable","name":"data","nameLocation":"15213:4:160","nodeType":"VariableDeclaration","scope":76553,"src":"15192:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":76439,"nodeType":"UserDefinedTypeName","pathNode":{"id":76438,"name":"SlashData","nameLocations":["15192:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15192:9:160"},"referencedDeclaration":73942,"src":"15192:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":76440,"nodeType":"ArrayTypeName","src":"15192:11:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15191:27:160"},"returnParameters":{"id":76443,"nodeType":"ParameterList","parameters":[],"src":"15228:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76622,"nodeType":"FunctionDefinition","src":"16128:528:160","nodes":[],"body":{"id":76621,"nodeType":"Block","src":"16195:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76560,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16209:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16213:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16209:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76562,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16223:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16223:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16234:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"16223:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16244:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"16223:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16209:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76571,"nodeType":"IfStatement","src":"16205:108:160","trueBody":{"id":76570,"nodeType":"Block","src":"16263:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76567,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"16284:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16284:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76569,"nodeType":"RevertStatement","src":"16277:25:160"}]}},{"body":{"id":76619,"nodeType":"Block","src":"16364:286:160","statements":[{"assignments":[76584],"declarations":[{"constant":false,"id":76584,"mutability":"mutable","name":"slash","nameLocation":"16403:5:160","nodeType":"VariableDeclaration","scope":76619,"src":"16378:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":76583,"nodeType":"UserDefinedTypeName","pathNode":{"id":76582,"name":"SlashIdentifier","nameLocations":["16378:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16378:15:160"},"referencedDeclaration":73947,"src":"16378:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":76588,"initialValue":{"baseExpression":{"id":76585,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76557,"src":"16411:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76587,"indexExpression":{"id":76586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16419:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16411:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16378:43:160"},{"condition":{"id":76596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16440:40:160","subExpression":{"arguments":[{"expression":{"id":76593,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16468:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16474:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16468:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76589,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16441:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16452:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16441:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16459:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"16441:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76601,"nodeType":"IfStatement","src":"16436:106:160","trueBody":{"id":76600,"nodeType":"Block","src":"16482:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76597,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"16507:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16507:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76599,"nodeType":"RevertStatement","src":"16500:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":76611,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16613:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16619:5:160","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":73946,"src":"16613:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":76615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16636:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16626:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76613,"name":"bytes","nodeType":"ElementaryTypeName","src":"16630:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16626:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76604,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16576:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16582:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16576:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76603,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"16569:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16589:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"16569:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76602,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"16556:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:160","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":66499,"src":"16556:56:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":76617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:83:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76618,"nodeType":"ExpressionStatement","src":"16556:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76575,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16339:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76576,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76557,"src":"16343:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:6:160","memberName":"length","nodeType":"MemberAccess","src":"16343:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16339:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76620,"initializationExpression":{"assignments":[76573],"declarations":[{"constant":false,"id":76573,"mutability":"mutable","name":"i","nameLocation":"16336:1:160","nodeType":"VariableDeclaration","scope":76620,"src":"16328:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76572,"name":"uint256","nodeType":"ElementaryTypeName","src":"16328:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76574,"nodeType":"VariableDeclarationStatement","src":"16328:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16359:3:160","subExpression":{"id":76579,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16361:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76581,"nodeType":"ExpressionStatement","src":"16359:3:160"},"nodeType":"ForStatement","src":"16323:327:160"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16137:12:160","parameters":{"id":76558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76557,"mutability":"mutable","name":"slashes","nameLocation":"16177:7:160","nodeType":"VariableDeclaration","scope":76622,"src":"16150:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":76555,"nodeType":"UserDefinedTypeName","pathNode":{"id":76554,"name":"SlashIdentifier","nameLocations":["16150:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16150:15:160"},"referencedDeclaration":73947,"src":"16150:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":76556,"nodeType":"ArrayTypeName","src":"16150:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16149:36:160"},"returnParameters":{"id":76559,"nodeType":"ParameterList","parameters":[],"src":"16195:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76693,"nodeType":"FunctionDefinition","src":"16662:556:160","nodes":[],"body":{"id":76692,"nodeType":"Block","src":"16771:447:160","nodes":[],"statements":[{"assignments":[76633],"declarations":[{"constant":false,"id":76633,"mutability":"mutable","name":"$","nameLocation":"16797:1:160","nodeType":"VariableDeclaration","scope":76692,"src":"16781:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76632,"nodeType":"UserDefinedTypeName","pathNode":{"id":76631,"name":"Storage","nameLocations":["16781:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"16781:7:160"},"referencedDeclaration":73928,"src":"16781:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76634,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16801:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16801:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16781:30:160"},{"body":{"id":76690,"nodeType":"Block","src":"16865:347:160","statements":[{"assignments":[76650,76652,76654],"declarations":[{"constant":false,"id":76650,"mutability":"mutable","name":"vault","nameLocation":"16888:5:160","nodeType":"VariableDeclaration","scope":76690,"src":"16880:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76649,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76652,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16902:16:160","nodeType":"VariableDeclaration","scope":76690,"src":"16895:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76651,"name":"uint48","nodeType":"ElementaryTypeName","src":"16895:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76654,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16927:17:160","nodeType":"VariableDeclaration","scope":76690,"src":"16920:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76653,"name":"uint48","nodeType":"ElementaryTypeName","src":"16920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76660,"initialValue":{"arguments":[{"id":76658,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16969:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76655,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16950:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16948:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16957:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84341,"src":"16948:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16948:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16879:92:160"},{"condition":{"id":76666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16990:54:160","subExpression":{"arguments":[{"id":76662,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76652,"src":"17004:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76663,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76654,"src":"17022:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76664,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76626,"src":"17041:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76661,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"16991:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16991:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76669,"nodeType":"IfStatement","src":"16986:101:160","trueBody":{"id":76668,"nodeType":"Block","src":"17046:41:160","statements":[{"id":76667,"nodeType":"Continue","src":"17064:8:160"}]}},{"expression":{"id":76688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76670,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76629,"src":"17101:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":76679,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"17160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17162:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"17160:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76681,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76624,"src":"17174:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76682,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76626,"src":"17184:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17198:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17188:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76683,"name":"bytes","nodeType":"ElementaryTypeName","src":"17192:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17188:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76673,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76650,"src":"17132:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76672,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"17125:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17139:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"17125:23:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76671,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"17110:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:7:160","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":65467,"src":"17110:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint48,bytes memory) view external returns (uint256)"}},"id":76687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17101:100:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76689,"nodeType":"ExpressionStatement","src":"17101:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16837:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76641,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16841:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16843:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16841:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16850:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"16841:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16841:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16837:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76691,"initializationExpression":{"assignments":[76638],"declarations":[{"constant":false,"id":76638,"mutability":"mutable","name":"i","nameLocation":"16834:1:160","nodeType":"VariableDeclaration","scope":76691,"src":"16826:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76637,"name":"uint256","nodeType":"ElementaryTypeName","src":"16826:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76639,"nodeType":"VariableDeclarationStatement","src":"16826:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16860:3:160","subExpression":{"id":76646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16862:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76648,"nodeType":"ExpressionStatement","src":"16860:3:160"},"nodeType":"ForStatement","src":"16821:391:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16671:33:160","parameters":{"id":76627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76624,"mutability":"mutable","name":"operator","nameLocation":"16713:8:160","nodeType":"VariableDeclaration","scope":76693,"src":"16705:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76623,"name":"address","nodeType":"ElementaryTypeName","src":"16705:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76626,"mutability":"mutable","name":"ts","nameLocation":"16730:2:160","nodeType":"VariableDeclaration","scope":76693,"src":"16723:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76625,"name":"uint48","nodeType":"ElementaryTypeName","src":"16723:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16704:29:160"},"returnParameters":{"id":76630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76629,"mutability":"mutable","name":"stake","nameLocation":"16764:5:160","nodeType":"VariableDeclaration","scope":76693,"src":"16756:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76628,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16755:15:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76722,"nodeType":"FunctionDefinition","src":"17224:208:160","nodes":[],"body":{"id":76721,"nodeType":"Block","src":"17326:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76704,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"17343:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17358:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17343:16:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76707,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"17363:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76708,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76699,"src":"17378:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17363:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76711,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"17385:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17401:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17385:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76714,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"17406:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76715,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76699,"src":"17422:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17406:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17385:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":76718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17384:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:82:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":76703,"id":76720,"nodeType":"Return","src":"17336:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17233:12:160","parameters":{"id":76700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76695,"mutability":"mutable","name":"enabledTime","nameLocation":"17253:11:160","nodeType":"VariableDeclaration","scope":76722,"src":"17246:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76694,"name":"uint48","nodeType":"ElementaryTypeName","src":"17246:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76697,"mutability":"mutable","name":"disabledTime","nameLocation":"17273:12:160","nodeType":"VariableDeclaration","scope":76722,"src":"17266:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76696,"name":"uint48","nodeType":"ElementaryTypeName","src":"17266:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76699,"mutability":"mutable","name":"ts","nameLocation":"17294:2:160","nodeType":"VariableDeclaration","scope":76722,"src":"17287:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76698,"name":"uint48","nodeType":"ElementaryTypeName","src":"17287:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17245:52:160"},"returnParameters":{"id":76703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76722,"src":"17320:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76701,"name":"bool","nodeType":"ElementaryTypeName","src":"17320:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17319:6:160"},"scope":77278,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76739,"nodeType":"FunctionDefinition","src":"17477:154:160","nodes":[],"body":{"id":76738,"nodeType":"Block","src":"17533:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76727,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76724,"src":"17547:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17563:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17555:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76728,"name":"address","nodeType":"ElementaryTypeName","src":"17555:7:160","typeDescriptions":{}}},"id":76731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17555:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17547:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76737,"nodeType":"IfStatement","src":"17543:82:160","trueBody":{"id":76736,"nodeType":"Block","src":"17567:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76733,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73779,"src":"17588:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17588:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76735,"nodeType":"RevertStatement","src":"17581:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17486:19:160","parameters":{"id":76725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76724,"mutability":"mutable","name":"hook","nameLocation":"17514:4:160","nodeType":"VariableDeclaration","scope":76739,"src":"17506:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76723,"name":"address","nodeType":"ElementaryTypeName","src":"17506:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17505:14:160"},"returnParameters":{"id":76726,"nodeType":"ParameterList","parameters":[],"src":"17533:0:160"},"scope":77278,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76827,"nodeType":"FunctionDefinition","src":"17637:2002:160","nodes":[],"body":{"id":76826,"nodeType":"Block","src":"17695:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76746,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"17713:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17715:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"17713:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17729:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17713:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76750,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73839,"src":"17732:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17732:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17705:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17705:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76753,"nodeType":"ExpressionStatement","src":"17705:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76755,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18102:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18104:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18102:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":76757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18129:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":76758,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18133:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18135:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"18133:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18129:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18102:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76762,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73842,"src":"18148:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18148:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18094:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18094:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76765,"nodeType":"ExpressionStatement","src":"18094:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76767,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18377:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18379:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"18377:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76769,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18402:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18404:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18402:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18377:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76772,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73845,"src":"18427:48:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18427:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18369:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18369:109:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76775,"nodeType":"ExpressionStatement","src":"18369:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76777,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18665:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18667:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"18665:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76779,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18687:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18689:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18687:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18665:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76782,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73848,"src":"18712:45:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18712:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18657:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18657:103:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76785,"nodeType":"ExpressionStatement","src":"18657:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76787,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18840:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18842:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"18840:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18860:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18840:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76791,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73851,"src":"18863:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18863:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18832:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18832:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76794,"nodeType":"ExpressionStatement","src":"18832:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76796,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19112:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19114:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19112:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19139:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19112:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76800,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73854,"src":"19142:43:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19142:45:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19104:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19104:84:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76803,"nodeType":"ExpressionStatement","src":"19104:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76805,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19219:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19221:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"19219:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76807,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19239:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19241:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19239:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:44:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76810,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19267:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19269:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"19267:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:71:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76813,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73857,"src":"19304:40:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19304:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76804,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19198:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19198:158:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76816,"nodeType":"ExpressionStatement","src":"19198:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76818,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19561:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19563:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"19561:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":76820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19592:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19561:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76822,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73860,"src":"19595:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19595:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76817,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19553:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19553:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76825,"nodeType":"ExpressionStatement","src":"19553:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17646:16:160","parameters":{"id":76743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76742,"mutability":"mutable","name":"$","nameLocation":"17679:1:160","nodeType":"VariableDeclaration","scope":76827,"src":"17663:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76741,"nodeType":"UserDefinedTypeName","pathNode":{"id":76740,"name":"Storage","nameLocations":["17663:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"17663:7:160"},"referencedDeclaration":73928,"src":"17663:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17662:19:160"},"returnParameters":{"id":76744,"nodeType":"ParameterList","parameters":[],"src":"17695:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77094,"nodeType":"FunctionDefinition","src":"19687:2572:160","nodes":[],"body":{"id":77093,"nodeType":"Block","src":"19735:2524:160","nodes":[],"statements":[{"assignments":[76834],"declarations":[{"constant":false,"id":76834,"mutability":"mutable","name":"$","nameLocation":"19761:1:160","nodeType":"VariableDeclaration","scope":77093,"src":"19745:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76833,"nodeType":"UserDefinedTypeName","pathNode":{"id":76832,"name":"Storage","nameLocations":["19745:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"19745:7:160"},"referencedDeclaration":73928,"src":"19745:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76835,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"19765:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19765:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19745:30:160"},{"condition":{"id":76846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19790:54:160","subExpression":{"arguments":[{"id":76844,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"19837:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":76839,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"19801:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19803:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"19801:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19813:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"19801:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76838,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"19791:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":76842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":76843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19828:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"19791:45:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":76845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76851,"nodeType":"IfStatement","src":"19786:109:160","trueBody":{"id":76850,"nodeType":"Block","src":"19846:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76847,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73752,"src":"19867:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19867:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76849,"nodeType":"RevertStatement","src":"19860:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76853,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"19927:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76852,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"19909:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$65208_$","typeString":"type(contract IMigratableEntity)"}},"id":76854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$65208","typeString":"contract IMigratableEntity"}},"id":76855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19935:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":65189,"src":"19909:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"19948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19950:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"19948:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19909:64:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76864,"nodeType":"IfStatement","src":"19905:128:160","trueBody":{"id":76863,"nodeType":"Block","src":"19975:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76860,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"19996:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19996:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76862,"nodeType":"RevertStatement","src":"19989:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76866,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20054:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76865,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20047:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20062:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":66904,"src":"20047:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76870,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20078:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20080:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"20078:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20047:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76877,"nodeType":"IfStatement","src":"20043:100:160","trueBody":{"id":76876,"nodeType":"Block","src":"20092:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76873,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"20113:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20113:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76875,"nodeType":"RevertStatement","src":"20106:26:160"}]}},{"assignments":[76879],"declarations":[{"constant":false,"id":76879,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20188:18:160","nodeType":"VariableDeclaration","scope":77093,"src":"20181:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76878,"name":"uint48","nodeType":"ElementaryTypeName","src":"20181:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76885,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76881,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20216:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76880,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20209:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:13:160","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":66946,"src":"20209:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20181:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76886,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76879,"src":"20253:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76887,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20274:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20276:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"20274:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20253:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76894,"nodeType":"IfStatement","src":"20249:107:160","trueBody":{"id":76893,"nodeType":"Block","src":"20299:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76890,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73755,"src":"20320:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20320:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76892,"nodeType":"RevertStatement","src":"20313:32:160"}]}},{"condition":{"id":76900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20403:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76896,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20411:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76895,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20404:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20419:22:160","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":66922,"src":"20404:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76905,"nodeType":"IfStatement","src":"20399:103:160","trueBody":{"id":76904,"nodeType":"Block","src":"20445:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76901,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"20466:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20466:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76903,"nodeType":"RevertStatement","src":"20459:32:160"}]}},{"assignments":[76908],"declarations":[{"constant":false,"id":76908,"mutability":"mutable","name":"delegator","nameLocation":"20527:9:160","nodeType":"VariableDeclaration","scope":77093,"src":"20512:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"},"typeName":{"id":76907,"nodeType":"UserDefinedTypeName","pathNode":{"id":76906,"name":"IBaseDelegator","nameLocations":["20512:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":65506,"src":"20512:14:160"},"referencedDeclaration":65506,"src":"20512:14:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":76916,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76911,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20561:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76910,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20554:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20569:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"20554:24:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76909,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20539:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20539:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20512:69:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":76919,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20621:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20623:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"20621:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76917,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20595:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20605:15:160","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65453,"src":"20595:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":76921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20595:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":76924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20643:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76923,"name":"uint256","nodeType":"ElementaryTypeName","src":"20643:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76922,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20638:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20638:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20652:3:160","memberName":"max","nodeType":"MemberAccess","src":"20638:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76940,"nodeType":"IfStatement","src":"20591:158:160","trueBody":{"id":76939,"nodeType":"Block","src":"20657:92:160","statements":[{"expression":{"arguments":[{"id":76931,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"20700:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":76934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20725:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76933,"name":"uint256","nodeType":"ElementaryTypeName","src":"20725:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76932,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20720:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20720:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20734:3:160","memberName":"max","nodeType":"MemberAccess","src":"20720:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76928,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20671:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20681:18:160","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65485,"src":"20671:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":76937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20671:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76938,"nodeType":"ExpressionStatement","src":"20671:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76943,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20793:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}],"id":76942,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20778:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20804:4:160","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":65445,"src":"20778:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76941,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76739,"src":"20758:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76948,"nodeType":"ExpressionStatement","src":"20758:53:160"},{"condition":{"id":76954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20857:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76950,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20865:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76949,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20858:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20873:20:160","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":66934,"src":"20858:35:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76959,"nodeType":"IfStatement","src":"20853:99:160","trueBody":{"id":76958,"nodeType":"Block","src":"20897:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76955,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73788,"src":"20918:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20918:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76957,"nodeType":"RevertStatement","src":"20911:30:160"}]}},{"assignments":[76961],"declarations":[{"constant":false,"id":76961,"mutability":"mutable","name":"slasher","nameLocation":"20970:7:160","nodeType":"VariableDeclaration","scope":77093,"src":"20962:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76960,"name":"address","nodeType":"ElementaryTypeName","src":"20962:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76967,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76963,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20987:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76962,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20980:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20995:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"20980:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20962:42:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76969,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21026:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76968,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"21018:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$65100_$","typeString":"type(contract IEntity)"}},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$65100","typeString":"contract IEntity"}},"id":76971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21035:4:160","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":65093,"src":"21018:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76973,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21047:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"21045:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21018:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76980,"nodeType":"IfStatement","src":"21014:111:160","trueBody":{"id":76979,"nodeType":"Block","src":"21068:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76976,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"21089:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21089:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76978,"nodeType":"RevertStatement","src":"21082:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76982,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21152:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76981,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21139:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21161:12:160","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":66186,"src":"21139:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76990,"nodeType":"IfStatement","src":"21135:98:160","trueBody":{"id":76989,"nodeType":"Block","src":"21177:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76986,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"21198:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21198:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76988,"nodeType":"RevertStatement","src":"21191:31:160"}]}},{"assignments":[76992],"declarations":[{"constant":false,"id":76992,"mutability":"mutable","name":"vetoDuration","nameLocation":"21250:12:160","nodeType":"VariableDeclaration","scope":77093,"src":"21243:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76991,"name":"uint48","nodeType":"ElementaryTypeName","src":"21243:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76994,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21278:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76993,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21265:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21287:12:160","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":66421,"src":"21265:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21243:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76999,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76992,"src":"21315:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77000,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21330:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"21330:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21315:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77007,"nodeType":"IfStatement","src":"21311:92:160","trueBody":{"id":77006,"nodeType":"Block","src":"21349:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77003,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73797,"src":"21370:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21370:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77005,"nodeType":"RevertStatement","src":"21363:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77008,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76992,"src":"21417:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":77009,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21432:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"21432:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:39:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77012,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76879,"src":"21459:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77018,"nodeType":"IfStatement","src":"21413:119:160","trueBody":{"id":77017,"nodeType":"Block","src":"21479:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77014,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73800,"src":"21500:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21500:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77016,"nodeType":"RevertStatement","src":"21493:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77020,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21559:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77019,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21546:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21568:22:160","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":66451,"src":"21546:44:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":77023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":77024,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21595:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21597:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"21595:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21546:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77031,"nodeType":"IfStatement","src":"21542:139:160","trueBody":{"id":77030,"nodeType":"Block","src":"21624:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77027,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73818,"src":"21645:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21645:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77029,"nodeType":"RevertStatement","src":"21638:32:160"}]}},{"assignments":[77033],"declarations":[{"constant":false,"id":77033,"mutability":"mutable","name":"resolver","nameLocation":"21699:8:160","nodeType":"VariableDeclaration","scope":77093,"src":"21691:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77032,"name":"address","nodeType":"ElementaryTypeName","src":"21691:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77045,"initialValue":{"arguments":[{"expression":{"id":77038,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21741:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21743:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"21741:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":77042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21765:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":77041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21755:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77040,"name":"bytes","nodeType":"ElementaryTypeName","src":"21759:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21755:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77035,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21723:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77034,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21710:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21732:8:160","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":66473,"src":"21710:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) view external returns (address)"}},"id":77044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21691:77:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77046,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77033,"src":"21782:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21802:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":77048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21794:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77047,"name":"address","nodeType":"ElementaryTypeName","src":"21794:7:160","typeDescriptions":{}}},"id":77050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21794:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21782:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77067,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77033,"src":"21934:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77068,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21946:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21948:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21946:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21958:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83228,"src":"21946:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21934:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77076,"nodeType":"IfStatement","src":"21930:147:160","trueBody":{"id":77075,"nodeType":"Block","src":"21972:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77072,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73815,"src":"22048:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77074,"nodeType":"RevertStatement","src":"22041:25:160"}]}},"id":77077,"nodeType":"IfStatement","src":"21778:299:160","trueBody":{"id":77066,"nodeType":"Block","src":"21806:118:160","statements":[{"expression":{"arguments":[{"id":77056,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"21854:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":77057,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21874:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21876:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21874:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21886:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83228,"src":"21874:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":77062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21910:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":77061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21900:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77060,"name":"bytes","nodeType":"ElementaryTypeName","src":"21904:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21900:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77053,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21833:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77052,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21820:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21842:11:160","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":66517,"src":"21820:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":77064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77065,"nodeType":"ExpressionStatement","src":"21820:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77079,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"22170:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77078,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"22163:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":77080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":77081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22178:6:160","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":66910,"src":"22163:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22198:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":77084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22190:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77083,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:160","typeDescriptions":{}}},"id":77086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22190:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22163:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77092,"nodeType":"IfStatement","src":"22159:94:160","trueBody":{"id":77091,"nodeType":"Block","src":"22202:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77088,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73782,"src":"22223:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22223:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77090,"nodeType":"RevertStatement","src":"22216:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19696:14:160","parameters":{"id":76830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76829,"mutability":"mutable","name":"_vault","nameLocation":"19719:6:160","nodeType":"VariableDeclaration","scope":77094,"src":"19711:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76828,"name":"address","nodeType":"ElementaryTypeName","src":"19711:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19710:16:160"},"returnParameters":{"id":76831,"nodeType":"ParameterList","parameters":[],"src":"19735:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77141,"nodeType":"FunctionDefinition","src":"22265:482:160","nodes":[],"body":{"id":77140,"nodeType":"Block","src":"22344:403:160","nodes":[],"statements":[{"condition":{"id":77110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22358:72:160","subExpression":{"arguments":[{"id":77108,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22421:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77102,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"22369:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22369:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22380:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"22369:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22390:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":83220,"src":"22369:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77101,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"22359:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":77106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":77107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22412:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"22359:61:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":77109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77115,"nodeType":"IfStatement","src":"22354:135:160","trueBody":{"id":77114,"nodeType":"Block","src":"22432:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77111,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73830,"src":"22453:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77113,"nodeType":"RevertStatement","src":"22446:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77117,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22525:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77116,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22503:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22535:5:160","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":71927,"src":"22503:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77121,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77096,"src":"22546:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22503:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77127,"nodeType":"IfStatement","src":"22499:114:160","trueBody":{"id":77126,"nodeType":"Block","src":"22554:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77123,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73833,"src":"22575:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22575:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77125,"nodeType":"RevertStatement","src":"22568:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":77134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77129,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22649:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77128,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22627:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22659:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":72044,"src":"22627:39:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":77133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22672:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22627:46:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77139,"nodeType":"IfStatement","src":"22623:118:160","trueBody":{"id":77138,"nodeType":"Block","src":"22675:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77135,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73806,"src":"22696:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22696:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77137,"nodeType":"RevertStatement","src":"22689:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22274:22:160","parameters":{"id":77099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77096,"mutability":"mutable","name":"_vault","nameLocation":"22305:6:160","nodeType":"VariableDeclaration","scope":77141,"src":"22297:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77095,"name":"address","nodeType":"ElementaryTypeName","src":"22297:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77098,"mutability":"mutable","name":"_rewards","nameLocation":"22321:8:160","nodeType":"VariableDeclaration","scope":77141,"src":"22313:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77097,"name":"address","nodeType":"ElementaryTypeName","src":"22313:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22296:34:160"},"returnParameters":{"id":77100,"nodeType":"ParameterList","parameters":[],"src":"22344:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77151,"nodeType":"ModifierDefinition","src":"22884:82:160","nodes":[],"body":{"id":77150,"nodeType":"Block","src":"22919:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77146,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77143,"src":"22945:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":77145,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77198,"src":"22929:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":77147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22929:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77148,"nodeType":"ExpressionStatement","src":"22929:19:160"},{"id":77149,"nodeType":"PlaceholderStatement","src":"22958:1:160"}]},"name":"validTimestamp","nameLocation":"22893:14:160","parameters":{"id":77144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77143,"mutability":"mutable","name":"ts","nameLocation":"22915:2:160","nodeType":"VariableDeclaration","scope":77151,"src":"22908:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77142,"name":"uint48","nodeType":"ElementaryTypeName","src":"22908:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22907:11:160"},"virtual":false,"visibility":"internal"},{"id":77198,"nodeType":"FunctionDefinition","src":"22972:408:160","nodes":[],"body":{"id":77197,"nodeType":"Block","src":"23022:358:160","nodes":[],"statements":[{"assignments":[77158],"declarations":[{"constant":false,"id":77158,"mutability":"mutable","name":"$","nameLocation":"23048:1:160","nodeType":"VariableDeclaration","scope":77197,"src":"23032:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77157,"nodeType":"UserDefinedTypeName","pathNode":{"id":77156,"name":"Storage","nameLocations":["23032:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23032:7:160"},"referencedDeclaration":73928,"src":"23032:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77161,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77159,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"23052:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23052:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23032:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77162,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23076:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77163,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23082:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23087:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23082:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23082:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23076:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77171,"nodeType":"IfStatement","src":"23072:80:160","trueBody":{"id":77170,"nodeType":"Block","src":"23100:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77167,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23121:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23121:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77169,"nodeType":"RevertStatement","src":"23114:27:160"}]}},{"assignments":[77173],"declarations":[{"constant":false,"id":77173,"mutability":"mutable","name":"gracePeriod","nameLocation":"23169:11:160","nodeType":"VariableDeclaration","scope":77197,"src":"23162:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77172,"name":"uint48","nodeType":"ElementaryTypeName","src":"23162:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77184,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77174,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23183:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23185:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23183:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77176,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23207:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23209:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23207:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23183:42:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":77181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23252:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23254:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23252:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23183:87:160","trueExpression":{"expression":{"id":77179,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23228:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23230:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23228:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23162:108:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77185,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23284:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77186,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77173,"src":"23289:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77188,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23304:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23309:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23304:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23304:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77196,"nodeType":"IfStatement","src":"23280:94:160","trueBody":{"id":77195,"nodeType":"Block","src":"23322:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77192,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23343:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23343:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77194,"nodeType":"RevertStatement","src":"23336:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22981:15:160","parameters":{"id":77154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77153,"mutability":"mutable","name":"ts","nameLocation":"23004:2:160","nodeType":"VariableDeclaration","scope":77198,"src":"22997:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77152,"name":"uint48","nodeType":"ElementaryTypeName","src":"22997:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22996:11:160"},"returnParameters":{"id":77155,"nodeType":"ParameterList","parameters":[],"src":"23022:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77211,"nodeType":"FunctionDefinition","src":"23386:201:160","nodes":[],"body":{"id":77210,"nodeType":"Block","src":"23456:131:160","nodes":[],"statements":[{"assignments":[77205],"declarations":[{"constant":false,"id":77205,"mutability":"mutable","name":"slot","nameLocation":"23474:4:160","nodeType":"VariableDeclaration","scope":77210,"src":"23466:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23466:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77208,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77206,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77223,"src":"23481:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":77207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23481:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23466:32:160"},{"AST":{"nativeSrc":"23534:47:160","nodeType":"YulBlock","src":"23534:47:160","statements":[{"nativeSrc":"23548:23:160","nodeType":"YulAssignment","src":"23548:23:160","value":{"name":"slot","nativeSrc":"23567:4:160","nodeType":"YulIdentifier","src":"23567:4:160"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23548:15:160","nodeType":"YulIdentifier","src":"23548:15:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77202,"isOffset":false,"isSlot":true,"src":"23548:15:160","suffix":"slot","valueSize":1},{"declaration":77205,"isOffset":false,"isSlot":false,"src":"23567:4:160","valueSize":1}],"flags":["memory-safe"],"id":77209,"nodeType":"InlineAssembly","src":"23509:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23395:8:160","parameters":{"id":77199,"nodeType":"ParameterList","parameters":[],"src":"23403:2:160"},"returnParameters":{"id":77203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77202,"mutability":"mutable","name":"middleware","nameLocation":"23444:10:160","nodeType":"VariableDeclaration","scope":77211,"src":"23428:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77201,"nodeType":"UserDefinedTypeName","pathNode":{"id":77200,"name":"Storage","nameLocations":["23428:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23428:7:160"},"referencedDeclaration":73928,"src":"23428:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23427:28:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77223,"nodeType":"FunctionDefinition","src":"23593:128:160","nodes":[],"body":{"id":77222,"nodeType":"Block","src":"23651:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":77218,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75080,"src":"23695:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77216,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23668:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23680:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23668:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23668:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23709:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23668:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77215,"id":77221,"nodeType":"Return","src":"23661:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23602:15:160","parameters":{"id":77212,"nodeType":"ParameterList","parameters":[],"src":"23617:2:160"},"returnParameters":{"id":77215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77223,"src":"23642:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23642:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23641:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77247,"nodeType":"FunctionDefinition","src":"23727:200:160","nodes":[],"body":{"id":77246,"nodeType":"Block","src":"23795:132:160","nodes":[],"statements":[{"assignments":[77231],"declarations":[{"constant":false,"id":77231,"mutability":"mutable","name":"slot","nameLocation":"23813:4:160","nodeType":"VariableDeclaration","scope":77246,"src":"23805:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23805:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77236,"initialValue":{"arguments":[{"id":77234,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77225,"src":"23847:9:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":77232,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"23820:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":77233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23835:11:160","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"23820:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23820:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23805:52:160"},{"expression":{"id":77244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":77240,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75080,"src":"23894:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77237,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23867:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23879:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23867:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23867:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23908:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23867:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77243,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77231,"src":"23916:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23867:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77245,"nodeType":"ExpressionStatement","src":"23867:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":77228,"kind":"modifierInvocation","modifierName":{"id":77227,"name":"onlyOwner","nameLocations":["23785:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"23785:9:160"},"nodeType":"ModifierInvocation","src":"23785:9:160"}],"name":"_setStorageSlot","nameLocation":"23736:15:160","parameters":{"id":77226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77225,"mutability":"mutable","name":"namespace","nameLocation":"23766:9:160","nodeType":"VariableDeclaration","scope":77247,"src":"23752:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":77224,"name":"string","nodeType":"ElementaryTypeName","src":"23752:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23751:25:160"},"returnParameters":{"id":77229,"nodeType":"ParameterList","parameters":[],"src":"23795:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77257,"nodeType":"ModifierDefinition","src":"23933:81:160","nodes":[],"body":{"id":77256,"nodeType":"Block","src":"23968:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77252,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77249,"src":"23990:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77251,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77277,"src":"23978:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23978:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77254,"nodeType":"ExpressionStatement","src":"23978:18:160"},{"id":77255,"nodeType":"PlaceholderStatement","src":"24006:1:160"}]},"name":"vaultOwner","nameLocation":"23942:10:160","parameters":{"id":77250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77249,"mutability":"mutable","name":"vault","nameLocation":"23961:5:160","nodeType":"VariableDeclaration","scope":77257,"src":"23953:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77248,"name":"address","nodeType":"ElementaryTypeName","src":"23953:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23952:15:160"},"virtual":false,"visibility":"internal"},{"id":77277,"nodeType":"FunctionDefinition","src":"24020:181:160","nodes":[],"body":{"id":77276,"nodeType":"Block","src":"24070:131:160","nodes":[],"statements":[{"condition":{"id":77270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24084:62:160","subExpression":{"arguments":[{"id":77266,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75083,"src":"24115:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77267,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24135:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24139:6:160","memberName":"sender","nodeType":"MemberAccess","src":"24135:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":77263,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77259,"src":"24100:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77262,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"24085:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$44539_$","typeString":"type(contract IAccessControl)"}},"id":77264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$44539","typeString":"contract IAccessControl"}},"id":77265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24107:7:160","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":44506,"src":"24085:29:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":77269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:61:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77275,"nodeType":"IfStatement","src":"24080:115:160","trueBody":{"id":77274,"nodeType":"Block","src":"24148:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77271,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"24169:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24169:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77273,"nodeType":"RevertStatement","src":"24162:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24029:11:160","parameters":{"id":77260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77259,"mutability":"mutable","name":"vault","nameLocation":"24049:5:160","nodeType":"VariableDeclaration","scope":77277,"src":"24041:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77258,"name":"address","nodeType":"ElementaryTypeName","src":"24041:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24040:15:160"},"returnParameters":{"id":77261,"nodeType":"ParameterList","parameters":[],"src":"24070:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75055,"name":"IMiddleware","nameLocations":["2399:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"2399:11:160"},"id":75056,"nodeType":"InheritanceSpecifier","src":"2399:11:160"},{"baseName":{"id":75057,"name":"OwnableUpgradeable","nameLocations":["2412:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"2412:18:160"},"id":75058,"nodeType":"InheritanceSpecifier","src":"2412:18:160"},{"baseName":{"id":75059,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2432:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"2432:35:160"},"id":75060,"nodeType":"InheritanceSpecifier","src":"2432:35:160"},{"baseName":{"id":75061,"name":"UUPSUpgradeable","nameLocations":["2469:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"2469:15:160"},"id":75062,"nodeType":"InheritanceSpecifier","src":"2469:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77278,46243,44833,43943,42322,43484,42590,74131],"name":"Middleware","nameLocation":"2385:10:160","scope":77279,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,53880,55791,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860,84112,84115,84118],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":160} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"_commitment","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashes","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"activeOperators","type":"address[]","internalType":"address[]"},{"name":"stakes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"stake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"maxValidators","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerVault","inputs":[{"name":"_vault","type":"address","internalType":"address"},{"name":"_rewards","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"data","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyAdded","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnumerableMapNonexistentKey","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotEnabled","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020613d285f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6190816100c78239608051818181611c610152611d3d0152f35b6001600160401b0319166001600160401b039081175f516020613d285f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf91461249e5780630a71094c146121f65780632633b70f146121425780632acde09814611fea578063373bba1f14611fb45780633ccce78914611f775780633d15e74e14611f4a5780634455a38f14611f17578063461e7a8e14611ee15780634f1ef28614611cb557806352d1902d14611c4e5780636c2eb350146118115780636d1064eb146117a45780636e5c793214611767578063709d06ae14611731578063715018a6146116c8578063729e2f36146115aa57806379a8b245146115745780637fbe95b5146111b157806386c241a1146111535780638da5cb5b1461111e578063936f4330146110e1578063945cf2dd146110ab57806396115bc214610fdf5780639e03231114610fb1578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c215f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e34565b61022761366b565b613444565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f5254013390613565565b50346101ff5760403660031901126101ff57602061029261027b612e34565b610283612ec4565b9061028d826136ef565b613401565b604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e5e565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c215f395f51905f525460405161041481612e5e565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eaf565b6132e0565b9091604051938493604085526040850190612ed9565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c215f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387612fc7565b5f516020613c215f395f51905f52549091906106bc906015016001600160a01b036106a785612f7e565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612f7e565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612e8e565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f2c565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612e8e565b81019061300a565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612e8e565b810190612feb565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612e8e565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f2c565b0390f35b50346101ff576102e03660031901126101ff575f516020613c415f395f51905f52546001600160401b0360ff8260401c1615911680159081610fa9575b6001149081610f9f575b159081610f96575b50610f87578060016001600160401b03195f516020613c415f395f51905f525416175f516020613c415f395f51905f5255610f57575b6004356001600160a01b03811681036107f4576108f5906108ed613995565b610227613995565b60409081516109048382612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093761366b565b905190205f190183526020832060ff19165f516020613c215f395f51905f5281905560243565ffffffffffff81168103610f5357815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f535781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5357815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5357815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5357815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f535765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f4b576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f4f5781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f4b576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f4b576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f4b576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f4b576009820180546001600160a01b0319166001600160a01b03909216919091179055610bc7612f50565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf0612f67565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f4b57600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f4b57600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f4b57600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f4b57600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f4b576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f4b576011820180546001600160a01b0319166001600160a01b039283161790558690610d1a612f50565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f2c57610f36575b506001600160a01b03610d55612f67565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f2c57610f13575b5050549065ffffffffffff821615610f045765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef0578310610ee1578265ffffffffffff8260601c1610610ed2578265ffffffffffff8260901c1610610ec35760c01c65ffffffffffff16908115610eb4575465ffffffffffff16908115610ea55765ffffffffffff91610e1e91613019565b1611610e96576003905410610e8757610e35575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f1d91612e8e565b610f2857855f610d85565b8580fd5b87513d84823e3d90fd5b81610f4091612e8e565b610f2857855f610d44565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c415f395f51905f525416175f516020613c415f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c215f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57610ff9612e34565b5f516020613c215f395f51905f52546001600160a01b0390911690601281019061104361102684846139c0565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff811615929150821561107b575b505061106c57906110689161397b565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a08291826110944261394c565b955460601c1690613019565b169116105f80611058565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c6110fe612e34565b611107816134b5565b60155f516020613c215f395f51905f5254016135ef565b50346101ff57806003193601126101ff575f516020613be15f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff5761116d612e34565b5f516020613c215f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115605760405281600401356001600160401b03811161155c5782013660238201121561155c57600481013561122c81612f15565b9161123a6040519384612e8e565b818352602060048185019360061b8301010190368211610f4b57602401915b8183106114fe57505050815261127c604460208301936024810135855201612e4a565b906040810191825261128c612ec4565b935f516020613c215f395f51905f525490600782019460018060a01b0386541633036114ef57845160068401546001600160a01b039182169116036114e057819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a1015611499578961130191613063565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113ba8b6113ac8b61139a6113498f6110269060018060a01b038a5116906139c0565b9a546040516001600160a01b03909c169b925090506113688683612e8e565b838252604051936113798786612e8e565b845260405197889687015260408601526080606086015260a0850190612f2c565b838103601f1901608085015290612f2c565b03601f198101835282612e8e565b85548751838d0180519096909290916001600160a01b039081169116823b1561149557908c8094939261141a6040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f2c565b03925af1801561148a57908991611475575b50509161146d91600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611468605483612e8e565b6132a0565b9801976112ec565b8161147f91612e8e565b610f4f57875f61142c565b6040513d8b823e3d90fd5b8c80fd5b886114d286848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611468605483612e8e565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f4b57604051604081018181106001600160401b038211176115485791602091604093845261153386612e4a565b81528286013583820152815201920191611259565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115c4612e34565b5f516020613c215f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116b95760068101546001600160a01b03928316921682036116aa57600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af1801561169f5761168a575b602083836040519083820192835260408201526040815261167f606082612e8e565b519020604051908152f35b611695848092612e8e565b6107f4578261165d565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e161366b565b5f516020613be15f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff57610845611790611787612eaf565b60243590613084565b604051918291602083526020830190612ed9565b50346101ff5760203660031901126101ff576117be612e34565b5f516020613c215f395f51905f5254600f0180549091906001600160a01b031633036118025781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff5761182a61366b565b5f516020613c415f395f51905f525460ff8160401c16908115611c39575b50611c2a575f516020613c415f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613be15f395f51905f525461189a906001600160a01b03166108ed613995565b5f516020613c215f395f51905f5254906040516118b8604082612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118eb61366b565b905190205f190181526020812060ff19165f516020613c215f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a28600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b42575b50506012808401939290820191815b8354811015611abc5780611ab5611aae6001938761369e565b90896136cd565b5001611a95565b506015808501929101815b8154811015611aee5780611ae7611ae06001938561369e565b90876136cd565b5001611ac7565b8260ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a86565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611848565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611ca65760206040515f516020613c015f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cca612e34565b90602435916001600160401b0383116107f857366023840112156107f85782600401356001600160401b038111611ecd5760405193611d13601f8301601f191660200186612e8e565b818552366024838301011161155c5781849260246020930183880137850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611eab575b50611e9c57611d7561366b565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596611e68575b50611dba57634c9c8ce360e01b84526004839052602484fd5b9091845f516020613c015f395f51905f528103611e565750823b15611e44575f516020613c015f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115611e2b5761106891613a17565b505034611e355780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611e94575b81611e8460209383612e8e565b81010312610f535751945f611da1565b3d9150611e77565b63703e46dd60e11b8252600482fd5b5f516020613c015f395f51905f52546001600160a01b0316141590505f611d68565b634e487b7160e01b83526041600452602483fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f52540133906135ef565b50346101ff5760203660031901126101ff5761022c611f94612e34565b611f9d816134b5565b60155f516020613c215f395f51905f525401613565565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa908115612109578391612123575b501561211457600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa9081156121095783916120da575b50156120cb576120b49065ffffffffffff6120a84261394c565b169060123391016136cd565b156120bc5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b6120fc915060203d602011612102575b6120f48183612e8e565b81019061304b565b5f61208e565b503d6120ea565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61213c915060203d602011612102576120f48183612e8e565b5f612046565b50346101ff5760203660031901126101ff5761215c612e34565b612165816134b5565b5f516020613c215f395f51905f52546001600160a01b0390911690601581019061219261102684846139c0565b5065ffffffffffff81161592915082156121c6575b50506121b757906110689161397b565b6347a11ef760e11b8352600483fd5b65ffffffffffff9192506121eb8291826121df4261394c565b955460901c1690613019565b169116105f806121a7565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c215f395f51905f5254600f8101546001600160a01b0316330361248f5781906020905b6004356004013583101561248b5760248360051b600435010135608219600435360301811215610f535760043501906122d56001600160a01b036122bf60248501612f7e565b165f908152601383016020526040902054151590565b1561247c57845b6122ec6064840160248501612f92565b905081101561246f5761230f816123096064860160248701612f92565b90612fc7565b6123396001600160a01b0361232383612f7e565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361235683612f7e565b166040519384809263b134427160e01b82525afa91821561169f578492612450575b5060048501549161238b60248801612f7e565b604488013565ffffffffffff81169003610f2857889586946124106040516123b38882612e8e565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f2c565b03926001600160a01b03165af191821561079357600192612433575b50016122dc565b61244990863d881161078c5761077d8183612e8e565b505f61242c565b612468919250873d89116107c4576107b68183612e8e565b905f612378565b5092600191500191612279565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b60576040366003190112612b60576124b8612e34565b6024356001600160a01b038116929190839003612b60576124d8816134b5565b5f516020613c215f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612cf2575f91612e15575b5015612e065760405163054fd4d560e41b8152602081600481875afa908115612cf2575f91612de7575b5060038201906001600160401b0380835416911603612dd85760405163d8dfeb4560e01b8152602081600481885afa908115612cf2575f91612db9575b5060068301546001600160a01b03908116911603612daa576040516327f843b560e11b8152602081600481885afa908115612cf2575f91612d8b575b5065ffffffffffff80845460301c169116908110612d7c5760405163142186b760e21b8152602081600481895afa908115612cf2575f91612d5d575b5015612d4e57604051630ce9b79360e41b8152602081600481895afa908115612cf2575f91612d2f575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612cf2575f91612cfd575b5019612ca0575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612c81575b506001600160a01b0316612c6f57604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c50575b5015612c415760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c22575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa91821561148a578992612bf6575b506001600160401b0380915460401c16911603612be757604051631a684c7560e11b8152602081600481875afa9081156107cb578891612bc8575b50612bb95760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612b8a575b5065ffffffffffff855460c01c1665ffffffffffff821610612b7b576127c165ffffffffffff918260018801541690613019565b1611612b6c5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b36575b50600284015410612b275754906020926128438460405161280c8282612e8e565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f2c565b0381865afa9081156107cb578891612b0a575b506001600160a01b031680612ae3575060110154604051926001600160a01b03909116906128848585612e8e565b8784523685850137813b15610f4b579186916128ca93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f2c565b03925af18015612a3457908591612ace575b50505b6040516313c085b760e11b81528181600481875afa908115612a34578591612ab1575b506001600160a01b031615612aa2575f516020613c215f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a6b578691612a85575b5015612a765760405163411557d160e01b815282816004818a5afa908115612a6b578691612a4e575b506001600160a01b031603612a3f5760405163054fd4d560e41b81528181600481895afa918215612a3457916001600160401b03916002938792612a07575b505016036129f85760156120b4939465ffffffffffff6129df4261394c565b1660609190911b6001600160601b0319161792016136cd565b63ded51c0b60e01b8352600483fd5b612a269250803d10612a2d575b612a1e8183612e8e565b810190613528565b5f806129c0565b503d612a14565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a659150833d85116107c4576107b68183612e8e565b5f612981565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612a9c9150833d8511612102576120f48183612e8e565b5f612958565b630c6b5ff760e31b8452600484fd5b612ac89150823d84116107c4576107b68183612e8e565b5f612902565b81612ad891612e8e565b61155c57835f6128dc565b6011909101546001600160a01b03161491506128df905057633cc6586560e21b8452600484fd5b612b219150853d87116107c4576107b68183612e8e565b5f612856565b633a2662c360e11b8652600486fd5b90506020813d602011612b64575b81612b5160209383612e8e565b81010312612b6057515f6127eb565b5f80fd5b3d9150612b44565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bac915060203d602011612bb2575b612ba48183612e8e565b810190613547565b5f61278d565b503d612b9a565b63447984b360e11b8752600487fd5b612be1915060203d602011612102576120f48183612e8e565b5f612764565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c1a829160203d602011612a2d57612a1e8183612e8e565b929150612729565b612c3b915060203d6020116107c4576107b68183612e8e565b5f6126f7565b631501f36360e21b8752600487fd5b612c69915060203d602011612102576120f48183612e8e565b5f6126cd565b60016221bb1360e11b03198752600487fd5b612c9a915060203d6020116107c4576107b68183612e8e565b5f61269b565b803b15612b60576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612cf257612cdc575b50612675565b612ce99198505f90612e8e565b5f966020612cd6565b6040513d5f823e3d90fd5b90506020813d602011612d27575b81612d1860209383612e8e565b81010312612b6057515f61266e565b3d9150612d0b565b612d48915060203d6020116107c4576107b68183612e8e565b5f612632565b636e549c1760e11b5f5260045ffd5b612d76915060203d602011612102576120f48183612e8e565b5f612608565b634934476760e01b5f5260045ffd5b612da4915060203d602011612bb257612ba48183612e8e565b5f6125cc565b63039a1fd760e21b5f5260045ffd5b612dd2915060203d6020116107c4576107b68183612e8e565b5f612590565b63bfcdc45f60e01b5f5260045ffd5b612e00915060203d602011612a2d57612a1e8183612e8e565b5f612553565b635b19e4bb60e01b5f5260045ffd5b612e2e915060203d602011612102576120f48183612e8e565b5f612529565b600435906001600160a01b0382168203612b6057565b35906001600160a01b0382168203612b6057565b61014081019081106001600160401b03821117612e7a57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e7a57604052565b6004359065ffffffffffff82168203612b6057565b6024359065ffffffffffff82168203612b6057565b90602080835192838152019201905f5b818110612ef65750505090565b82516001600160a01b0316845260209384019390920191600101612ee9565b6001600160401b038111612e7a5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b605790565b610204356001600160a01b0381168103612b605790565b356001600160a01b0381168103612b605790565b903590601e1981360301821215612b6057018035906001600160401b038211612b6057602001918160061b36038313612b6057565b9190811015612fd75760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b6057516001600160a01b0381168103612b605790565b90816020910312612b60575190565b9065ffffffffffff8091169116019065ffffffffffff821161303757565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b6057518015158103612b605790565b8051821015612fd75760209160051b010190565b9190820180921161303757565b91811561329157613094836132e0565b92815181811115613288575f5f198201828111925b8083106131af57505050506001945f19820190828211613037576130cd8287613063565b5183975b85518910156131a157816130e58a8a613063565b51036131015760018101809111613037576001909801976130d1565b9395975050909294505b6001821161311c575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613144602682612e8e565b51902090801561318d57613159910683613077565b5f19810190811161303757613184906001600160a01b039061317b9086613063565b51169184613063565b525f8080613114565b634e487b7160e01b5f52601260045260245ffd5b93959750509092945061310b565b9296958792959891945f935b613037578685035f190186811161303757841015613275576131dd8489613063565b51600185019485811161303757858c826001946131fb8f9a8f613063565b511161320c575b50505001936131bb565b61326c918d61323c8361321f8784613063565b519261322b8282613063565b516132368983613063565b52613063565b52858060a01b0361324d8583613063565b511693613236878060a01b036132638585613063565b51169183613063565b525f8c82613202565b94919895600191979894935001916130a9565b50509150915090565b6314f867c760e21b5f5260045ffd5b6132de906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612e8e565b565b906132ea826136ef565b60125f516020613c215f395f51905f52540180549261330884612f15565b916133166040519384612e8e565b848352601f1961332586612f15565b0136602085013761333585612f15565b946133436040519687612e8e565b808652601f1961335282612f15565b013660208801375f925f925b828410613372575050505080825283529190565b909192936133a76133ae84613387888661369e565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b5090613779565b156133f757836133d3916133c2848a613063565b6001600160a01b03821690526137d2565b6133dd828a613063565b526001810180911161303757600190945b0192919061335e565b50936001906133ee565b9061342d816133a761102660125f516020613c215f395f51905f52540160018060a01b038716906139c0565b1561343e5761343b916137d2565b90565b50505f90565b6001600160a01b031680156134a2575f516020613be15f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612cf2575f91613509575b50156134fa57565b630e7fea9d60e01b5f5260045ffd5b613522915060203d602011612102576120f48183612e8e565b5f6134f2565b90816020910312612b6057516001600160401b0381168103612b605790565b90816020910312612b60575165ffffffffffff81168103612b605790565b65ffffffffffff916135836110266001600160a01b038316846139c0565b91949094169384159081156135dd575b506135ce576135cb9365ffffffffffff60301b6135af4261394c565b60301b161760609190911b6001600160601b03191617916136cd565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f613593565b65ffffffffffff9161360d6110266001600160a01b038316846139c0565b949091161515908161365a575b5061364b576135cb9265ffffffffffff6136334261394c565b1660609190911b6001600160601b03191617916136cd565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f61361a565b5f516020613be15f395f51905f52546001600160a01b0316330361368b57565b63118cdaa760e01b5f523360045260245ffd5b91906136ac60029184613aa3565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b61343b929160018060a01b031691825f526002820160205260405f2055613b93565b5f516020613c215f395f51905f52549065ffffffffffff61370f4261394c565b1665ffffffffffff8216101561376257613746915465ffffffffffff808260601c169160901c168082105f14613771575090613019565b65ffffffffffff806137574261394c565b169116111561376257565b63686c69fd60e01b5f5260045ffd5b905090613019565b65ffffffffffff16801515929190836137bf575b508261379857505090565b65ffffffffffff16801592509082156137b057505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f61378d565b5f516020613c215f395f51905f52546015810180546004909201545f95948694602093869391905b86881061380b575050505050505050565b90919293949596986133a7613824866133878d8661369e565b1561394257604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612cf2576138c09189915f91613925575b506040519061386e8383612e8e565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f2c565b03916001600160a01b03165afa908115612cf2575f916138f7575b506138e890600192613077565b995b01969594939291906137fa565b90508781813d831161391e575b61390e8183612e8e565b81010312612b60575160016138db565b503d613904565b61393c9150823d84116107c4576107b68183612e8e565b5f61385f565b50986001906138ea565b65ffffffffffff81116139645765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061343b91815f52600281016020525f6040812055613ab8565b60ff5f516020613c415f395f51905f525460401c16156139b157565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f20549181831591826139f7575b50506139e5575090565b63015ab34360e11b5f5260045260245ffd5b613a0f92506001915f520160205260405f2054151590565b15815f6139db565b905f8091602081519101845af48080613a90575b15613a4b5750506040513d81523d5f602083013e60203d82010160405290565b15613a7057639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15613a81576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580613a2b5750813b1515613a2b565b8054821015612fd7575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b8b575f1981018181116130375782545f1981019190821161303757818103613b40575b50505080548015613b2c575f190190613b0d8282613aa3565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b76613b50613b609386613aa3565b90549060031b1c92839286613aa3565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613af4565b505050505f90565b5f82815260018201602052604090205461343e57805490600160401b821015612e7a5782613bcb613b60846001809601855584613aa3565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21773:159:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;7983:34:18;7979:146;;-1:-1:-1;2376:21773:159;;;;;;;;1076:13:19;2376:21773:159;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;8085:29:18;;2376:21773:159;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;2376:21773:159;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf91461249e5780630a71094c146121f65780632633b70f146121425780632acde09814611fea578063373bba1f14611fb45780633ccce78914611f775780633d15e74e14611f4a5780634455a38f14611f17578063461e7a8e14611ee15780634f1ef28614611cb557806352d1902d14611c4e5780636c2eb350146118115780636d1064eb146117a45780636e5c793214611767578063709d06ae14611731578063715018a6146116c8578063729e2f36146115aa57806379a8b245146115745780637fbe95b5146111b157806386c241a1146111535780638da5cb5b1461111e578063936f4330146110e1578063945cf2dd146110ab57806396115bc214610fdf5780639e03231114610fb1578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c215f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e34565b61022761366b565b613444565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f5254013390613565565b50346101ff5760403660031901126101ff57602061029261027b612e34565b610283612ec4565b9061028d826136ef565b613401565b604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c215f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e5e565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c215f395f51905f525460405161041481612e5e565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eaf565b6132e0565b9091604051938493604085526040850190612ed9565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c215f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387612fc7565b5f516020613c215f395f51905f52549091906106bc906015016001600160a01b036106a785612f7e565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612f7e565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612e8e565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f2c565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612e8e565b81019061300a565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612e8e565b810190612feb565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612e8e565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f2c565b0390f35b50346101ff576102e03660031901126101ff575f516020613c415f395f51905f52546001600160401b0360ff8260401c1615911680159081610fa9575b6001149081610f9f575b159081610f96575b50610f87578060016001600160401b03195f516020613c415f395f51905f525416175f516020613c415f395f51905f5255610f57575b6004356001600160a01b03811681036107f4576108f5906108ed613995565b610227613995565b60409081516109048382612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093761366b565b905190205f190183526020832060ff19165f516020613c215f395f51905f5281905560243565ffffffffffff81168103610f5357815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f535781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5357815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5357815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5357815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f535765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f4b576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f4f5781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f4b576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f4b576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f4b576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f4b576009820180546001600160a01b0319166001600160a01b03909216919091179055610bc7612f50565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf0612f67565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f4b57600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f4b57600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f4b57600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f4b57600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f4b576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f4b576011820180546001600160a01b0319166001600160a01b039283161790558690610d1a612f50565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f2c57610f36575b506001600160a01b03610d55612f67565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f2c57610f13575b5050549065ffffffffffff821615610f045765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef0578310610ee1578265ffffffffffff8260601c1610610ed2578265ffffffffffff8260901c1610610ec35760c01c65ffffffffffff16908115610eb4575465ffffffffffff16908115610ea55765ffffffffffff91610e1e91613019565b1611610e96576003905410610e8757610e35575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f1d91612e8e565b610f2857855f610d85565b8580fd5b87513d84823e3d90fd5b81610f4091612e8e565b610f2857855f610d44565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c415f395f51905f525416175f516020613c415f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c215f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57610ff9612e34565b5f516020613c215f395f51905f52546001600160a01b0390911690601281019061104361102684846139c0565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff811615929150821561107b575b505061106c57906110689161397b565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a08291826110944261394c565b955460601c1690613019565b169116105f80611058565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c6110fe612e34565b611107816134b5565b60155f516020613c215f395f51905f5254016135ef565b50346101ff57806003193601126101ff575f516020613be15f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff5761116d612e34565b5f516020613c215f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115605760405281600401356001600160401b03811161155c5782013660238201121561155c57600481013561122c81612f15565b9161123a6040519384612e8e565b818352602060048185019360061b8301010190368211610f4b57602401915b8183106114fe57505050815261127c604460208301936024810135855201612e4a565b906040810191825261128c612ec4565b935f516020613c215f395f51905f525490600782019460018060a01b0386541633036114ef57845160068401546001600160a01b039182169116036114e057819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a1015611499578961130191613063565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113ba8b6113ac8b61139a6113498f6110269060018060a01b038a5116906139c0565b9a546040516001600160a01b03909c169b925090506113688683612e8e565b838252604051936113798786612e8e565b845260405197889687015260408601526080606086015260a0850190612f2c565b838103601f1901608085015290612f2c565b03601f198101835282612e8e565b85548751838d0180519096909290916001600160a01b039081169116823b1561149557908c8094939261141a6040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f2c565b03925af1801561148a57908991611475575b50509161146d91600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611468605483612e8e565b6132a0565b9801976112ec565b8161147f91612e8e565b610f4f57875f61142c565b6040513d8b823e3d90fd5b8c80fd5b886114d286848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611468605483612e8e565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f4b57604051604081018181106001600160401b038211176115485791602091604093845261153386612e4a565b81528286013583820152815201920191611259565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115c4612e34565b5f516020613c215f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116b95760068101546001600160a01b03928316921682036116aa57600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af1801561169f5761168a575b602083836040519083820192835260408201526040815261167f606082612e8e565b519020604051908152f35b611695848092612e8e565b6107f4578261165d565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e161366b565b5f516020613be15f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff57610845611790611787612eaf565b60243590613084565b604051918291602083526020830190612ed9565b50346101ff5760203660031901126101ff576117be612e34565b5f516020613c215f395f51905f5254600f0180549091906001600160a01b031633036118025781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff5761182a61366b565b5f516020613c415f395f51905f525460ff8160401c16908115611c39575b50611c2a575f516020613c415f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613be15f395f51905f525461189a906001600160a01b03166108ed613995565b5f516020613c215f395f51905f5254906040516118b8604082612e8e565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118eb61366b565b905190205f190181526020812060ff19165f516020613c215f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a28600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b42575b50506012808401939290820191815b8354811015611abc5780611ab5611aae6001938761369e565b90896136cd565b5001611a95565b506015808501929101815b8154811015611aee5780611ae7611ae06001938561369e565b90876136cd565b5001611ac7565b8260ff60401b195f516020613c415f395f51905f5254165f516020613c415f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a86565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611848565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611ca65760206040515f516020613c015f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cca612e34565b90602435916001600160401b0383116107f857366023840112156107f85782600401356001600160401b038111611ecd5760405193611d13601f8301601f191660200186612e8e565b818552366024838301011161155c5781849260246020930183880137850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611eab575b50611e9c57611d7561366b565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596611e68575b50611dba57634c9c8ce360e01b84526004839052602484fd5b9091845f516020613c015f395f51905f528103611e565750823b15611e44575f516020613c015f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115611e2b5761106891613a17565b505034611e355780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611e94575b81611e8460209383612e8e565b81010312610f535751945f611da1565b3d9150611e77565b63703e46dd60e11b8252600482fd5b5f516020613c015f395f51905f52546001600160a01b0316141590505f611d68565b634e487b7160e01b83526041600452602483fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c215f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c215f395f51905f52540133906135ef565b50346101ff5760203660031901126101ff5761022c611f94612e34565b611f9d816134b5565b60155f516020613c215f395f51905f525401613565565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c215f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c215f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa908115612109578391612123575b501561211457600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa9081156121095783916120da575b50156120cb576120b49065ffffffffffff6120a84261394c565b169060123391016136cd565b156120bc5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b6120fc915060203d602011612102575b6120f48183612e8e565b81019061304b565b5f61208e565b503d6120ea565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61213c915060203d602011612102576120f48183612e8e565b5f612046565b50346101ff5760203660031901126101ff5761215c612e34565b612165816134b5565b5f516020613c215f395f51905f52546001600160a01b0390911690601581019061219261102684846139c0565b5065ffffffffffff81161592915082156121c6575b50506121b757906110689161397b565b6347a11ef760e11b8352600483fd5b65ffffffffffff9192506121eb8291826121df4261394c565b955460901c1690613019565b169116105f806121a7565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c215f395f51905f5254600f8101546001600160a01b0316330361248f5781906020905b6004356004013583101561248b5760248360051b600435010135608219600435360301811215610f535760043501906122d56001600160a01b036122bf60248501612f7e565b165f908152601383016020526040902054151590565b1561247c57845b6122ec6064840160248501612f92565b905081101561246f5761230f816123096064860160248701612f92565b90612fc7565b6123396001600160a01b0361232383612f7e565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361235683612f7e565b166040519384809263b134427160e01b82525afa91821561169f578492612450575b5060048501549161238b60248801612f7e565b604488013565ffffffffffff81169003610f2857889586946124106040516123b38882612e8e565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f2c565b03926001600160a01b03165af191821561079357600192612433575b50016122dc565b61244990863d881161078c5761077d8183612e8e565b505f61242c565b612468919250873d89116107c4576107b68183612e8e565b905f612378565b5092600191500191612279565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b60576040366003190112612b60576124b8612e34565b6024356001600160a01b038116929190839003612b60576124d8816134b5565b5f516020613c215f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612cf2575f91612e15575b5015612e065760405163054fd4d560e41b8152602081600481875afa908115612cf2575f91612de7575b5060038201906001600160401b0380835416911603612dd85760405163d8dfeb4560e01b8152602081600481885afa908115612cf2575f91612db9575b5060068301546001600160a01b03908116911603612daa576040516327f843b560e11b8152602081600481885afa908115612cf2575f91612d8b575b5065ffffffffffff80845460301c169116908110612d7c5760405163142186b760e21b8152602081600481895afa908115612cf2575f91612d5d575b5015612d4e57604051630ce9b79360e41b8152602081600481895afa908115612cf2575f91612d2f575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612cf2575f91612cfd575b5019612ca0575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612c81575b506001600160a01b0316612c6f57604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c50575b5015612c415760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c22575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa91821561148a578992612bf6575b506001600160401b0380915460401c16911603612be757604051631a684c7560e11b8152602081600481875afa9081156107cb578891612bc8575b50612bb95760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612b8a575b5065ffffffffffff855460c01c1665ffffffffffff821610612b7b576127c165ffffffffffff918260018801541690613019565b1611612b6c5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b36575b50600284015410612b275754906020926128438460405161280c8282612e8e565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f2c565b0381865afa9081156107cb578891612b0a575b506001600160a01b031680612ae3575060110154604051926001600160a01b03909116906128848585612e8e565b8784523685850137813b15610f4b579186916128ca93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f2c565b03925af18015612a3457908591612ace575b50505b6040516313c085b760e11b81528181600481875afa908115612a34578591612ab1575b506001600160a01b031615612aa2575f516020613c215f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a6b578691612a85575b5015612a765760405163411557d160e01b815282816004818a5afa908115612a6b578691612a4e575b506001600160a01b031603612a3f5760405163054fd4d560e41b81528181600481895afa918215612a3457916001600160401b03916002938792612a07575b505016036129f85760156120b4939465ffffffffffff6129df4261394c565b1660609190911b6001600160601b0319161792016136cd565b63ded51c0b60e01b8352600483fd5b612a269250803d10612a2d575b612a1e8183612e8e565b810190613528565b5f806129c0565b503d612a14565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a659150833d85116107c4576107b68183612e8e565b5f612981565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612a9c9150833d8511612102576120f48183612e8e565b5f612958565b630c6b5ff760e31b8452600484fd5b612ac89150823d84116107c4576107b68183612e8e565b5f612902565b81612ad891612e8e565b61155c57835f6128dc565b6011909101546001600160a01b03161491506128df905057633cc6586560e21b8452600484fd5b612b219150853d87116107c4576107b68183612e8e565b5f612856565b633a2662c360e11b8652600486fd5b90506020813d602011612b64575b81612b5160209383612e8e565b81010312612b6057515f6127eb565b5f80fd5b3d9150612b44565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bac915060203d602011612bb2575b612ba48183612e8e565b810190613547565b5f61278d565b503d612b9a565b63447984b360e11b8752600487fd5b612be1915060203d602011612102576120f48183612e8e565b5f612764565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c1a829160203d602011612a2d57612a1e8183612e8e565b929150612729565b612c3b915060203d6020116107c4576107b68183612e8e565b5f6126f7565b631501f36360e21b8752600487fd5b612c69915060203d602011612102576120f48183612e8e565b5f6126cd565b60016221bb1360e11b03198752600487fd5b612c9a915060203d6020116107c4576107b68183612e8e565b5f61269b565b803b15612b60576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612cf257612cdc575b50612675565b612ce99198505f90612e8e565b5f966020612cd6565b6040513d5f823e3d90fd5b90506020813d602011612d27575b81612d1860209383612e8e565b81010312612b6057515f61266e565b3d9150612d0b565b612d48915060203d6020116107c4576107b68183612e8e565b5f612632565b636e549c1760e11b5f5260045ffd5b612d76915060203d602011612102576120f48183612e8e565b5f612608565b634934476760e01b5f5260045ffd5b612da4915060203d602011612bb257612ba48183612e8e565b5f6125cc565b63039a1fd760e21b5f5260045ffd5b612dd2915060203d6020116107c4576107b68183612e8e565b5f612590565b63bfcdc45f60e01b5f5260045ffd5b612e00915060203d602011612a2d57612a1e8183612e8e565b5f612553565b635b19e4bb60e01b5f5260045ffd5b612e2e915060203d602011612102576120f48183612e8e565b5f612529565b600435906001600160a01b0382168203612b6057565b35906001600160a01b0382168203612b6057565b61014081019081106001600160401b03821117612e7a57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e7a57604052565b6004359065ffffffffffff82168203612b6057565b6024359065ffffffffffff82168203612b6057565b90602080835192838152019201905f5b818110612ef65750505090565b82516001600160a01b0316845260209384019390920191600101612ee9565b6001600160401b038111612e7a5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b605790565b610204356001600160a01b0381168103612b605790565b356001600160a01b0381168103612b605790565b903590601e1981360301821215612b6057018035906001600160401b038211612b6057602001918160061b36038313612b6057565b9190811015612fd75760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b6057516001600160a01b0381168103612b605790565b90816020910312612b60575190565b9065ffffffffffff8091169116019065ffffffffffff821161303757565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b6057518015158103612b605790565b8051821015612fd75760209160051b010190565b9190820180921161303757565b91811561329157613094836132e0565b92815181811115613288575f5f198201828111925b8083106131af57505050506001945f19820190828211613037576130cd8287613063565b5183975b85518910156131a157816130e58a8a613063565b51036131015760018101809111613037576001909801976130d1565b9395975050909294505b6001821161311c575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613144602682612e8e565b51902090801561318d57613159910683613077565b5f19810190811161303757613184906001600160a01b039061317b9086613063565b51169184613063565b525f8080613114565b634e487b7160e01b5f52601260045260245ffd5b93959750509092945061310b565b9296958792959891945f935b613037578685035f190186811161303757841015613275576131dd8489613063565b51600185019485811161303757858c826001946131fb8f9a8f613063565b511161320c575b50505001936131bb565b61326c918d61323c8361321f8784613063565b519261322b8282613063565b516132368983613063565b52613063565b52858060a01b0361324d8583613063565b511693613236878060a01b036132638585613063565b51169183613063565b525f8c82613202565b94919895600191979894935001916130a9565b50509150915090565b6314f867c760e21b5f5260045ffd5b6132de906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612e8e565b565b906132ea826136ef565b60125f516020613c215f395f51905f52540180549261330884612f15565b916133166040519384612e8e565b848352601f1961332586612f15565b0136602085013761333585612f15565b946133436040519687612e8e565b808652601f1961335282612f15565b013660208801375f925f925b828410613372575050505080825283529190565b909192936133a76133ae84613387888661369e565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b5090613779565b156133f757836133d3916133c2848a613063565b6001600160a01b03821690526137d2565b6133dd828a613063565b526001810180911161303757600190945b0192919061335e565b50936001906133ee565b9061342d816133a761102660125f516020613c215f395f51905f52540160018060a01b038716906139c0565b1561343e5761343b916137d2565b90565b50505f90565b6001600160a01b031680156134a2575f516020613be15f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612cf2575f91613509575b50156134fa57565b630e7fea9d60e01b5f5260045ffd5b613522915060203d602011612102576120f48183612e8e565b5f6134f2565b90816020910312612b6057516001600160401b0381168103612b605790565b90816020910312612b60575165ffffffffffff81168103612b605790565b65ffffffffffff916135836110266001600160a01b038316846139c0565b91949094169384159081156135dd575b506135ce576135cb9365ffffffffffff60301b6135af4261394c565b60301b161760609190911b6001600160601b03191617916136cd565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f613593565b65ffffffffffff9161360d6110266001600160a01b038316846139c0565b949091161515908161365a575b5061364b576135cb9265ffffffffffff6136334261394c565b1660609190911b6001600160601b03191617916136cd565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f61361a565b5f516020613be15f395f51905f52546001600160a01b0316330361368b57565b63118cdaa760e01b5f523360045260245ffd5b91906136ac60029184613aa3565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b61343b929160018060a01b031691825f526002820160205260405f2055613b93565b5f516020613c215f395f51905f52549065ffffffffffff61370f4261394c565b1665ffffffffffff8216101561376257613746915465ffffffffffff808260601c169160901c168082105f14613771575090613019565b65ffffffffffff806137574261394c565b169116111561376257565b63686c69fd60e01b5f5260045ffd5b905090613019565b65ffffffffffff16801515929190836137bf575b508261379857505090565b65ffffffffffff16801592509082156137b057505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f61378d565b5f516020613c215f395f51905f52546015810180546004909201545f95948694602093869391905b86881061380b575050505050505050565b90919293949596986133a7613824866133878d8661369e565b1561394257604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612cf2576138c09189915f91613925575b506040519061386e8383612e8e565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f2c565b03916001600160a01b03165afa908115612cf2575f916138f7575b506138e890600192613077565b995b01969594939291906137fa565b90508781813d831161391e575b61390e8183612e8e565b81010312612b60575160016138db565b503d613904565b61393c9150823d84116107c4576107b68183612e8e565b5f61385f565b50986001906138ea565b65ffffffffffff81116139645765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061343b91815f52600281016020525f6040812055613ab8565b60ff5f516020613c415f395f51905f525460401c16156139b157565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f20549181831591826139f7575b50506139e5575090565b63015ab34360e11b5f5260045260245ffd5b613a0f92506001915f520160205260405f2054151590565b15815f6139db565b905f8091602081519101845af48080613a90575b15613a4b5750506040513d81523d5f602083013e60203d82010160405290565b15613a7057639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15613a81576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580613a2b5750813b1515613a2b565b8054821015612fd7575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b8b575f1981018181116130375782545f1981019190821161303757818103613b40575b50505080548015613b2c575f190190613b0d8282613aa3565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b76613b50613b609386613aa3565b90549060031b1c92839286613aa3565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613af4565b505050505f90565b5f82815260018201602052604090205461343e57805490600160401b821015612e7a5782613bcb613b60846001809601855584613aa3565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21773:159:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7795:17;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;2378:1:52;2376:21773:159;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;2376:21773:159;;;;;;;;;;;;;;;9049:10;9020:20;-1:-1:-1;;;;;;;;;;;2376:21773:159;9020:20;9049:10;;;:::i;2376:21773::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;;13755:372;2376:21773;;:::i;:::-;;;:::i;:::-;22891:2;;;;:::i;:::-;13755:372;:::i;:::-;2376:21773;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7482:21;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7368:30:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;7368:30;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;7587:21;2376:21773;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7242:34:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;7242:34;2376:21773;;;;;;;;;;;;;;;;;;;;;;7693:22;-1:-1:-1;;;;;;;;;;;2376:21773:159;7693:22;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;:::i;:::-;;;;;;7927:20;;;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;16169:38;;2376:21773;-1:-1:-1;;;;;2376:21773:159;16155:10;:52;16151:108;;2376:21773;;;;16274:9;16285:18;;;;;;2376:21773;;;16305:3;16357:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;8847:28:49;;16387:17:159;;-1:-1:-1;;;;;16414:11:159;2376:21773;16414:11;:::i;:::-;2376:21773;8847:28:49;5238:14;5142:129;-1:-1:-1;2376:21773:159;5238:14:49;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5238:26:49;;5142:129;;8847:28;16386:40:159;16382:106;;2376:21773;;-1:-1:-1;;;;;16522:11:159;;;:::i;:::-;2376:21773;;;;;;;;;;16515:29;;;;;;;;;2376:21773;16515:29;;;;;;;16305:3;2376:21773;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16502:83;;16559:11;2376:21773;;16502:83;;2376:21773;;;;;;;;;;;:::i;:::-;16502:83;;-1:-1:-1;;;;;2376:21773:159;16502:83;;;;;;;2376:21773;16502:83;;;16305:3;;2376:21773;16274:9;;16502:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21773;;;;;;;;;16515:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21773;;;;;;;;;16382:106;-1:-1:-1;;;16453:20:159;;2376:21773;15776:20;16453;16151:108;-1:-1:-1;;;16230:18:159;;2376:21773;8423:18;16230;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;4301:16:18;2376:21773:159;;4724:16:18;;:34;;;;2376:21773:159;4803:1:18;4788:16;:50;;;;2376:21773:159;4853:13:18;:30;;;;2376:21773:159;4849:91:18;;;2376:21773:159;4803:1:18;-1:-1:-1;;;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;4977:67:18;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;6959:1:18;;6891:76;;:::i;:::-;;;:::i;6959:1::-;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;-1:-1:-1;;1794:178:36;;;2376:21773:159;1794:178:36;;-1:-1:-1;;1794:178:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;3392:19;2376:21773;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;3447:29;2376:21773;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3510:27;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3568:24;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3622:23;2376:21773;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3682:30;2376:21773;;;;;;;;;4803:1:18;3655:24:159;;2376:21773;;;;;;;;;;3722:27;;;2376:21773;3752:33;2376:21773;;;3823:31;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;-1:-1:-1;;;;;3795:25:159;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;;;;;3888:27;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;3963:18;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;3948:12;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;4014:4;3510:27;2376:21773;;3991:12;;2376:21773;4076:19;2376:21773;4060:13;;;2376:21773;4117:14;2376:21773;;;;;;;;4106:8;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;4156:17;2376:21773;;;;;;;;4142:11;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;3022:1;;:::i;:::-;;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;3022:1;;:::i;:::-;;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;3022:1;2376:21773;;;;;;;;3022:1;;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;4201:33;;:::i;:::-;2376:21773;4184:69;;;;;2376:21773;;;;;;;;;;;;;4184:69;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;4289:35:159;;:::i;:::-;2376:21773;4263:91;;;;;2376:21773;;;3392:19;2376:21773;;;;;;;;;4263:91;;4014:4;2376:21773;4263:91;;2376:21773;4263:91;;;;;;;;2376:21773;;;;;;;;17659:17;2376:21773;;;;;;;;;4803:1:18;2376:21773:159;;;;;;;;;;;18048:44;;2376:21773;;;;;3510:27;2376:21773;;18323:48;2376:21773;;;;;;;;18611:45;2376:21773;;3682:30;2376:21773;;;;18786:21;;2376:21773;;;;;;19058:28;;2376:21773;;;19165:44;;;;:::i;:::-;2376:21773;19165:71;2376:21773;;3795:25;2376:21773;;19507:32;2376:21773;;5064:101:18;;2376:21773:159;;;5064:101:18;2376:21773:159;5140:14:18;2376:21773:159;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;4803:1:18;2376:21773:159;;5140:14:18;2376:21773:159;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;-1:-1:-1;;;2376:21773:159;;3022:1;2376:21773;;3392:19;2376:21773;;;-1:-1:-1;;;2376:21773:159;;;;;4263:91;;;;;:::i;:::-;2376:21773;;4263:91;;;;2376:21773;;;;4263:91;2376:21773;;;;;;;;;4184:69;;;;;:::i;:::-;2376:21773;;4184:69;;;;2376:21773;;;;;;;;;;;;4977:67:18;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;4977:67:18;;4849:91;-1:-1:-1;;;4906:23:18;;2376:21773:159;6496:23:18;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;2376:21773:159;;;;;;;;;;;;;;7110:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;7110:36;2376:21773;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;9302:11;;;;3545:23:170;24034:47:48;2376:21773:159;9302:11;24034:47:48;:::i;:::-;2376:21773:159;;;;;;1267:2:170;2376:21773:159;;;1289:2:170;2376:21773:159;981:319:170;;3545:23;-1:-1:-1;2376:21773:159;;;9347:17;;2376:21773;-1:-1:-1;9347:76:159;;;;2376:21773;9343:144;;;;21866:50:48;;;;:::i;:::-;;2376:21773:159;;9343:144;-1:-1:-1;;;9446:30:159;;2376:21773;9446:30;;9347:76;2376:21773;837:15:50;;;9387:36:159;837:15:50;;;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;;;9387:36;;:::i;:::-;2376:21773;;;9368:55;9347:76;;;;2376:21773;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;11727:5;2376:21773;;:::i;:::-;23936:5;;;:::i;:::-;11702:17;-1:-1:-1;;;;;;;;;;;2376:21773:159;11702:17;11727:5;:::i;2376:21773::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;8371:29;;2376:21773;;8371:29;;2376:21773;-1:-1:-1;;;;;2376:21773:159;8357:10;:43;8353:99;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2376:21773:159;10254:8;;;;2376:21773;;;;;;;;;10240:10;:22;10236:71;;2376:21773;;;10342:12;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;10321:33;10317:90;;10417:30;;;;;;2376:21773;10462:13;;10616:8;2376:21773;10852:13;10616:8;;;10852:13;;2376:21773;;;;10457:677;10514:3;10481:24;;2376:21773;;10477:35;;;;;10569:27;;;;:::i;:::-;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;-1:-1:-1;2376:21773:159;;;;5238:14:49;;2376:21773:159;;;;;;5238:26:49;10611:99:159;;2376:21773;;;;10830:58;2376:21773;;;;3750:23:170;2376:21773:159;24034:47:48;2376:21773:159;;;;;;;;;24034:47:48;;:::i;3750:23:170:-;2376:21773:159;;;;-1:-1:-1;;;;;2376:21773:159;;;;;-1:-1:-1;2376:21773:159;-1:-1:-1;2376:21773:159;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10830:58;;;;;2376:21773;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;:::i;:::-;10830:58;2376:21773;;10830:58;;;;;;:::i;:::-;2376:21773;;;;10987:14;;;2376:21773;;10987:14;;2376:21773;;10987:14;;-1:-1:-1;;;;;2376:21773:159;;;;;10902:106;;;;;2376:21773;;;;;;;;;;;;;;;;;;;10902:106;;2376:21773;10902:106;;2376:21773;;;;;;;;;;;;;;;;;;;:::i;:::-;10902:106;;;;;;;;;;;;;10514:3;2376:21773;;;11043:80;2376:21773;;;;;;;;;;;;;;;11075:47;;;2376:21773;;;;;;11075:47;;;;;;:::i;:::-;11043:80;:::i;:::-;10514:3;2376:21773;10462:13;;;10902:106;;;;;:::i;:::-;2376:21773;;10902:106;;;;;2376:21773;;;;;;;;;10902:106;2376:21773;;;10477:35;;11161:93;10477:35;;;2376:21773;;;;;11193:60;;;;2376:21773;;;;;;;;;;;;11193:60;;;11075:47;11193:60;;:::i;11161:93::-;2376:21773;;;;;11151:104;2376:21773;;;;;;10317:90;-1:-1:-1;;;10377:19:159;;2376:21773;20059:19;10377;10236:71;-1:-1:-1;;;10285:11:159;;2376:21773;9745:11;10285;2376:21773;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;9714:8;;;2376:21773;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;9700:10;:22;;;9696:71;;9790:12;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;9781:21;;9777:78;;9889:27;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;9865:101;;;;;;2376:21773;;;;;;;;;;;;9865:101;;2376:21773;9865:101;;2376:21773;;;;;;;;;;;;;;;9865:101;;;;;;;;2376:21773;;;;;;9994:30;;;;2376:21773;;;;;;;;9994:30;;;2376:21773;9994:30;;:::i;:::-;2376:21773;9984:41;;2376:21773;;;;;;9865:101;;;;;;:::i;:::-;2376:21773;;9865:101;;;;2376:21773;;;;;;;;;9777:78;-1:-1:-1;;;9825:19:159;;2376:21773;20059:19;9825;9696:71;-1:-1:-1;;;9745:11:159;;2376:21773;9745:11;;2376:21773;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;-1:-1:-1;;;;;2376:21773:159;3996:40:52;2376:21773:159;;3996:40:52;2376:21773:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;8103:30;;2376:21773;;8103:30;;2376:21773;-1:-1:-1;;;;;2376:21773:159;8089:10;:44;8085:101;;2376:21773;;-1:-1:-1;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;8085:101;-1:-1:-1;;;8156:19:159;;2376:21773;15296:19;8156;2376:21773;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;6429:44:18;;;;;2376:21773:159;6425:105:18;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;2376:21773:159;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;6959:1:18;;-1:-1:-1;;;;;2376:21773:159;6891:76:18;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;-1:-1:-1;;1794:178:36;;;2376:21773:159;1794:178:36;;-1:-1:-1;;1794:178:36;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;;;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;2376:21773:159;;;;;;;1794:178:36;2376:21773:159;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;-1:-1:-1;;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;6591:4:18;5101:33:159;;2376:21773;;;6591:4:18;5065:33:159;;2376:21773;;;;;;;;;;4519:1;5183:36;;2376:21773;4519:1;5144:36;;2376:21773;5310:63;5266:34;;;-1:-1:-1;;;;;2376:21773:159;;;;5229:34;;5266;5229;;2376:21773;;;;;;;;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;;-1:-1:-1;;;2376:21773:159;;;;;;5310:63;5407:21;;;;2376:21773;5383:21;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;;5462:21;;;2376:21773;5438:21;;;2376:21773;5518:22;;;;2376:21773;5493:22;;;2376:21773;5570:17;;;;2376:21773;5550:17;;;2376:21773;;;;;;;;;;;5620:20;5597;;;;5620;;2376:21773;;;;;;-1:-1:-1;;5675:20:159;5796;;;;5656:13;5675:20;;;;5656:13;5706:3;2376:21773;;5671:33;;;;;5756:26;5796:36;5756:26;6591:4:18;5756:26:159;;;:::i;:::-;5796:36;;;:::i;:::-;;2376:21773;5656:13;;5671:33;-1:-1:-1;5877:17:159;5992;;;;5671:33;5877:17;5671:33;5905:3;2376:21773;;5873:30;;;;;5955:23;5992:33;5955:23;6591:4:18;5955:23:159;;;:::i;:::-;5992:33;;;:::i;:::-;;2376:21773;5858:13;;5873:30;;-1:-1:-1;;;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;;;;;;2376:21773:159;6654:20:18;2376:21773:159;;;4519:1;2376:21773;;6654:20:18;2376:21773:159;;;;;;-1:-1:-1;;;;;;2376:21773:159;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;6425:105:18;-1:-1:-1;;;6496:23:18;;2376:21773:159;;6496:23:18;6429:44;4519:1:159;2376:21773;;-1:-1:-1;;;;;2376:21773:159;6448:25:18;;6429:44;;;2376:21773:159;;;;;;;;;;;;;4840:6:19;-1:-1:-1;;;;;2376:21773:159;4831:4:19;4823:23;4819:145;;2376:21773:159;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;4819:145:19;-1:-1:-1;;;4924:29:19;;2376:21773:159;;4924:29:19;2376:21773:159;-1:-1:-1;2376:21773:159;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;2376:21773:159;4408:4:19;4400:23;;;:120;;;;2376:21773:159;4383:251:19;;;2324:62:52;;:::i;:::-;2376:21773:159;;-1:-1:-1;;;5881:52:19;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;5881:52:19;;;;;;;;2376:21773:159;-1:-1:-1;5877:437:19;;-1:-1:-1;;;6243:60:19;;2376:21773:159;;;;;1805:47:11;6243:60:19;5877:437;5975:40;;;-1:-1:-1;;;;;;;;;;;5975:40:19;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;2407:36:11;;;;2376:21773:159;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;2376:21773:159;;6181:70:11;-1:-1:-1;;;6221:19:11;;2376:21773:159;;6221:19:11;1744:119;-1:-1:-1;;;1805:47:11;;2376:21773:159;;;1805:47:11;;5971:120:19;-1:-1:-1;;;6042:34:19;;2376:21773:159;;;6042:34:19;;5881:52;;;;2376:21773:159;5881:52:19;;2376:21773:159;5881:52:19;;;;;;2376:21773:159;5881:52:19;;;:::i;:::-;;;2376:21773:159;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4383:251;-1:-1:-1;;;4594:29:19;;2376:21773:159;4594:29:19;;4400:120;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;4478:42:19;;;-1:-1:-1;4400:120:19;;;2376:21773:159;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;9146:10;9118:20;-1:-1:-1;;;;;;;;;;;2376:21773:159;9118:20;9146:10;;;:::i;2376:21773::-;;;;;;;-1:-1:-1;;2376:21773:159;;;;11610:5;2376:21773;;:::i;:::-;23936:5;;;:::i;:::-;11584:17;-1:-1:-1;;;;;;;;;;;2376:21773:159;11584:17;11610:5;:::i;2376:21773::-;;;;;;;;;;;;;;;6978:33;-1:-1:-1;;;;;;;;;;;2376:21773:159;6978:33;2376:21773;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;8666:28;;;2376:21773;;;-1:-1:-1;;;8656:60:159;;8705:10;2376:21773;8656:60;;2376:21773;;;;;;8656:60;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;8656:60;;;;;;;;;;;2376:21773;8655:61;;8651:121;;8800:24;;;2376:21773;;;-1:-1:-1;;;8786:76:159;;8705:10;2376:21773;8786:76;;2376:21773;8856:4;8656:60;2376:21773;;;;;;;;8786:76;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;8786:76;;;;;;;;;;;2376:21773;8785:77;;8781:137;;2206:50:170;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;8705:10;8928:11;8705:10;8928:11;;2206:50:170;:::i;:::-;2205:51;2201:103;;2376:21773:159;;2201:103:170;-1:-1:-1;;;2279:14:170;;2376:21773:159;;2279:14:170;8781:137:159;-1:-1:-1;;;8885:22:159;;2376:21773;8885:22;;8786:76;;;;2376:21773;8786:76;2376:21773;8786:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21773;;;;;;;;;8651:121;-1:-1:-1;;;8739:22:159;;2376:21773;8739:22;;8656:60;;;;2376:21773;8656:60;2376:21773;8656:60;;;;;;;:::i;:::-;;;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;23936:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;;;;11889:8;;;;3545:23:170;24034:47:48;2376:21773:159;11889:8;24034:47:48;:::i;3545:23:170:-;-1:-1:-1;2376:21773:159;;;11928:17;;2376:21773;-1:-1:-1;11928:73:159;;;;2376:21773;11924:138;;;;21866:50:48;;;;:::i;11924:138:159:-;-1:-1:-1;;;12024:27:159;;2376:21773;12024:27;;11928:73;2376:21773;837:15:50;;;11968:33:159;837:15:50;;;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;;;11968:33;;:::i;:::-;2376:21773;;;11949:52;11928:73;;;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21773:159;15243:30;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;15229:10;:44;15225:101;;15341:9;2376:21773;;15336:726;15369:3;2376:21773;;;;;15352:15;;;;;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;8847:28:49;-1:-1:-1;;;;;15466:18:159;2376:21773;;;15466:18;:::i;:::-;2376:21773;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;5238:26:49;;;5142:129;8847:28;15444:41:159;15440:110;;15569:9;15609:3;15584:16;;;;2376:21773;;;15584:16;:::i;:::-;15580:27;;;;;;;15668:19;15584:16;15668;15584;;;2376:21773;;;15668:16;:::i;:::-;:19;;:::i;:::-;8847:28:49;-1:-1:-1;;;;;15729:15:159;;;:::i;:::-;2376:21773;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;5238:26:49;;;5142:129;8847:28;15710:35:159;15706:109;;2376:21773;;;;;;-1:-1:-1;;;;;15858:15:159;2376:21773;15858:15;:::i;:::-;2376:21773;;;;;;;;;;15851:33;;;;;;;;;;;;;15609:3;15958:12;2376:21773;15958:12;;2376:21773;;15972:18;2376:21773;;;15972:18;:::i;:::-;16010:12;;;2376:21773;;;;;;;;16010:12;;;;2376:21773;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;;;;;;;;;;;15902:135;;2376:21773;15902:135;;2376:21773;;;;;;;;;;;15992:16;2376:21773;;;;;;16010:12;;;2376:21773;;;;;;;;;;;;;;;;:::i;:::-;15902:135;;-1:-1:-1;;;;;2376:21773:159;15902:135;;;;;;;2376:21773;15902:135;;;15609:3;;2376:21773;15569:9;;15902:135;;;;;;;;;;;;;:::i;:::-;;;;;15851:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15580:27;;;2376:21773;15580:27;;2376:21773;15341:9;;;15440:110;-1:-1:-1;;;15512:23:159;;2376:21773;15512:23;;15352:15;;2376:21773;;15225:101;-1:-1:-1;;;15296:19:159;;2376:21773;15296:19;;2376:21773;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;23936:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21773:159;19747:11;;;2376:21773;;;-1:-1:-1;;;19737:53:159;;-1:-1:-1;;;;;2376:21773:159;;;;19737:53;;2376:21773;;;;;;;;;;;;;;;19737:53;;;;;;;2376:21773;19737:53;;;2376:21773;19736:54;;19732:109;;2376:21773;;-1:-1:-1;;;19855:35:159;;2376:21773;;;;19855:35;;;;;;;;2376:21773;19855:35;;;2376:21773;19894:25;;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;19855:64;19851:128;;2376:21773;;-1:-1:-1;;;19993:27:159;;2376:21773;;;;19993:27;;;;;;;;2376:21773;19993:27;;;2376:21773;-1:-1:-1;20024:12:159;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;19993:43;19989:100;;2376:21773;;-1:-1:-1;;;20155:30:159;;2376:21773;;;;20155:30;;;;;;;;2376:21773;20155:30;;;2376:21773;;;;;;;;;;;20199:44;;;20195:107;;2376:21773;;-1:-1:-1;;;20350:39:159;;2376:21773;;;;20350:39;;;;;;;;2376:21773;20350:39;;;2376:21773;20349:40;;20345:103;;2376:21773;;-1:-1:-1;;;20500:26:159;;2376:21773;;;;20500:26;;;;;;;;2376:21773;20500:26;;;2376:21773;-1:-1:-1;2376:21773:159;20567:12;;;2376:21773;;;;-1:-1:-1;;;20541:39:159;;;;;2376:21773;20567:12;;-1:-1:-1;;;;;2376:21773:159;;;;;;;20541:39;;;;;;;2376:21773;20541:39;;;2376:21773;-1:-1:-1;20541:60:159;20537:158;;2376:21773;;;;;;;;;;;;;20724:32;;;;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;2376:21773:159;17489:82;;2376:21773;;-1:-1:-1;;;20804:37:159;;2376:21773;;;;20804:37;;;;;;;;;;;;2376:21773;20803:38;;20799:99;;2376:21773;;-1:-1:-1;;;20926:24:159;;2376:21773;;;;20926:24;;;;;;;;;;;;2376:21773;-1:-1:-1;2376:21773:159;;-1:-1:-1;;;20964:23:159;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;20964:23;;;;;;;;;;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;20964:48;20960:111;;2376:21773;;-1:-1:-1;;;21085:36:159;;2376:21773;;;;21085:36;;;;;;;;;;;;2376:21773;21081:98;;;2376:21773;;-1:-1:-1;;;21211:36:159;;2376:21773;;;;21211:36;;;;;;;;;;;;2376:21773;;;;;;;;;;;21261:32;21257:92;;21363:39;2376:21773;21378:24;;;;;2376:21773;;21363:39;;:::i;:::-;2376:21773;21363:60;21359:119;;2376:21773;;-1:-1:-1;;;21492:46:159;;2376:21773;;;;21492:46;;;;;;;;;;;;2376:21773;21541:27;;;;2376:21773;-1:-1:-1;21488:139:159;;2376:21773;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;;;;;;;;;;;;;;;;;21656:58;;2376:21773;21656:58;;2376:21773;;;;;;;;;;;:::i;:::-;21656:58;;;;;;;;;;;;;;2376:21773;-1:-1:-1;;;;;;2376:21773:159;21728:22;;;-1:-1:-1;21820:24:159;;2376:21773;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;:::i;:::-;;;;;;;;;21766:93;;;;;2376:21773;;;;;;;;;;;;;;;;;21766:93;;;2376:21773;21766:93;;2376:21773;;;;;;;;;;;;;;;:::i;:::-;21766:93;;;;;;;;;;;;;21724:299;;;;2376:21773;;-1:-1:-1;;;22109:23:159;;;2376:21773;;;22109:23;;;;;;;;;;;;21724:299;-1:-1:-1;;;;;;2376:21773:159;22109:37;22105:94;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;;;;;;22315:41;;;2376:21773;;;;;;;;;;;22305:71;;;2376:21773;22305:71;;2376:21773;22305:71;;;;;;;;;;;21724:299;22304:72;;22300:135;;2376:21773;;-1:-1:-1;;;22449:39:159;;;2376:21773;;;22449:39;;;;;;;;;;;;21724:299;-1:-1:-1;;;;;;2376:21773:159;22449:49;22445:114;;2376:21773;;-1:-1:-1;;;22573:41:159;;;2376:21773;;;22573:41;;;;;;;;;-1:-1:-1;;;;;22573:41:159;21541:27;22573:41;;;;;21724:299;2376:21773;;;22573:46;22569:118;;11446:17;2206:50:170;837:15:50;;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;1780:2:170;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:170;;11446:17:159;2206:50:170;:::i;22569:118:159:-;-1:-1:-1;;;22642:34:159;;2376:21773;22642:34;;22573:41;;;;;;-1:-1:-1;22573:41:159;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21773;;;;;;;;;22445:114;-1:-1:-1;;;22521:27:159;;2376:21773;22521:27;;22449:39;;;;;;;;;;;;;;:::i;:::-;;;;;2376:21773;;;;;;;;;22300:135;-1:-1:-1;;;22399:25:159;;2376:21773;22399:25;;22305:71;;;;;;;;;;;;;;:::i;:::-;;;;22105:94;-1:-1:-1;;;22169:19:159;;2376:21773;22169:19;;22109:23;;;;;;;;;;;;;;:::i;:::-;;;;21766:93;;;;;:::i;:::-;2376:21773;;21766:93;;;;21724:299;21892:24;;;;2376:21773;-1:-1:-1;;;;;2376:21773:159;21880:36;;-1:-1:-1;21724:299:159;;-1:-1:-1;21876:147:159;-1:-1:-1;;;21994:18:159;;2376:21773;21994:18;;21656:58;;;;;;;;;;;;;;:::i;:::-;;;;21488:139;-1:-1:-1;;;21591:25:159;;2376:21773;21591:25;;21492:46;;;2376:21773;21492:46;;2376:21773;21492:46;;;;;;2376:21773;21492:46;;;:::i;:::-;;;2376:21773;;;;;21492:46;;;2376:21773;-1:-1:-1;2376:21773:159;;21492:46;;;-1:-1:-1;21492:46:159;;21359:119;-1:-1:-1;;;21446:21:159;;2376:21773;21446:21;;21257:92;-1:-1:-1;;;21316:22:159;;2376:21773;21316:22;;21211:36;;;;2376:21773;21211:36;2376:21773;21211:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21081:98;-1:-1:-1;;;21144:24:159;;2376:21773;21144:24;;21085:36;;;;2376:21773;21085:36;2376:21773;21085:36;;;;;;;:::i;:::-;;;;20960:111;-1:-1:-1;;;21035:25:159;;2376:21773;21035:25;;20964:23;-1:-1:-1;;;;;20964:23:159;;;;;;2376:21773;20964:23;2376:21773;20964:23;;;;;;;:::i;:::-;;;;;;20926:24;;;;2376:21773;20926:24;2376:21773;20926:24;;;;;;;:::i;:::-;;;;20799:99;-1:-1:-1;;;20864:23:159;;2376:21773;20864:23;;20804:37;;;;2376:21773;20804:37;2376:21773;20804:37;;;;;;;:::i;:::-;;;;17489:82;-1:-1:-1;;;;;;17534:26:159;;2376:21773;17534:26;;20724:32;;;;2376:21773;20724:32;2376:21773;20724:32;;;;;;;:::i;:::-;;;;20537:158;20617:67;;;;;2376:21773;;-1:-1:-1;;;20617:67:159;;2376:21773;;20617:67;;2376:21773;;;-1:-1:-1;;2376:21773:159;;;;;20617:67;2376:21773;;20617:67;;;;;;;;;20537:158;;;;20617:67;;;;;2376:21773;20617:67;;:::i;:::-;2376:21773;;;20617:67;;;2376:21773;;;;;;;;;20541:39;;;2376:21773;20541:39;;2376:21773;20541:39;;;;;;2376:21773;20541:39;;;:::i;:::-;;;2376:21773;;;;;20541:39;;;;;;-1:-1:-1;20541:39:159;;20500:26;;;;2376:21773;20500:26;2376:21773;20500:26;;;;;;;:::i;:::-;;;;20345:103;20412:25;;;2376:21773;20412:25;2376:21773;;20412:25;20350:39;;;;2376:21773;20350:39;2376:21773;20350:39;;;;;;;:::i;:::-;;;;20195:107;20266:25;;;2376:21773;20266:25;2376:21773;;20266:25;20155:30;;;;2376:21773;20155:30;2376:21773;20155:30;;;;;;;:::i;:::-;;;;19989:100;20059:19;;;2376:21773;20059:19;2376:21773;;20059:19;19993:27;;;;2376:21773;19993:27;2376:21773;19993:27;;;;;;;:::i;:::-;;;;19851:128;19942:26;;;2376:21773;19942:26;2376:21773;;19942:26;19855:35;;;;2376:21773;19855:35;2376:21773;19855:35;;;;;;;:::i;:::-;;;;19732:109;19813:17;;;2376:21773;19813:17;2376:21773;;19813:17;19737:53;;;;2376:21773;19737:53;2376:21773;19737:53;;;;;;;:::i;:::-;;;;2376:21773;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;-1:-1:-1;2376:21773:159;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;-1:-1:-1;;2376:21773:159;;;;:::o;:::-;3022:1;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;3022:1;2376:21773;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12107:1642::-;;12224:17;;2376:21773;;12353:29;;;:::i;:::-;2376:21773;;;12397:39;;;;12393:92;;12240:1;20584:17;;2376:21773;;;;;12573:368;12593:5;;;;;;13008:26;;;;12647:1;20584:17;;;2376:21773;;;;;;;;13064:25;;;;:::i;:::-;2376:21773;13104:25;13099:188;13159:3;2376:21773;;13131:26;;;;;13182:9;;;;;:::i;:::-;2376:21773;13182:22;13178:66;;12647:1;2376:21773;;;;;;;12647:1;13257:19;13159:3;2376:21773;13104:25;;;13178:66;13224:5;;;;;;;;;13099:188;12647:1;13301:18;;13297:316;;13099:188;13623:87;;;;;12107:1642;:::o;13297:316::-;2376:21773;;13464:20;;;2376:21773;;;;;;;;;;13464:20;;;;;;;:::i;:::-;2376:21773;13454:31;;2376:21773;;;;;13570:27;2376:21773;;13570:27;;:::i;:::-;-1:-1:-1;;2376:21773:159;;;;;;;13517:85;;-1:-1:-1;;;;;2376:21773:159;13554:48;;;;:::i;:::-;2376:21773;;;13517:85;;:::i;:::-;2376:21773;13297:316;;;;;2376:21773;;;;12240:1;2376:21773;;;;;12240:1;2376:21773;13131:26;;;;;;;;;;;;12600:3;12624:13;;;;;;;;;12240:1;12619:312;12654:3;2376:21773;;;;;-1:-1:-1;;2376:21773:159;;;;;;12639:13;;;;;12681:9;;;;:::i;:::-;2376:21773;12647:1;2376:21773;;;;;;;;12693:13;;;12647:1;12693:13;;;;;;:::i;:::-;2376:21773;-1:-1:-1;12677:240:159;;12654:3;;;;2376:21773;12624:13;;;12677:240;12807:91;2376:21773;12760:13;12730:55;12760:13;;;;;:::i;:::-;2376:21773;12775:9;;;;;:::i;:::-;2376:21773;12730:55;;;;:::i;:::-;2376:21773;12730:55;:::i;:::-;2376:21773;;;;;;12855:22;;;;:::i;:::-;2376:21773;;;12807:91;2376:21773;;;;;12879:18;;;;:::i;:::-;2376:21773;;;12807:91;;:::i;:::-;2376:21773;12677:240;;;;;12639:13;;;;;12647:1;12639:13;;;;;;2376:21773;12578:13;;;12393:92;12452:22;;;;;;;:::o;2376:21773::-;;;;12240:1;2376:21773;;12240:1;2376:21773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;;-1:-1:-1;2376:21773:159;;;;;;;;;;;:::i;:::-;:::o;14170:940::-;;22891:2;;;:::i;:::-;14433:11;-1:-1:-1;;;;;;;;;;;2376:21773:159;14433:11;2376:21773;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21773:159;;;:::i;:::-;;;;;;;-1:-1:-1;14558:9:159;-1:-1:-1;14553:416:159;14569:24;;;;;;14979:125;;;;;;;;;14322:23;14170:940;:::o;14595:3::-;3255:12:170;;;;3308:14;14714:35:159;3255:12:170;;;;;:::i;:::-;3308:14;;;2376:21773:159;;;;;;1267:2:170;2376:21773:159;;;1289:2:170;2376:21773:159;981:319:170;;3308:14;14714:35:159;;;:::i;:::-;14713:36;14709:83;;14806:39;14881:47;14806:39;;;;;:::i;:::-;-1:-1:-1;;;;;2376:21773:159;;;;14881:47;:::i;:::-;14859:69;;;;:::i;:::-;2376:21773;14957:1;2376:21773;;;;;;;14957:1;14942:16;14595:3;14558:9;2376:21773;14558:9;;;;;14709:83;14769:8;;14957:1;14769:8;;;13755:372;;13977:43;2376:21773;3545:23:170;24034:47:48;13923:20:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;13923:20;2376:21773;;;;;;;24034:47:48;;:::i;13977:43:159:-;13976:44;13972:83;;14073:47;;;:::i;:::-;13755:372;:::o;13972:83::-;14036:8;;-1:-1:-1;14036:8:159;:::o;3426:215:52:-;-1:-1:-1;;;;;2376:21773:159;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;2376:21773:159;;-1:-1:-1;;;;;;2376:21773:159;;;;;;;-1:-1:-1;;;;;2376:21773:159;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;2376:21773:159;;3530:1:52;3555:31;23966:181:159;2376:21773;;-1:-1:-1;;;24031:61:159;;2968:4;24031:61;;;2376:21773;24081:10;2968:4;;;2376:21773;;2968:4;;2376:21773;;24031:61;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;24031:61;;;;;;;2968:4;24031:61;;;23966:181;24030:62;;24026:115;;23966:181::o;24026:115::-;24115:15;;;2968:4;24115:15;24031:61;2968:4;24115:15;24031:61;;;;2968:4;24031:61;2968:4;24031:61;;;;;;;:::i;:::-;;;;2376:21773;;;;;;;;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2666:351:170:-;2376:21773:159;;2819:23:170;24034:47:48;-1:-1:-1;;;;;2376:21773:159;;24034:47:48;;:::i;2819:23:170:-;2376:21773:159;;;;;2857:16:170;;;:37;;;;;2666:351;2853:87;;;2950:60;837:15:50;-1:-1:-1;;;819:34:50;837:15;819:34;:::i;:::-;1756:2:170;2376:21773:159;;1707:52:170;1780:2;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:170;;2950:60;:::i;:::-;;2666:351::o;2853:87::-;2917:12;;;-1:-1:-1;2917:12:170;;-1:-1:-1;2917:12:170;2857:37;2376:21773:159;;;;2877:17:170;;2857:37;;;2316:344;2376:21773:159;;2468:23:170;24034:47:48;-1:-1:-1;;;;;2376:21773:159;;24034:47:48;;:::i;2468:23:170:-;2376:21773:159;;;;2506:16:170;;:37;;;;2316:344;2502:91;;;2603:50;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;1780:2:170;2376:21773:159;;;;-1:-1:-1;;;;;;2376:21773:159;1707:76:170;;2603:50;:::i;2502:91::-;2566:16;;;-1:-1:-1;2566:16:170;;-1:-1:-1;2566:16:170;2506:37;2376:21773:159;;;;2526:17:170;2506:37;;;2679:162:52;-1:-1:-1;;;;;;;;;;;2376:21773:159;-1:-1:-1;;;;;2376:21773:159;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;2376:21773:159;;-1:-1:-1;2784:40:52;23141:242:48;;;5894:18:49;5065:11:48;23141:242;5894:18:49;;:::i;:::-;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;5065:11:48;2376:21773:159;;;-1:-1:-1;2376:21773:159;;;;;;;;;23321:55:48;23141:242;:::o;21425:182::-;7939:23:49;21425:182:48;;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;3157:11:48;;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;7939:23:49;:::i;22918:408:159:-;-1:-1:-1;;;;;;;;;;;2376:21773:159;837:15:50;2376:21773:159;819:34:50;837:15;819:34;:::i;:::-;2376:21773:159;;;;23022:22;;23018:80;;23230:16;2376:21773;;;;;;;;;;;;23129:42;;;:87;:42;;;:87;;23230:16;:::i;:::-;2376:21773;837:15:50;819:34;837:15;819:34;:::i;:::-;2376:21773:159;;;23230:36;;23226:94;;22918:408::o;23226:94::-;23067:20;;;-1:-1:-1;23289:20:159;;-1:-1:-1;23289:20:159;23129:87;;;;23230:16;:::i;17170:208::-;2376:21773;;17289:16;;;;17170:208;;17289:16;:37;;17170:208;17289:82;;;;17282:89;;17170:208;:::o;17289:82::-;2376:21773;;17331:17;;;-1:-1:-1;2376:21773:159;17331:39;;;;17289:82;;17170:208;:::o;17331:39::-;2376:21773;;-1:-1:-1;17352:18:159;;-1:-1:-1;17170:208:159;:::o;17289:37::-;2376:21773;;;-1:-1:-1;17309:17:159;;-1:-1:-1;17289:37:159;;;16608:556;-1:-1:-1;;;;;;;;;;;2376:21773:159;16787:8;;;2376:21773;;17071:25;17106:12;;;2376:21773;;;16608:556;2376:21773;;;;;;;16608:556;16783:21;;;;;;16608:556;;;;;;;;:::o;16806:3::-;3255:12:170;;;;;;;;3308:14;16937:53:159;3255:12:170;;;;;:::i;16937:53:159:-;16936:54;16932:101;;2376:21773;;-1:-1:-1;;;17071:25:159;;2376:21773;;;;;17071:25;;2376:21773;;-1:-1:-1;;;;;2376:21773:159;17071:25;;;;;;;2376:21773;17071:25;;;2376:21773;17071:25;;;16806:3;2376:21773;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17056:91:159;;17071:25;17056:91;;2376:21773;;;-1:-1:-1;;;;;2376:21773:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17056:91;;-1:-1:-1;;;;;2376:21773:159;17056:91;;;;;;;2376:21773;17056:91;;;16806:3;17047:100;;;2376:21773;17047:100;;:::i;:::-;16806:3;16772:9;2376:21773;16772:9;;;;;;;;;17056:91;;;;;;;;;;;;;;;;:::i;:::-;;;2376:21773;;;;;;17056:91;;;;;;;17071:25;;;;;;;;;;;;;;:::i;:::-;;;;16932:101;17010:8;;2376:21773;17010:8;;;14293:213:46;2376:21773:159;14371:24:46;;14367:103;;2376:21773:159;;14293:213:46;:::o;14367:103::-;14418:41;;;;;14449:2;14418:41;2376:21773:159;;;;14418:41:46;;3391:164:48;;8233:26:49;3391:164:48;2376:21773:159;-1:-1:-1;2376:21773:159;3494:11:48;;;2376:21773:159;;-1:-1:-1;2376:21773:159;;;;8233:26:49;:::i;7082:141:18:-;2376:21773:159;-1:-1:-1;;;;;;;;;;;2376:21773:159;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;5687:274:48;;2376:21773:159;-1:-1:-1;2376:21773:159;5804:11:48;;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5834:10:48;;;;:33;;;;5687:274;5830:103;;;;5942:12;5687:274;:::o;5830:103::-;5890:32;;;-1:-1:-1;5890:32:48;;2376:21773:159;;-1:-1:-1;5890:32:48;5834:33;8847:28:49;;;5238:14;5142:129;-1:-1:-1;2376:21773:159;5238:14:49;2376:21773:159;;;-1:-1:-1;2376:21773:159;;5238:26:49;;5142:129;;8847:28;5848:19:48;5834:33;;;;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;2376:21773:159;;;;5045:24:25;2376:21773:159;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;2376:21773:159;;;-1:-1:-1;2376:21773:159;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;;2376:21773:159;;;;;;;;-1:-1:-1;2376:21773:159;;-1:-1:-1;2376:21773:159;;;-1:-1:-1;2376:21773:159;:::o;3112:1368:49:-;;3307:14;;;2376:21773:159;;;;;;;;;;;3343:13:49;;;3339:1135;3343:13;;;-1:-1:-1;;2376:21773:159;;;;;;;;;-1:-1:-1;;2376:21773:159;;;20584:17;2376:21773;;;;3818:23:49;;;3814:378;;3339:1135;2376:21773:159;;;;;;;;;-1:-1:-1;;2376:21773:159;;;;;;:::i;:::-;;;;20584:17;;2376:21773;;;;;;;;;;;;;;;;;;3307:14:49;4409:11;:::o;2376:21773:159:-;;;;;;;;;;;;3814:378:49;2376:21773:159;3881:22:49;4002:23;3881:22;;;:::i;:::-;2376:21773:159;;;;;;4002:23:49;;;;;:::i;:::-;2376:21773:159;;;;;;;;;;20584:17;;;2376:21773;;;;;;;;;;;;;;;;;;;3814:378:49;;;;;3339:1135;4451:12;;;;2376:21773:159;4451:12:49;:::o;2538:406::-;-1:-1:-1;2376:21773:159;;;5238:14:49;;;2376:21773:159;;;;;;2622:21:49;;2376:21773:159;;;-1:-1:-1;;;2376:21773:159;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2817:14:49;2376:21773:159;;;;;;;2873:11:49;:::o","linkReferences":{},"immutableReferences":{"1929":[{"start":7265,"length":32},{"start":7485,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"EnumerableMapNonexistentKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"_commitment\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"slashes\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"activeOperators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"maxValidators\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewards\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AlreadyAdded()\":[{\"details\":\"Thrown when an address is already added to the map.\"}],\"AlreadyEnabled()\":[{\"details\":\"Thrown when an address is already enabled.\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnumerableMapNonexistentKey(bytes32)\":[{\"details\":\"Query for a nonexistent map key.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotEnabled()\":[{\"details\":\"Thrown when an address is not enabled.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in a uint of `bits` size.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorStakeAt(address,uint48)\":{\"returns\":{\"stake\":\"The total stake of the operator in all vaults that was active at the given timestamp.\"}},\"makeElectionAt(uint48,uint256)\":{\"details\":\"This function returns the list of validators that are will be responsible for block production in the next era.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"disableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"distributeOperatorRewards(address,uint256,bytes32)\":{\"notice\":\"The function can be called only by the Router contract.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterOperator(address)\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Middleware.sol\":\"Middleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0x02050a27f2a82a20ef6e7e01e7fee06446b4203c36095e17f97c0ddb970085cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58c1bbf419cae523bc6005a9a26b6229b5609eab6df78c702c851087b1b767ef\",\"dweb:/ipfs/QmSf3tk6mJooVbaxsf6Hxtky8E9ZeZhwBF4tEXiNZTgXqz\"]},\"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8\",\"dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]},\"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x9a5e1c1e4a7ac7efb38bef2c1fdf7291bab50f0132254e785b369108d824644a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24eee610901bd2c1cd13bb34e947a0f5ee3c35b9955b47ce31413ceccd1364f7\",\"dweb:/ipfs/QmNT85tdWph5XaPUDnL9HXbAEW3yiQhCHkkZCCdvGpkyQq\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8\",\"dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9\"]},\"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x042cca2276f023a1ca4602b61705f8386947b61dddf03ffa5bee24123e6b1a3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96bfbc31d810dfe87891edeadc14b93bd4bf385047ab4c59e99a92ab7b6e9505\",\"dweb:/ipfs/QmdYGSSPLtuui8rYqWMSgtqvXFVZcS6TLnZKJx1CxKLbTm\"]},\"dependencies/symbiotic-core-main/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x24adabf74f067faa60d944c14419ca1af2ff9b599158e47e4c475ebc69e91cbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9588876a5c3c710e3139ff40fc5b206a4a789a01dcae3b515cff09856cac5c1f\",\"dweb:/ipfs/QmfHuuxVXvF9og6zPZrS2V39bMe4suBjTG3BxxMTKhijYQ\"]},\"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0x29d693b9e936a82cb8e239565e2b06cff3e9670457dce0dc8e0f9f4076cf728c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc79dc5ff137023d7967c9a8499d1cb05baf9260695745bef2633a284ac06200\",\"dweb:/ipfs/QmNoNXRCUmJw5bpemrNMvMvbcPXqnkqmvXaLszF8YwdM6M\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78\",\"dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX\"]},\"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0\",\"dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xc36e2cdf8ac28b45888181e3db591b257411e42e2c50b83fe0e47575b677ae7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63a8b272ab0c5d3252732f9ce0671412bd3c53092b026dc03b9286501dae2392\",\"dweb:/ipfs/QmSizhBvhFUo6APqRPtA1DJQ9TR9JA6ZyYnA5XA56ddMRw\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6\",\"dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD\"]},\"dependencies/symbiotic-rewards-main/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85\",\"dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19\",\"dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG\"]},\"src/Middleware.sol\":{\"keccak256\":\"0xa92bb45cdc5164cc097448b3e1d970b135782da82d9a306e71fcfd2d951990df\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://f8b56f1901805d17d3b8be48a05defe94c873e9b3f9abcc6f794a1465fad4752\",\"dweb:/ipfs/QmRqZLwBE2VdDrcyAZNd927rQ6EQNNS7UTjqMxbijPW5Us\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd\",\"dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd\",\"dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadyAdded"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"type":"error","name":"EnumerableMapNonexistentKey"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotEnabled"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"_commitment","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"slashes","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"activeOperators","type":"address[]"},{"internalType":"uint256[]","name":"stakes","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"uint256","name":"maxValidators","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_rewards","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getOperatorStakeAt(address,uint48)":{"returns":{"stake":"The total stake of the operator in all vaults that was active at the given timestamp."}},"makeElectionAt(uint48,uint256)":{"details":"This function returns the list of validators that are will be responsible for block production in the next era."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"disableVault(address)":{"notice":"This function can be called only by the vault owner."},"distributeOperatorRewards(address,uint256,bytes32)":{"notice":"The function can be called only by the Router contract."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"enableVault(address)":{"notice":"This function can be called only by the vault owner."},"registerOperator()":{"notice":"This function can be called only be operator themselves."},"unregisterOperator(address)":{"notice":"This function can be called only be operator themselves."},"unregisterVault(address)":{"notice":"This function can be called only by the vault owner."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0x02050a27f2a82a20ef6e7e01e7fee06446b4203c36095e17f97c0ddb970085cf","urls":["bzz-raw://58c1bbf419cae523bc6005a9a26b6229b5609eab6df78c702c851087b1b767ef","dweb:/ipfs/QmSf3tk6mJooVbaxsf6Hxtky8E9ZeZhwBF4tEXiNZTgXqz"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol":{"keccak256":"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2","urls":["bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8","dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x9a5e1c1e4a7ac7efb38bef2c1fdf7291bab50f0132254e785b369108d824644a","urls":["bzz-raw://24eee610901bd2c1cd13bb34e947a0f5ee3c35b9955b47ce31413ceccd1364f7","dweb:/ipfs/QmNT85tdWph5XaPUDnL9HXbAEW3yiQhCHkkZCCdvGpkyQq"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791","urls":["bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8","dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol":{"keccak256":"0x042cca2276f023a1ca4602b61705f8386947b61dddf03ffa5bee24123e6b1a3e","urls":["bzz-raw://96bfbc31d810dfe87891edeadc14b93bd4bf385047ab4c59e99a92ab7b6e9505","dweb:/ipfs/QmdYGSSPLtuui8rYqWMSgtqvXFVZcS6TLnZKJx1CxKLbTm"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x24adabf74f067faa60d944c14419ca1af2ff9b599158e47e4c475ebc69e91cbb","urls":["bzz-raw://9588876a5c3c710e3139ff40fc5b206a4a789a01dcae3b515cff09856cac5c1f","dweb:/ipfs/QmfHuuxVXvF9og6zPZrS2V39bMe4suBjTG3BxxMTKhijYQ"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0x29d693b9e936a82cb8e239565e2b06cff3e9670457dce0dc8e0f9f4076cf728c","urls":["bzz-raw://fc79dc5ff137023d7967c9a8499d1cb05baf9260695745bef2633a284ac06200","dweb:/ipfs/QmNoNXRCUmJw5bpemrNMvMvbcPXqnkqmvXaLszF8YwdM6M"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol":{"keccak256":"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d","urls":["bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78","dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX"],"license":"MIT"},"dependencies/symbiotic-core-main/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1","urls":["bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0","dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xc36e2cdf8ac28b45888181e3db591b257411e42e2c50b83fe0e47575b677ae7d","urls":["bzz-raw://63a8b272ab0c5d3252732f9ce0671412bd3c53092b026dc03b9286501dae2392","dweb:/ipfs/QmSizhBvhFUo6APqRPtA1DJQ9TR9JA6ZyYnA5XA56ddMRw"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0x14ae9df6bb8e52a2a0d2b86c8a9e03b4a6b84675186a8d92bd529a0a07abdfd2","urls":["bzz-raw://fd19fcc21ee872cfac6dbe4ce64fcd16ea8323c6b0343f6b6045302671a73ae6","dweb:/ipfs/QmfMSZn6LbZ2BQtTac5u5HWUGXFWkDeVUevC36L1Hb2kZD"],"license":"MIT"},"dependencies/symbiotic-rewards-main/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0xbd0599b34cb65eebb8d099a4c19350c827677e52f474e233c6aacaee19bb271d","urls":["bzz-raw://a691f935cd5ba337b7e3b33ac3211b764ba6ea645063291c8e2adc551b69bb85","dweb:/ipfs/QmdtXFcHr5sLxP9jXDrJZmqrB1oNHErU4s3ak7u83AeUAh"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4","urls":["bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19","dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Middleware.sol":{"keccak256":"0xa92bb45cdc5164cc097448b3e1d970b135782da82d9a306e71fcfd2d951990df","urls":["bzz-raw://f8b56f1901805d17d3b8be48a05defe94c873e9b3f9abcc6f794a1465fad4752","dweb:/ipfs/QmRqZLwBE2VdDrcyAZNd927rQ6EQNNS7UTjqMxbijPW5Us"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d","urls":["bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd","dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153","urls":["bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd","dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":79244,"exportedSymbols":{"EnumerableMap":[16925],"Gear":[86834],"IAccessControl":[82],"IBaseDelegator":[68036],"IDefaultOperatorRewards":[73721],"IDefaultStakerRewards":[73915],"IEntity":[67630],"IMiddleware":[76054],"IMigratableEntity":[67738],"INetworkMiddlewareService":[68524],"INetworkRegistry":[67528],"IOptInService":[68650],"IRegistry":[67862],"IVault":[69386],"IVetoSlasher":[69048],"MapWithTimeData":[87122],"Middleware":[79243],"OwnableUpgradeable":[19465],"ReentrancyGuardTransient":[6594],"SlotDerivation":[6724],"StorageSlot":[6848],"Subnetwork":[67508],"Time":[18907],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:24036:159","nodes":[{"id":76976,"nodeType":"PragmaDirective","src":"114:24:159","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":76978,"nodeType":"ImportDirective","src":"140:101:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":76977,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76980,"nodeType":"ImportDirective","src":"242:81:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":83,"symbolAliases":[{"foreign":{"id":76979,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"250:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76982,"nodeType":"ImportDirective","src":"324:88:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":76981,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"332:15:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76984,"nodeType":"ImportDirective","src":"413:100:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":76983,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"421:24:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76986,"nodeType":"ImportDirective","src":"514:80:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":76985,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"522:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76988,"nodeType":"ImportDirective","src":"595:74:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":76987,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"603:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76990,"nodeType":"ImportDirective","src":"670:86:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":16926,"symbolAliases":[{"foreign":{"id":76989,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16925,"src":"678:13:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76992,"nodeType":"ImportDirective","src":"757:66:159","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":18908,"symbolAliases":[{"foreign":{"id":76991,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"765:4:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76994,"nodeType":"ImportDirective","src":"824:48:159","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":76055,"symbolAliases":[{"foreign":{"id":76993,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"832:11:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76996,"nodeType":"ImportDirective","src":"873:44:159","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":86835,"symbolAliases":[{"foreign":{"id":76995,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"881:4:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76998,"nodeType":"ImportDirective","src":"918:66:159","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":87123,"symbolAliases":[{"foreign":{"id":76997,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87122,"src":"926:15:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77000,"nodeType":"ImportDirective","src":"985:81:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":67509,"symbolAliases":[{"foreign":{"id":76999,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67508,"src":"993:10:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77002,"nodeType":"ImportDirective","src":"1067:84:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":67529,"symbolAliases":[{"foreign":{"id":77001,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67528,"src":"1075:16:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77004,"nodeType":"ImportDirective","src":"1152:73:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":67631,"symbolAliases":[{"foreign":{"id":77003,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67630,"src":"1160:7:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77006,"nodeType":"ImportDirective","src":"1226:93:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":67739,"symbolAliases":[{"foreign":{"id":77005,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67738,"src":"1234:17:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77008,"nodeType":"ImportDirective","src":"1320:77:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":67863,"symbolAliases":[{"foreign":{"id":77007,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67862,"src":"1328:9:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77010,"nodeType":"ImportDirective","src":"1398:90:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":68037,"symbolAliases":[{"foreign":{"id":77009,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68036,"src":"1406:14:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77012,"nodeType":"ImportDirective","src":"1489:110:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":68525,"symbolAliases":[{"foreign":{"id":77011,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68524,"src":"1497:25:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77014,"nodeType":"ImportDirective","src":"1600:86:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":68651,"symbolAliases":[{"foreign":{"id":77013,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68650,"src":"1608:13:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77016,"nodeType":"ImportDirective","src":"1687:84:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":69049,"symbolAliases":[{"foreign":{"id":77015,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69048,"src":"1695:12:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77018,"nodeType":"ImportDirective","src":"1772:70:159","nodes":[],"absolutePath":"dependencies/symbiotic-core-main/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":69387,"symbolAliases":[{"foreign":{"id":77017,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"1780:6:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77020,"nodeType":"ImportDirective","src":"1843:130:159","nodes":[],"absolutePath":"dependencies/symbiotic-rewards-main/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":73722,"symbolAliases":[{"foreign":{"id":77019,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73721,"src":"1856:23:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77022,"nodeType":"ImportDirective","src":"1974:118:159","nodes":[],"absolutePath":"dependencies/symbiotic-rewards-main/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":79244,"sourceUnit":73916,"symbolAliases":[{"foreign":{"id":77021,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73915,"src":"1982:21:159","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79243,"nodeType":"ContractDefinition","src":"2376:21773:159","nodes":[{"id":77034,"nodeType":"UsingForDirective","src":"2480:55:159","nodes":[],"global":false,"libraryName":{"id":77031,"name":"EnumerableMap","nameLocations":["2486:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":16925,"src":"2486:13:159"},"typeName":{"id":77033,"nodeType":"UserDefinedTypeName","pathNode":{"id":77032,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2504:13:159","2518:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2504:30:159"},"referencedDeclaration":14966,"src":"2504:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77038,"nodeType":"UsingForDirective","src":"2540:57:159","nodes":[],"global":false,"libraryName":{"id":77035,"name":"MapWithTimeData","nameLocations":["2546:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":87122,"src":"2546:15:159"},"typeName":{"id":77037,"nodeType":"UserDefinedTypeName","pathNode":{"id":77036,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2566:13:159","2580:16:159"],"nodeType":"IdentifierPath","referencedDeclaration":14966,"src":"2566:30:159"},"referencedDeclaration":14966,"src":"2566:30:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77042,"nodeType":"UsingForDirective","src":"2603:58:159","nodes":[],"global":false,"libraryName":{"id":77039,"name":"EnumerableMap","nameLocations":["2609:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":16925,"src":"2609:13:159"},"typeName":{"id":77041,"nodeType":"UserDefinedTypeName","pathNode":{"id":77040,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2627:13:159","2641:19:159"],"nodeType":"IdentifierPath","referencedDeclaration":15261,"src":"2627:33:159"},"referencedDeclaration":15261,"src":"2627:33:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$15261_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":77045,"nodeType":"UsingForDirective","src":"2667:29:159","nodes":[],"global":false,"libraryName":{"id":77043,"name":"Subnetwork","nameLocations":["2673:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":67508,"src":"2673:10:159"},"typeName":{"id":77044,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":77048,"nodeType":"VariableDeclaration","src":"2809:106:159","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2834:12:159","scope":79243,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2809:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":77047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2849:66:159","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":77051,"nodeType":"VariableDeclaration","src":"2922:50:159","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2947:18:159","scope":79243,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2922:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":77050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2968:4:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":77054,"nodeType":"VariableDeclaration","src":"2978:45:159","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3001:18:159","scope":79243,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77052,"name":"uint8","nodeType":"ElementaryTypeName","src":"2978:5:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":77053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3022:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":77062,"nodeType":"FunctionDefinition","src":"3098:53:159","nodes":[],"body":{"id":77061,"nodeType":"Block","src":"3112:39:159","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77058,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"3122:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3122:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77060,"nodeType":"ExpressionStatement","src":"3122:22:159"}]},"documentation":{"id":77055,"nodeType":"StructuredDocumentation","src":"3030:63:159","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77056,"nodeType":"ParameterList","parameters":[],"src":"3109:2:159"},"returnParameters":{"id":77057,"nodeType":"ParameterList","parameters":[],"src":"3112:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77213,"nodeType":"FunctionDefinition","src":"3157:1234:159","nodes":[],"body":{"id":77212,"nodeType":"Block","src":"3225:1166:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":77071,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3250:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3258:5:159","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":75785,"src":"3250:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77070,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"3235:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3235:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77074,"nodeType":"ExpressionStatement","src":"3235:29:159"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":77076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3291:33:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":77075,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79212,"src":"3275:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3275:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77078,"nodeType":"ExpressionStatement","src":"3275:50:159"},{"assignments":[77081],"declarations":[{"constant":false,"id":77081,"mutability":"mutable","name":"$","nameLocation":"3351:1:159","nodeType":"VariableDeclaration","scope":77212,"src":"3335:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77080,"nodeType":"UserDefinedTypeName","pathNode":{"id":77079,"name":"Storage","nameLocations":["3335:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"3335:7:159"},"referencedDeclaration":75851,"src":"3335:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77084,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77082,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"3355:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3355:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3335:30:159"},{"expression":{"id":77090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77085,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3376:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3378:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":75816,"src":"3376:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77088,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3392:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3400:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":75787,"src":"3392:19:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3376:35:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77091,"nodeType":"ExpressionStatement","src":"3376:35:159"},{"expression":{"id":77097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77092,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3421:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3423:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"3421:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77095,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3447:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3455:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75789,"src":"3447:29:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3421:55:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77098,"nodeType":"ExpressionStatement","src":"3421:55:159"},{"expression":{"id":77104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77099,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3486:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3488:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75820,"src":"3486:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77102,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3510:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3518:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75791,"src":"3510:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3486:51:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77105,"nodeType":"ExpressionStatement","src":"3486:51:159"},{"expression":{"id":77111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77106,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3547:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3549:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75822,"src":"3547:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77109,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3568:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3576:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75793,"src":"3568:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3547:45:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77112,"nodeType":"ExpressionStatement","src":"3547:45:159"},{"expression":{"id":77118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77113,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3602:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3604:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":75824,"src":"3602:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77116,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3622:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3630:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":75795,"src":"3622:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3602:43:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77119,"nodeType":"ExpressionStatement","src":"3602:43:159"},{"expression":{"id":77125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77120,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3655:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3657:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":75826,"src":"3655:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77123,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3682:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3690:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":75797,"src":"3682:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3655:57:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77126,"nodeType":"ExpressionStatement","src":"3655:57:159"},{"expression":{"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77127,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3722:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3724:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":75828,"src":"3722:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77130,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3752:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3760:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":75803,"src":"3752:33:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3722:63:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77133,"nodeType":"ExpressionStatement","src":"3722:63:159"},{"expression":{"id":77139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77134,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3795:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3797:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":75830,"src":"3795:25:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77137,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3823:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3831:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":75799,"src":"3823:31:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3795:59:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":77140,"nodeType":"ExpressionStatement","src":"3795:59:159"},{"expression":{"id":77146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77141,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3864:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3866:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":75832,"src":"3864:21:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77144,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3888:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3896:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":75801,"src":"3888:27:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3864:51:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":77147,"nodeType":"ExpressionStatement","src":"3864:51:159"},{"expression":{"id":77153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77148,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3948:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3950:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":75838,"src":"3948:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77151,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"3963:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3971:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":75807,"src":"3963:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3948:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77154,"nodeType":"ExpressionStatement","src":"3948:33:159"},{"expression":{"id":77165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77155,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"3991:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3993:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":75834,"src":"3991:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77163,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77054,"src":"4031:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":77160,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4014:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$79243","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$79243","typeString":"contract Middleware"}],"id":77159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4006:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77158,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:159","typeDescriptions":{}}},"id":77161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4020:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":67470,"src":"4006:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint96_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,uint96) pure returns (bytes32)"}},"id":77164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:44:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3991:59:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77166,"nodeType":"ExpressionStatement","src":"3991:59:159"},{"expression":{"id":77172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77167,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"4060:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4062:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":75836,"src":"4060:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77170,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"4076:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4084:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":75805,"src":"4076:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4060:35:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77173,"nodeType":"ExpressionStatement","src":"4060:35:159"},{"expression":{"id":77179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77174,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"4106:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4108:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"4106:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77177,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"4117:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4125:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75809,"src":"4117:14:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4106:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77180,"nodeType":"ExpressionStatement","src":"4106:25:159"},{"expression":{"id":77186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"4142:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4144:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"4142:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77184,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"4156:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4164:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75812,"src":"4156:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4142:31:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77187,"nodeType":"ExpressionStatement","src":"4142:31:159"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":77189,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"4201:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4209:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75812,"src":"4201:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":77191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4219:15:159","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":85890,"src":"4201:33:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77188,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67528,"src":"4184:16:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$67528_$","typeString":"type(contract INetworkRegistry)"}},"id":77192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$67528","typeString":"contract INetworkRegistry"}},"id":77193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4236:15:159","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":67527,"src":"4184:67:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":77194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:69:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77195,"nodeType":"ExpressionStatement","src":"4184:69:159"},{"expression":{"arguments":[{"arguments":[{"id":77204,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4348:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$79243","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$79243","typeString":"contract Middleware"}],"id":77203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4340:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77202,"name":"address","nodeType":"ElementaryTypeName","src":"4340:7:159","typeDescriptions":{}}},"id":77205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":77197,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77065,"src":"4289:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4297:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75812,"src":"4289:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":77199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4307:17:159","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":85892,"src":"4289:35:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77196,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68524,"src":"4263:25:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$68524_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":77200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:62:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$68524","typeString":"contract INetworkMiddlewareService"}},"id":77201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4326:13:159","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":68523,"src":"4263:76:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":77206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:91:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77207,"nodeType":"ExpressionStatement","src":"4263:91:159"},{"expression":{"arguments":[{"id":77209,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"4382:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":77208,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78792,"src":"4365:16:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$75851_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":77210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4365:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77211,"nodeType":"ExpressionStatement","src":"4365:19:159"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":77068,"kind":"modifierInvocation","modifierName":{"id":77067,"name":"initializer","nameLocations":["3213:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"3213:11:159"},"nodeType":"ModifierInvocation","src":"3213:11:159"}],"name":"initialize","nameLocation":"3166:10:159","parameters":{"id":77066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77065,"mutability":"mutable","name":"_params","nameLocation":"3197:7:159","nodeType":"VariableDeclaration","scope":77213,"src":"3177:27:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":77064,"nodeType":"UserDefinedTypeName","pathNode":{"id":77063,"name":"InitParams","nameLocations":["3177:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":75813,"src":"3177:10:159"},"referencedDeclaration":75813,"src":"3177:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3176:29:159"},"returnParameters":{"id":77069,"nodeType":"ParameterList","parameters":[],"src":"3225:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77410,"nodeType":"FunctionDefinition","src":"4464:1578:159","nodes":[],"body":{"id":77409,"nodeType":"Block","src":"4522:1520:159","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":77223,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"4547:5:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":77224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:7:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77222,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"4532:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77226,"nodeType":"ExpressionStatement","src":"4532:23:159"},{"assignments":[77229],"declarations":[{"constant":false,"id":77229,"mutability":"mutable","name":"oldStorage","nameLocation":"4582:10:159","nodeType":"VariableDeclaration","scope":77409,"src":"4566:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77228,"nodeType":"UserDefinedTypeName","pathNode":{"id":77227,"name":"Storage","nameLocations":["4566:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"4566:7:159"},"referencedDeclaration":75851,"src":"4566:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77232,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77230,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"4595:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4595:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4566:39:159"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":77234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4632:33:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":77233,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79212,"src":"4616:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4616:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77236,"nodeType":"ExpressionStatement","src":"4616:50:159"},{"assignments":[77239],"declarations":[{"constant":false,"id":77239,"mutability":"mutable","name":"newStorage","nameLocation":"4692:10:159","nodeType":"VariableDeclaration","scope":77409,"src":"4676:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77238,"nodeType":"UserDefinedTypeName","pathNode":{"id":77237,"name":"Storage","nameLocations":["4676:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"4676:7:159"},"referencedDeclaration":75851,"src":"4676:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77242,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77240,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"4705:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4705:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4676:39:159"},{"expression":{"id":77248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77243,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"4726:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4737:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":75816,"src":"4726:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77246,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"4751:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4762:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":75816,"src":"4751:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4726:47:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77249,"nodeType":"ExpressionStatement","src":"4726:47:159"},{"expression":{"id":77255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77250,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"4783:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4794:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"4783:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77253,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"4818:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4829:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"4818:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4783:67:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77256,"nodeType":"ExpressionStatement","src":"4783:67:159"},{"expression":{"id":77262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77257,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"4860:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4871:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75820,"src":"4860:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77260,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"4893:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4904:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75820,"src":"4893:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4860:63:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77263,"nodeType":"ExpressionStatement","src":"4860:63:159"},{"expression":{"id":77269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77264,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"4933:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4944:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75822,"src":"4933:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77267,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"4963:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4974:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75822,"src":"4963:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4933:57:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77270,"nodeType":"ExpressionStatement","src":"4933:57:159"},{"expression":{"id":77276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77271,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5000:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5011:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":75824,"src":"5000:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77274,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5029:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5040:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":75824,"src":"5029:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5000:55:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77277,"nodeType":"ExpressionStatement","src":"5000:55:159"},{"expression":{"id":77283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77278,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5065:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5076:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":75826,"src":"5065:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77281,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5101:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5112:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":75826,"src":"5101:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5065:69:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77284,"nodeType":"ExpressionStatement","src":"5065:69:159"},{"expression":{"id":77290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77285,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5144:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5155:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":75828,"src":"5144:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77288,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5183:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5194:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":75828,"src":"5183:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5144:75:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77291,"nodeType":"ExpressionStatement","src":"5144:75:159"},{"expression":{"id":77297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77292,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5229:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5240:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":75830,"src":"5229:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77295,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5266:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5277:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":75830,"src":"5266:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5229:71:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":77298,"nodeType":"ExpressionStatement","src":"5229:71:159"},{"expression":{"id":77304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77299,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5310:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5321:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":75832,"src":"5310:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77302,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5343:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5354:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":75832,"src":"5343:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5310:63:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":77305,"nodeType":"ExpressionStatement","src":"5310:63:159"},{"expression":{"id":77311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77306,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5383:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5394:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":75838,"src":"5383:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77309,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5407:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5418:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":75838,"src":"5407:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5383:45:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77312,"nodeType":"ExpressionStatement","src":"5383:45:159"},{"expression":{"id":77318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77313,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5438:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5449:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":75834,"src":"5438:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77316,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5462:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5473:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":75834,"src":"5462:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5438:45:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77319,"nodeType":"ExpressionStatement","src":"5438:45:159"},{"expression":{"id":77325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77320,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5493:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5504:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":75836,"src":"5493:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77323,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5518:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5529:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":75836,"src":"5518:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5493:47:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77326,"nodeType":"ExpressionStatement","src":"5493:47:159"},{"expression":{"id":77332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77327,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5550:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5561:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"5550:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77330,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5570:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5581:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"5570:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5550:37:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77333,"nodeType":"ExpressionStatement","src":"5550:37:159"},{"expression":{"id":77339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77334,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5597:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5608:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"5597:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77337,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5620:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5631:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"5620:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5597:43:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77340,"nodeType":"ExpressionStatement","src":"5597:43:159"},{"body":{"id":77373,"nodeType":"Block","src":"5711:132:159","statements":[{"assignments":[77355,77357],"declarations":[{"constant":false,"id":77355,"mutability":"mutable","name":"key","nameLocation":"5734:3:159","nodeType":"VariableDeclaration","scope":77373,"src":"5726:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77354,"name":"address","nodeType":"ElementaryTypeName","src":"5726:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77357,"mutability":"mutable","name":"value","nameLocation":"5747:5:159","nodeType":"VariableDeclaration","scope":77373,"src":"5739:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77356,"name":"uint256","nodeType":"ElementaryTypeName","src":"5739:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77363,"initialValue":{"arguments":[{"id":77361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77342,"src":"5780:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":77358,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5756:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5767:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"5756:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5777:2:159","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":15121,"src":"5756:23:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":77362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5756:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5725:57:159"},{"expression":{"arguments":[{"id":77369,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77355,"src":"5821:3:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77370,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"5826:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":77364,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5796:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5807:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"5796:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5817:3:159","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":14999,"src":"5796:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":77371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5796:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77372,"nodeType":"ExpressionStatement","src":"5796:36:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77342,"src":"5671:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":77346,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5675:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5686:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"5675:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5696:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"5675:27:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":77349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5675:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5671:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77374,"initializationExpression":{"assignments":[77342],"declarations":[{"constant":false,"id":77342,"mutability":"mutable","name":"i","nameLocation":"5664:1:159","nodeType":"VariableDeclaration","scope":77374,"src":"5656:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77341,"name":"uint256","nodeType":"ElementaryTypeName","src":"5656:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77344,"initialValue":{"hexValue":"30","id":77343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5668:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5656:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5706:3:159","subExpression":{"id":77351,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77342,"src":"5706:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77353,"nodeType":"ExpressionStatement","src":"5706:3:159"},"nodeType":"ForStatement","src":"5651:192:159"},{"body":{"id":77407,"nodeType":"Block","src":"5910:126:159","statements":[{"assignments":[77389,77391],"declarations":[{"constant":false,"id":77389,"mutability":"mutable","name":"key","nameLocation":"5933:3:159","nodeType":"VariableDeclaration","scope":77407,"src":"5925:11:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77388,"name":"address","nodeType":"ElementaryTypeName","src":"5925:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77391,"mutability":"mutable","name":"value","nameLocation":"5946:5:159","nodeType":"VariableDeclaration","scope":77407,"src":"5938:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77390,"name":"uint256","nodeType":"ElementaryTypeName","src":"5938:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77397,"initialValue":{"arguments":[{"id":77395,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77376,"src":"5976:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":77392,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5955:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5966:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"5955:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5973:2:159","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":15121,"src":"5955:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":77396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5955:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5924:54:159"},{"expression":{"arguments":[{"id":77403,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77389,"src":"6014:3:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77404,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77391,"src":"6019:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":77398,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"5992:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6003:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"5992:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6010:3:159","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":14999,"src":"5992:21:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":77405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5992:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77406,"nodeType":"ExpressionStatement","src":"5992:33:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77376,"src":"5873:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":77380,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"5877:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5888:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"5877:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5895:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"5877:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":77383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5877:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5873:30:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77408,"initializationExpression":{"assignments":[77376],"declarations":[{"constant":false,"id":77376,"mutability":"mutable","name":"i","nameLocation":"5866:1:159","nodeType":"VariableDeclaration","scope":77408,"src":"5858:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77375,"name":"uint256","nodeType":"ElementaryTypeName","src":"5858:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77378,"initialValue":{"hexValue":"30","id":77377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5870:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5858:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5905:3:159","subExpression":{"id":77385,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77376,"src":"5905:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77387,"nodeType":"ExpressionStatement","src":"5905:3:159"},"nodeType":"ForStatement","src":"5853:183:159"}]},"documentation":{"id":77214,"nodeType":"StructuredDocumentation","src":"4397:62:159","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":77217,"kind":"modifierInvocation","modifierName":{"id":77216,"name":"onlyOwner","nameLocations":["4495:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"4495:9:159"},"nodeType":"ModifierInvocation","src":"4495:9:159"},{"arguments":[{"hexValue":"32","id":77219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4519:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":77220,"kind":"modifierInvocation","modifierName":{"id":77218,"name":"reinitializer","nameLocations":["4505:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"4505:13:159"},"nodeType":"ModifierInvocation","src":"4505:16:159"}],"name":"reinitialize","nameLocation":"4473:12:159","parameters":{"id":77215,"nodeType":"ParameterList","parameters":[],"src":"4485:2:159"},"returnParameters":{"id":77221,"nodeType":"ParameterList","parameters":[],"src":"4522:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77420,"nodeType":"FunctionDefinition","src":"6207:84:159","nodes":[],"body":{"id":77419,"nodeType":"Block","src":"6289:2:159","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":77411,"nodeType":"StructuredDocumentation","src":"6048:154:159","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":77417,"kind":"modifierInvocation","modifierName":{"id":77416,"name":"onlyOwner","nameLocations":["6279:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"6279:9:159"},"nodeType":"ModifierInvocation","src":"6279:9:159"}],"name":"_authorizeUpgrade","nameLocation":"6216:17:159","overrides":{"id":77415,"nodeType":"OverrideSpecifier","overrides":[],"src":"6270:8:159"},"parameters":{"id":77414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77413,"mutability":"mutable","name":"newImplementation","nameLocation":"6242:17:159","nodeType":"VariableDeclaration","scope":77420,"src":"6234:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77412,"name":"address","nodeType":"ElementaryTypeName","src":"6234:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6233:27:159"},"returnParameters":{"id":77418,"nodeType":"ParameterList","parameters":[],"src":"6289:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77430,"nodeType":"FunctionDefinition","src":"6316:98:159","nodes":[],"body":{"id":77429,"nodeType":"Block","src":"6368:46:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77425,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"6385:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6385:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6396:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":75816,"src":"6385:22:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":77424,"id":77428,"nodeType":"Return","src":"6378:29:159"}]},"baseFunctions":[75875],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6325:11:159","parameters":{"id":77421,"nodeType":"ParameterList","parameters":[],"src":"6336:2:159"},"returnParameters":{"id":77424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77430,"src":"6360:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77422,"name":"uint48","nodeType":"ElementaryTypeName","src":"6360:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6359:8:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77440,"nodeType":"FunctionDefinition","src":"6420:118:159","nodes":[],"body":{"id":77439,"nodeType":"Block","src":"6482:56:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77435,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"6499:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6499:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6510:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"6499:32:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":77434,"id":77438,"nodeType":"Return","src":"6492:39:159"}]},"baseFunctions":[75880],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6429:21:159","parameters":{"id":77431,"nodeType":"ParameterList","parameters":[],"src":"6450:2:159"},"returnParameters":{"id":77434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77440,"src":"6474:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77432,"name":"uint48","nodeType":"ElementaryTypeName","src":"6474:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6473:8:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77450,"nodeType":"FunctionDefinition","src":"6544:116:159","nodes":[],"body":{"id":77449,"nodeType":"Block","src":"6606:54:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77445,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"6623:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6634:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75820,"src":"6623:30:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":77444,"id":77448,"nodeType":"Return","src":"6616:37:159"}]},"baseFunctions":[75885],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6553:19:159","parameters":{"id":77441,"nodeType":"ParameterList","parameters":[],"src":"6572:2:159"},"returnParameters":{"id":77444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77450,"src":"6598:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77442,"name":"uint48","nodeType":"ElementaryTypeName","src":"6598:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6597:8:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77460,"nodeType":"FunctionDefinition","src":"6666:110:159","nodes":[],"body":{"id":77459,"nodeType":"Block","src":"6725:51:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77455,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"6742:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6742:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6753:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75822,"src":"6742:27:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":77454,"id":77458,"nodeType":"Return","src":"6735:34:159"}]},"baseFunctions":[75890],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6675:16:159","parameters":{"id":77451,"nodeType":"ParameterList","parameters":[],"src":"6691:2:159"},"returnParameters":{"id":77454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77460,"src":"6717:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77452,"name":"uint48","nodeType":"ElementaryTypeName","src":"6717:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6716:8:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77470,"nodeType":"FunctionDefinition","src":"6782:108:159","nodes":[],"body":{"id":77469,"nodeType":"Block","src":"6840:50:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77465,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"6857:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6868:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":75824,"src":"6857:26:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":77464,"id":77468,"nodeType":"Return","src":"6850:33:159"}]},"baseFunctions":[75895],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6791:15:159","parameters":{"id":77461,"nodeType":"ParameterList","parameters":[],"src":"6806:2:159"},"returnParameters":{"id":77464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77470,"src":"6832:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77462,"name":"uint48","nodeType":"ElementaryTypeName","src":"6832:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6831:8:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77480,"nodeType":"FunctionDefinition","src":"6896:122:159","nodes":[],"body":{"id":77479,"nodeType":"Block","src":"6961:57:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77475,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"6978:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6978:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6989:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":75826,"src":"6978:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":77474,"id":77478,"nodeType":"Return","src":"6971:40:159"}]},"baseFunctions":[75900],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6905:22:159","parameters":{"id":77471,"nodeType":"ParameterList","parameters":[],"src":"6927:2:159"},"returnParameters":{"id":77474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77480,"src":"6953:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77472,"name":"uint48","nodeType":"ElementaryTypeName","src":"6953:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6952:8:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77490,"nodeType":"FunctionDefinition","src":"7024:129:159","nodes":[],"body":{"id":77489,"nodeType":"Block","src":"7093:60:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77485,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"7110:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7110:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7121:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":75828,"src":"7110:36:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77484,"id":77488,"nodeType":"Return","src":"7103:43:159"}]},"baseFunctions":[75905],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7033:25:159","parameters":{"id":77481,"nodeType":"ParameterList","parameters":[],"src":"7058:2:159"},"returnParameters":{"id":77484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77490,"src":"7084:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77482,"name":"uint256","nodeType":"ElementaryTypeName","src":"7084:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7083:9:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77500,"nodeType":"FunctionDefinition","src":"7159:124:159","nodes":[],"body":{"id":77499,"nodeType":"Block","src":"7225:58:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77495,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"7242:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7242:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7253:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":75830,"src":"7242:34:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":77494,"id":77498,"nodeType":"Return","src":"7235:41:159"}]},"baseFunctions":[75910],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7168:23:159","parameters":{"id":77491,"nodeType":"ParameterList","parameters":[],"src":"7191:2:159"},"returnParameters":{"id":77494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77500,"src":"7217:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":77492,"name":"uint64","nodeType":"ElementaryTypeName","src":"7217:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7216:8:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77510,"nodeType":"FunctionDefinition","src":"7289:116:159","nodes":[],"body":{"id":77509,"nodeType":"Block","src":"7351:54:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77505,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"7368:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7368:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7379:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":75832,"src":"7368:30:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":77504,"id":77508,"nodeType":"Return","src":"7361:37:159"}]},"baseFunctions":[75915],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7298:19:159","parameters":{"id":77501,"nodeType":"ParameterList","parameters":[],"src":"7317:2:159"},"returnParameters":{"id":77504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77510,"src":"7343:6:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":77502,"name":"uint64","nodeType":"ElementaryTypeName","src":"7343:6:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7342:8:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77520,"nodeType":"FunctionDefinition","src":"7411:99:159","nodes":[],"body":{"id":77519,"nodeType":"Block","src":"7465:45:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77515,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"7482:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7482:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7493:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":75838,"src":"7482:21:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":77514,"id":77518,"nodeType":"Return","src":"7475:28:159"}]},"baseFunctions":[75920],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7420:10:159","parameters":{"id":77511,"nodeType":"ParameterList","parameters":[],"src":"7430:2:159"},"returnParameters":{"id":77514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77520,"src":"7456:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77512,"name":"address","nodeType":"ElementaryTypeName","src":"7456:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7455:9:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77530,"nodeType":"FunctionDefinition","src":"7516:99:159","nodes":[],"body":{"id":77529,"nodeType":"Block","src":"7570:45:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77525,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"7587:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7587:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7598:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":75834,"src":"7587:21:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77524,"id":77528,"nodeType":"Return","src":"7580:28:159"}]},"baseFunctions":[75925],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7525:10:159","parameters":{"id":77521,"nodeType":"ParameterList","parameters":[],"src":"7535:2:159"},"returnParameters":{"id":77524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77530,"src":"7561:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7561:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7560:9:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77540,"nodeType":"FunctionDefinition","src":"7621:101:159","nodes":[],"body":{"id":77539,"nodeType":"Block","src":"7676:46:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77535,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"7693:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7693:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7704:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":75836,"src":"7693:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77534,"id":77538,"nodeType":"Return","src":"7686:29:159"}]},"baseFunctions":[75930],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7630:11:159","parameters":{"id":77531,"nodeType":"ParameterList","parameters":[],"src":"7641:2:159"},"returnParameters":{"id":77534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77540,"src":"7667:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77532,"name":"uint256","nodeType":"ElementaryTypeName","src":"7667:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7666:9:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77550,"nodeType":"FunctionDefinition","src":"7728:91:159","nodes":[],"body":{"id":77549,"nodeType":"Block","src":"7778:41:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77545,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"7795:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7795:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7806:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"7795:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":77544,"id":77548,"nodeType":"Return","src":"7788:24:159"}]},"baseFunctions":[75935],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7737:6:159","parameters":{"id":77541,"nodeType":"ParameterList","parameters":[],"src":"7743:2:159"},"returnParameters":{"id":77544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77550,"src":"7769:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77542,"name":"address","nodeType":"ElementaryTypeName","src":"7769:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7768:9:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77561,"nodeType":"FunctionDefinition","src":"7825:129:159","nodes":[],"body":{"id":77560,"nodeType":"Block","src":"7910:44:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77556,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"7927:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7927:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7938:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"7927:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":77555,"id":77559,"nodeType":"Return","src":"7920:27:159"}]},"baseFunctions":[75941],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7834:18:159","parameters":{"id":77551,"nodeType":"ParameterList","parameters":[],"src":"7852:2:159"},"returnParameters":{"id":77555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77561,"src":"7878:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":77553,"nodeType":"UserDefinedTypeName","pathNode":{"id":77552,"name":"Gear.SymbioticContracts","nameLocations":["7878:4:159","7883:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":85905,"src":"7878:23:159"},"referencedDeclaration":85905,"src":"7878:23:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7877:32:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77592,"nodeType":"FunctionDefinition","src":"7979:263:159","nodes":[],"body":{"id":77591,"nodeType":"Block","src":"8035:207:159","nodes":[],"statements":[{"assignments":[77568],"declarations":[{"constant":false,"id":77568,"mutability":"mutable","name":"$","nameLocation":"8061:1:159","nodeType":"VariableDeclaration","scope":77591,"src":"8045:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77567,"nodeType":"UserDefinedTypeName","pathNode":{"id":77566,"name":"Storage","nameLocations":["8045:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"8045:7:159"},"referencedDeclaration":75851,"src":"8045:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77571,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77569,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"8065:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8065:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8045:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77572,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8089:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8093:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8089:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77574,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77568,"src":"8103:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8105:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"8103:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8115:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":85900,"src":"8103:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8089:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77582,"nodeType":"IfStatement","src":"8085:101:159","trueBody":{"id":77581,"nodeType":"Block","src":"8135:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77578,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75747,"src":"8156:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8156:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77580,"nodeType":"RevertStatement","src":"8149:26:159"}]}},{"expression":{"id":77589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":77583,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77568,"src":"8195:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8197:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"8195:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8207:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":85900,"src":"8195:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77588,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77563,"src":"8228:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8195:40:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77590,"nodeType":"ExpressionStatement","src":"8195:40:159"}]},"baseFunctions":[75946],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"7988:20:159","parameters":{"id":77564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77563,"mutability":"mutable","name":"newRole","nameLocation":"8017:7:159","nodeType":"VariableDeclaration","scope":77592,"src":"8009:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77562,"name":"address","nodeType":"ElementaryTypeName","src":"8009:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8008:17:159"},"returnParameters":{"id":77565,"nodeType":"ParameterList","parameters":[],"src":"8035:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77623,"nodeType":"FunctionDefinition","src":"8248:259:159","nodes":[],"body":{"id":77622,"nodeType":"Block","src":"8303:204:159","nodes":[],"statements":[{"assignments":[77599],"declarations":[{"constant":false,"id":77599,"mutability":"mutable","name":"$","nameLocation":"8329:1:159","nodeType":"VariableDeclaration","scope":77622,"src":"8313:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77598,"nodeType":"UserDefinedTypeName","pathNode":{"id":77597,"name":"Storage","nameLocations":["8313:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"8313:7:159"},"referencedDeclaration":75851,"src":"8313:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77602,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77600,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"8333:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8333:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8313:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77603,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8357:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8361:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8357:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77605,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77599,"src":"8371:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8373:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"8371:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8383:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":85902,"src":"8371:29:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8357:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77613,"nodeType":"IfStatement","src":"8353:99:159","trueBody":{"id":77612,"nodeType":"Block","src":"8402:50:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77609,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75750,"src":"8423:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8423:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77611,"nodeType":"RevertStatement","src":"8416:25:159"}]}},{"expression":{"id":77620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":77614,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77599,"src":"8461:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8463:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"8461:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8473:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":85902,"src":"8461:29:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77619,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77594,"src":"8493:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8461:39:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77621,"nodeType":"ExpressionStatement","src":"8461:39:159"}]},"baseFunctions":[75951],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8257:19:159","parameters":{"id":77595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77594,"mutability":"mutable","name":"newRole","nameLocation":"8285:7:159","nodeType":"VariableDeclaration","scope":77623,"src":"8277:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77593,"name":"address","nodeType":"ElementaryTypeName","src":"8277:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8276:17:159"},"returnParameters":{"id":77596,"nodeType":"ParameterList","parameters":[],"src":"8303:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77677,"nodeType":"FunctionDefinition","src":"8563:405:159","nodes":[],"body":{"id":77676,"nodeType":"Block","src":"8600:368:159","nodes":[],"statements":[{"assignments":[77628],"declarations":[{"constant":false,"id":77628,"mutability":"mutable","name":"$","nameLocation":"8626:1:159","nodeType":"VariableDeclaration","scope":77676,"src":"8610:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77627,"nodeType":"UserDefinedTypeName","pathNode":{"id":77626,"name":"Storage","nameLocations":["8610:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"8610:7:159"},"referencedDeclaration":75851,"src":"8610:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77631,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77629,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"8630:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8630:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8610:30:159"},{"condition":{"id":77641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8655:61:159","subExpression":{"arguments":[{"expression":{"id":77638,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8705:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8709:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8705:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":77633,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77628,"src":"8666:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8668:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"8666:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8678:16:159","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":85888,"src":"8666:28:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77632,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67862,"src":"8656:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$67862_$","typeString":"type(contract IRegistry)"}},"id":77636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8656:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$67862","typeString":"contract IRegistry"}},"id":77637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8696:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":67847,"src":"8656:48:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":77640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8656:60:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77646,"nodeType":"IfStatement","src":"8651:121:159","trueBody":{"id":77645,"nodeType":"Block","src":"8718:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77642,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75696,"src":"8739:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8739:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77644,"nodeType":"RevertStatement","src":"8732:29:159"}]}},{"condition":{"id":77660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8785:77:159","subExpression":{"arguments":[{"expression":{"id":77653,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8836:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8840:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8836:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77657,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8856:4:159","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$79243","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$79243","typeString":"contract Middleware"}],"id":77656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77655,"name":"address","nodeType":"ElementaryTypeName","src":"8848:7:159","typeDescriptions":{}}},"id":77658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8848:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":77648,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77628,"src":"8800:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8802:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"8800:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8812:12:159","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":85894,"src":"8800:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77647,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68650,"src":"8786:13:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$68650_$","typeString":"type(contract IOptInService)"}},"id":77651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8786:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$68650","typeString":"contract IOptInService"}},"id":77652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8826:9:159","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":68597,"src":"8786:49:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":77659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8786:76:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77665,"nodeType":"IfStatement","src":"8781:137:159","trueBody":{"id":77664,"nodeType":"Block","src":"8864:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77661,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75699,"src":"8885:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8885:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77663,"nodeType":"RevertStatement","src":"8878:29:159"}]}},{"expression":{"arguments":[{"expression":{"id":77671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8947:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8951:6:159","memberName":"sender","nodeType":"MemberAccess","src":"8947:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":77673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8959:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"expression":{"id":77666,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77628,"src":"8928:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8930:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"8928:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8940:6:159","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":86947,"src":"8928:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":77674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8928:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77675,"nodeType":"ExpressionStatement","src":"8928:33:159"}]},"baseFunctions":[75990],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8572:16:159","parameters":{"id":77624,"nodeType":"ParameterList","parameters":[],"src":"8588:2:159"},"returnParameters":{"id":77625,"nodeType":"ParameterList","parameters":[],"src":"8600:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77689,"nodeType":"FunctionDefinition","src":"8974:93:159","nodes":[],"body":{"id":77688,"nodeType":"Block","src":"9010:57:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":77684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9049:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9053:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9049:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77680,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"9020:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9031:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"9020:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9041:7:159","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":87041,"src":"9020:28:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":77686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77687,"nodeType":"ExpressionStatement","src":"9020:40:159"}]},"baseFunctions":[75994],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"8983:15:159","parameters":{"id":77678,"nodeType":"ParameterList","parameters":[],"src":"8998:2:159"},"returnParameters":{"id":77679,"nodeType":"ParameterList","parameters":[],"src":"9010:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77701,"nodeType":"FunctionDefinition","src":"9073:91:159","nodes":[],"body":{"id":77700,"nodeType":"Block","src":"9108:56:159","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":77696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9146:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9150:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9146:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77692,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"9118:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9118:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9129:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"9118:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9139:6:159","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":86994,"src":"9118:27:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":77698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9118:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77699,"nodeType":"ExpressionStatement","src":"9118:39:159"}]},"baseFunctions":[75998],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9082:14:159","parameters":{"id":77690,"nodeType":"ParameterList","parameters":[],"src":"9096:2:159"},"returnParameters":{"id":77691,"nodeType":"ParameterList","parameters":[],"src":"9108:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77746,"nodeType":"FunctionDefinition","src":"9170:362:159","nodes":[],"body":{"id":77745,"nodeType":"Block","src":"9225:307:159","nodes":[],"statements":[{"assignments":[77708],"declarations":[{"constant":false,"id":77708,"mutability":"mutable","name":"$","nameLocation":"9251:1:159","nodeType":"VariableDeclaration","scope":77745,"src":"9235:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77707,"nodeType":"UserDefinedTypeName","pathNode":{"id":77706,"name":"Storage","nameLocations":["9235:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"9235:7:159"},"referencedDeclaration":75851,"src":"9235:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77709,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"9255:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9255:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9235:30:159"},{"assignments":[null,77713],"declarations":[null,{"constant":false,"id":77713,"mutability":"mutable","name":"disabledTime","nameLocation":"9286:12:159","nodeType":"VariableDeclaration","scope":77745,"src":"9279:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77712,"name":"uint48","nodeType":"ElementaryTypeName","src":"9279:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77719,"initialValue":{"arguments":[{"id":77717,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77703,"src":"9323:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":77714,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77708,"src":"9302:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9304:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"9302:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9314:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87100,"src":"9302:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":77718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9302:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9276:56:159"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77720,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77713,"src":"9347:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9363:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9347:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77723,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"9368:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":77724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9373:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"9368:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9368:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77726,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77713,"src":"9387:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":77727,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77708,"src":"9402:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9404:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75820,"src":"9402:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9387:36:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9368:55:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9347:76:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77736,"nodeType":"IfStatement","src":"9343:144:159","trueBody":{"id":77735,"nodeType":"Block","src":"9425:62:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77732,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75684,"src":"9446:28:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9446:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77734,"nodeType":"RevertStatement","src":"9439:37:159"}]}},{"expression":{"arguments":[{"id":77742,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77703,"src":"9516:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":77737,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77708,"src":"9497:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9499:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"9497:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9509:6:159","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":15026,"src":"9497:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":77743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:28:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77744,"nodeType":"ExpressionStatement","src":"9497:28:159"}]},"baseFunctions":[76004],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9179:18:159","parameters":{"id":77704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77703,"mutability":"mutable","name":"operator","nameLocation":"9206:8:159","nodeType":"VariableDeclaration","scope":77746,"src":"9198:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77702,"name":"address","nodeType":"ElementaryTypeName","src":"9198:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9197:18:159"},"returnParameters":{"id":77705,"nodeType":"ParameterList","parameters":[],"src":"9225:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77804,"nodeType":"FunctionDefinition","src":"9538:494:159","nodes":[],"body":{"id":77803,"nodeType":"Block","src":"9645:387:159","nodes":[],"statements":[{"assignments":[77759],"declarations":[{"constant":false,"id":77759,"mutability":"mutable","name":"$","nameLocation":"9671:1:159","nodeType":"VariableDeclaration","scope":77803,"src":"9655:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77758,"nodeType":"UserDefinedTypeName","pathNode":{"id":77757,"name":"Storage","nameLocations":["9655:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"9655:7:159"},"referencedDeclaration":75851,"src":"9655:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77762,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77760,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"9675:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9675:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9655:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77763,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9700:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9704:6:159","memberName":"sender","nodeType":"MemberAccess","src":"9700:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77765,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77759,"src":"9714:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9716:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"9714:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9700:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77772,"nodeType":"IfStatement","src":"9696:71:159","trueBody":{"id":77771,"nodeType":"Block","src":"9724:43:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77768,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75744,"src":"9745:9:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9745:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77770,"nodeType":"RevertStatement","src":"9738:18:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77773,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77748,"src":"9781:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77774,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77759,"src":"9790:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9792:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":75838,"src":"9790:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9781:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77781,"nodeType":"IfStatement","src":"9777:78:159","trueBody":{"id":77780,"nodeType":"Block","src":"9804:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77777,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75681,"src":"9825:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9825:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77779,"nodeType":"RevertStatement","src":"9818:26:159"}]}},{"expression":{"arguments":[{"expression":{"id":77788,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77759,"src":"9936:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9938:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"9936:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77790,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77748,"src":"9946:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77791,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77750,"src":"9953:6:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77792,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77752,"src":"9961:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"expression":{"id":77783,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77759,"src":"9889:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9891:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"9889:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9901:15:159","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":85898,"src":"9889:27:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77782,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73721,"src":"9865:23:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$73721_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":77786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9865:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$73721","typeString":"contract IDefaultOperatorRewards"}},"id":77787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9918:17:159","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":73703,"src":"9865:70:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":77793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9865:101:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77794,"nodeType":"ExpressionStatement","src":"9865:101:159"},{"expression":{"arguments":[{"arguments":[{"id":77798,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77750,"src":"10011:6:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77799,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77752,"src":"10019:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9994:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":77797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9998:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"9994:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":77800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9994:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":77795,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9984:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":77801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9984:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77756,"id":77802,"nodeType":"Return","src":"9977:48:159"}]},"baseFunctions":[76042],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9547:25:159","parameters":{"id":77753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77748,"mutability":"mutable","name":"token","nameLocation":"9581:5:159","nodeType":"VariableDeclaration","scope":77804,"src":"9573:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77747,"name":"address","nodeType":"ElementaryTypeName","src":"9573:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77750,"mutability":"mutable","name":"amount","nameLocation":"9596:6:159","nodeType":"VariableDeclaration","scope":77804,"src":"9588:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77749,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77752,"mutability":"mutable","name":"root","nameLocation":"9612:4:159","nodeType":"VariableDeclaration","scope":77804,"src":"9604:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9604:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9572:45:159"},"returnParameters":{"id":77756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77804,"src":"9636:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9636:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9635:9:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77952,"nodeType":"FunctionDefinition","src":"10038:1224:159","nodes":[],"body":{"id":77951,"nodeType":"Block","src":"10185:1077:159","nodes":[],"statements":[{"assignments":[77816],"declarations":[{"constant":false,"id":77816,"mutability":"mutable","name":"$","nameLocation":"10211:1:159","nodeType":"VariableDeclaration","scope":77951,"src":"10195:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77815,"nodeType":"UserDefinedTypeName","pathNode":{"id":77814,"name":"Storage","nameLocations":["10195:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"10195:7:159"},"referencedDeclaration":75851,"src":"10195:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77819,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77817,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"10215:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10215:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10195:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77820,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10240:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10244:6:159","memberName":"sender","nodeType":"MemberAccess","src":"10240:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77822,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"10254:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10256:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"10254:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10240:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77829,"nodeType":"IfStatement","src":"10236:71:159","trueBody":{"id":77828,"nodeType":"Block","src":"10264:43:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77825,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75744,"src":"10285:9:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10285:11:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77827,"nodeType":"RevertStatement","src":"10278:18:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77830,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"10321:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":77831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10333:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":85723,"src":"10321:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77832,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"10342:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10344:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":75838,"src":"10342:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10321:33:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77839,"nodeType":"IfStatement","src":"10317:90:159","trueBody":{"id":77838,"nodeType":"Block","src":"10356:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77835,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75681,"src":"10377:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10377:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77837,"nodeType":"RevertStatement","src":"10370:26:159"}]}},{"assignments":[77841],"declarations":[{"constant":false,"id":77841,"mutability":"mutable","name":"distributionBytes","nameLocation":"10430:17:159","nodeType":"VariableDeclaration","scope":77951,"src":"10417:30:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":77840,"name":"bytes","nodeType":"ElementaryTypeName","src":"10417:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":77842,"nodeType":"VariableDeclarationStatement","src":"10417:30:159"},{"body":{"id":77934,"nodeType":"Block","src":"10519:615:159","statements":[{"assignments":[77859],"declarations":[{"constant":false,"id":77859,"mutability":"mutable","name":"rewards","nameLocation":"10559:7:159","nodeType":"VariableDeclaration","scope":77934,"src":"10533:33:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":77858,"nodeType":"UserDefinedTypeName","pathNode":{"id":77857,"name":"Gear.StakerRewards","nameLocations":["10533:4:159","10538:13:159"],"nodeType":"IdentifierPath","referencedDeclaration":85730,"src":"10533:18:159"},"referencedDeclaration":85730,"src":"10533:18:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":77864,"initialValue":{"baseExpression":{"expression":{"id":77860,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"10569:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":77861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10581:12:159","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":85719,"src":"10569:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$85730_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":77863,"indexExpression":{"id":77862,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77844,"src":"10594:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10569:27:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10533:63:159"},{"condition":{"id":77871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10615:33:159","subExpression":{"arguments":[{"expression":{"id":77868,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77859,"src":"10634:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":77869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10642:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":85727,"src":"10634:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":77865,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"10616:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10618:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"10616:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10625:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"10616:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":77870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10616:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77876,"nodeType":"IfStatement","src":"10611:99:159","trueBody":{"id":77875,"nodeType":"Block","src":"10650:60:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77872,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75732,"src":"10675:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10675:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77874,"nodeType":"RevertStatement","src":"10668:27:159"}]}},{"assignments":[77878],"declarations":[{"constant":false,"id":77878,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10732:14:159","nodeType":"VariableDeclaration","scope":77934,"src":"10724:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77877,"name":"address","nodeType":"ElementaryTypeName","src":"10724:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77888,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":77884,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77859,"src":"10780:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":77885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10788:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":85727,"src":"10780:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":77881,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"10757:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10759:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"10757:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10766:13:159","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":87121,"src":"10757:22:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":77886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10757:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":77880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10749:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77879,"name":"address","nodeType":"ElementaryTypeName","src":"10749:7:159","typeDescriptions":{}}},"id":77887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10749:46:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10724:71:159"},{"assignments":[77890],"declarations":[{"constant":false,"id":77890,"mutability":"mutable","name":"data","nameLocation":"10823:4:159","nodeType":"VariableDeclaration","scope":77934,"src":"10810:17:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":77889,"name":"bytes","nodeType":"ElementaryTypeName","src":"10810:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":77905,"initialValue":{"arguments":[{"id":77893,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77809,"src":"10841:9:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":77894,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"10852:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10854:11:159","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":75836,"src":"10852:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":77898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10873:2:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":77897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10867:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":77896,"name":"bytes","nodeType":"ElementaryTypeName","src":"10867:5:159","typeDescriptions":{}}},"id":77899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10867:9:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":77902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10884:2:159","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":77901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10878:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":77900,"name":"bytes","nodeType":"ElementaryTypeName","src":"10878:5:159","typeDescriptions":{}}},"id":77903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10878:9:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":77891,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10830:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":77892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10834:6:159","memberName":"encode","nodeType":"MemberAccess","src":"10830:10:159","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":77904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10830:58:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10810:78:159"},{"expression":{"arguments":[{"expression":{"id":77910,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"10958:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10960:6:159","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"10958:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77912,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"10968:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":77913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10980:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":85723,"src":"10968:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77914,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77859,"src":"10987:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":77915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10995:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":85729,"src":"10987:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77916,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77890,"src":"11003:4:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77907,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77878,"src":"10924:14:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77906,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73915,"src":"10902:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$73915_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10902:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$73915","typeString":"contract IDefaultStakerRewards"}},"id":77909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10940:17:159","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":73991,"src":"10902:55:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory) external"}},"id":77917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10902:106:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77918,"nodeType":"ExpressionStatement","src":"10902:106:159"},{"expression":{"id":77932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77919,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77841,"src":"11023:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77923,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77841,"src":"11056:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":77926,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77859,"src":"11092:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":77927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":85727,"src":"11092:13:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77928,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77859,"src":"11107:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$85730_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":77929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11115:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":85729,"src":"11107:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11075:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":77925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11079:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11075:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":77930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11075:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":77921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11043:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":77920,"name":"bytes","nodeType":"ElementaryTypeName","src":"11043:5:159","typeDescriptions":{}}},"id":77922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11049:6:159","memberName":"concat","nodeType":"MemberAccess","src":"11043:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":77931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11043:80:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11023:100:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":77933,"nodeType":"ExpressionStatement","src":"11023:100:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77847,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77844,"src":"10477:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":77848,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"10481:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":77849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10493:12:159","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":85719,"src":"10481:24:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$85730_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":77850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10506:6:159","memberName":"length","nodeType":"MemberAccess","src":"10481:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10477:35:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77935,"initializationExpression":{"assignments":[77844],"declarations":[{"constant":false,"id":77844,"mutability":"mutable","name":"i","nameLocation":"10470:1:159","nodeType":"VariableDeclaration","scope":77935,"src":"10462:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77843,"name":"uint256","nodeType":"ElementaryTypeName","src":"10462:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77846,"initialValue":{"hexValue":"30","id":77845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10474:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10462:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10514:3:159","subExpression":{"id":77852,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77844,"src":"10516:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77854,"nodeType":"ExpressionStatement","src":"10514:3:159"},"nodeType":"ForStatement","src":"10457:677:159"},{"expression":{"arguments":[{"arguments":[{"id":77940,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77841,"src":"11174:17:159","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":77943,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"11210:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":77944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11222:11:159","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":85721,"src":"11210:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":77945,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77807,"src":"11235:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":77946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11247:5:159","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":85723,"src":"11235:17:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11193:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":77942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11197:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"11193:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":77947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11193:60:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":77938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11161:5:159","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":77937,"name":"bytes","nodeType":"ElementaryTypeName","src":"11161:5:159","typeDescriptions":{}}},"id":77939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11167:6:159","memberName":"concat","nodeType":"MemberAccess","src":"11161:12:159","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":77948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11161:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":77936,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11151:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":77949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11151:104:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77813,"id":77950,"nodeType":"Return","src":"11144:111:159"}]},"baseFunctions":[76053],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10047:23:159","parameters":{"id":77810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77807,"mutability":"mutable","name":"_commitment","nameLocation":"10107:11:159","nodeType":"VariableDeclaration","scope":77952,"src":"10071:47:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":77806,"nodeType":"UserDefinedTypeName","pathNode":{"id":77805,"name":"Gear.StakerRewardsCommitment","nameLocations":["10071:4:159","10076:23:159"],"nodeType":"IdentifierPath","referencedDeclaration":85724,"src":"10071:28:159"},"referencedDeclaration":85724,"src":"10071:28:159","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":77809,"mutability":"mutable","name":"timestamp","nameLocation":"10127:9:159","nodeType":"VariableDeclaration","scope":77952,"src":"10120:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77808,"name":"uint48","nodeType":"ElementaryTypeName","src":"10120:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10070:67:159"},"returnParameters":{"id":77813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77952,"src":"10172:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77811,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10172:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10171:9:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77983,"nodeType":"FunctionDefinition","src":"11268:236:159","nodes":[],"body":{"id":77982,"nodeType":"Block","src":"11353:151:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":77963,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77954,"src":"11378:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77962,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79059,"src":"11363:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11363:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77965,"nodeType":"ExpressionStatement","src":"11363:22:159"},{"expression":{"arguments":[{"id":77967,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77954,"src":"11418:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77968,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77956,"src":"11426:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77966,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79106,"src":"11395:22:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":77969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11395:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77970,"nodeType":"ExpressionStatement","src":"11395:40:159"},{"expression":{"arguments":[{"id":77975,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77954,"src":"11471:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77978,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77956,"src":"11487:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11479:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":77976,"name":"uint160","nodeType":"ElementaryTypeName","src":"11479:7:159","typeDescriptions":{}}},"id":77979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11479:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77971,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"11446:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11446:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11457:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"11446:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11464:6:159","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":86947,"src":"11446:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":77980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11446:51:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77981,"nodeType":"ExpressionStatement","src":"11446:51:159"}]},"baseFunctions":[76012],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":77959,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77954,"src":"11345:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":77960,"kind":"modifierInvocation","modifierName":{"id":77958,"name":"vaultOwner","nameLocations":["11334:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":79222,"src":"11334:10:159"},"nodeType":"ModifierInvocation","src":"11334:18:159"}],"name":"registerVault","nameLocation":"11277:13:159","parameters":{"id":77957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77954,"mutability":"mutable","name":"_vault","nameLocation":"11299:6:159","nodeType":"VariableDeclaration","scope":77983,"src":"11291:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77953,"name":"address","nodeType":"ElementaryTypeName","src":"11291:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77956,"mutability":"mutable","name":"_rewards","nameLocation":"11315:8:159","nodeType":"VariableDeclaration","scope":77983,"src":"11307:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77955,"name":"address","nodeType":"ElementaryTypeName","src":"11307:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11290:34:159"},"returnParameters":{"id":77961,"nodeType":"ParameterList","parameters":[],"src":"11353:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77999,"nodeType":"FunctionDefinition","src":"11510:113:159","nodes":[],"body":{"id":77998,"nodeType":"Block","src":"11574:49:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":77995,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77985,"src":"11610:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77991,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"11584:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11595:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"11584:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":77994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11602:7:159","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":87041,"src":"11584:25:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":77996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77997,"nodeType":"ExpressionStatement","src":"11584:32:159"}]},"baseFunctions":[76024],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":77988,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77985,"src":"11567:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":77989,"kind":"modifierInvocation","modifierName":{"id":77987,"name":"vaultOwner","nameLocations":["11556:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":79222,"src":"11556:10:159"},"nodeType":"ModifierInvocation","src":"11556:17:159"}],"name":"disableVault","nameLocation":"11519:12:159","parameters":{"id":77986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77985,"mutability":"mutable","name":"vault","nameLocation":"11540:5:159","nodeType":"VariableDeclaration","scope":77999,"src":"11532:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77984,"name":"address","nodeType":"ElementaryTypeName","src":"11532:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11531:15:159"},"returnParameters":{"id":77990,"nodeType":"ParameterList","parameters":[],"src":"11574:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78015,"nodeType":"FunctionDefinition","src":"11629:111:159","nodes":[],"body":{"id":78014,"nodeType":"Block","src":"11692:48:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":78011,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"11727:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78007,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"11702:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11702:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11713:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"11702:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11720:6:159","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":86994,"src":"11702:24:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":78012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11702:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78013,"nodeType":"ExpressionStatement","src":"11702:31:159"}]},"baseFunctions":[76030],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78004,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"11685:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78005,"kind":"modifierInvocation","modifierName":{"id":78003,"name":"vaultOwner","nameLocations":["11674:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":79222,"src":"11674:10:159"},"nodeType":"ModifierInvocation","src":"11674:17:159"}],"name":"enableVault","nameLocation":"11638:11:159","parameters":{"id":78002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78001,"mutability":"mutable","name":"vault","nameLocation":"11658:5:159","nodeType":"VariableDeclaration","scope":78015,"src":"11650:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78000,"name":"address","nodeType":"ElementaryTypeName","src":"11650:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11649:15:159"},"returnParameters":{"id":78006,"nodeType":"ParameterList","parameters":[],"src":"11692:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78063,"nodeType":"FunctionDefinition","src":"11746:355:159","nodes":[],"body":{"id":78062,"nodeType":"Block","src":"11813:288:159","nodes":[],"statements":[{"assignments":[78025],"declarations":[{"constant":false,"id":78025,"mutability":"mutable","name":"$","nameLocation":"11839:1:159","nodeType":"VariableDeclaration","scope":78062,"src":"11823:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78024,"nodeType":"UserDefinedTypeName","pathNode":{"id":78023,"name":"Storage","nameLocations":["11823:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"11823:7:159"},"referencedDeclaration":75851,"src":"11823:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78028,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78026,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"11843:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11823:30:159"},{"assignments":[null,78030],"declarations":[null,{"constant":false,"id":78030,"mutability":"mutable","name":"disabledTime","nameLocation":"11873:12:159","nodeType":"VariableDeclaration","scope":78062,"src":"11866:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78029,"name":"uint48","nodeType":"ElementaryTypeName","src":"11866:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78036,"initialValue":{"arguments":[{"id":78034,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78017,"src":"11907:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78031,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78025,"src":"11889:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11891:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"11889:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11898:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87100,"src":"11889:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":78035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11889:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11863:50:159"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78037,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78030,"src":"11928:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11944:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11928:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78040,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"11949:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":78041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11954:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"11949:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":78042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11949:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78043,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78030,"src":"11968:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":78044,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78025,"src":"11983:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11985:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75822,"src":"11983:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"11968:33:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"11949:52:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11928:73:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78053,"nodeType":"IfStatement","src":"11924:138:159","trueBody":{"id":78052,"nodeType":"Block","src":"12003:59:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78049,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"12024:25:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12024:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78051,"nodeType":"RevertStatement","src":"12017:34:159"}]}},{"expression":{"arguments":[{"id":78059,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78017,"src":"12088:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78054,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78025,"src":"12072:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12074:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"12072:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12081:6:159","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":15026,"src":"12072:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":78060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12072:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78061,"nodeType":"ExpressionStatement","src":"12072:22:159"}]},"baseFunctions":[76018],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78020,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78017,"src":"11806:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78021,"kind":"modifierInvocation","modifierName":{"id":78019,"name":"vaultOwner","nameLocations":["11795:10:159"],"nodeType":"IdentifierPath","referencedDeclaration":79222,"src":"11795:10:159"},"nodeType":"ModifierInvocation","src":"11795:17:159"}],"name":"unregisterVault","nameLocation":"11755:15:159","parameters":{"id":78018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78017,"mutability":"mutable","name":"vault","nameLocation":"11779:5:159","nodeType":"VariableDeclaration","scope":78063,"src":"11771:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78016,"name":"address","nodeType":"ElementaryTypeName","src":"11771:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11770:15:159"},"returnParameters":{"id":78022,"nodeType":"ParameterList","parameters":[],"src":"11813:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78259,"nodeType":"FunctionDefinition","src":"12107:1642:159","nodes":[],"body":{"id":78258,"nodeType":"Block","src":"12206:1543:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78074,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"12224:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12240:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12224:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78077,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75759,"src":"12243:34:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78073,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12216:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12216:64:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78080,"nodeType":"ExpressionStatement","src":"12216:64:159"},{"assignments":[78085,78088],"declarations":[{"constant":false,"id":78085,"mutability":"mutable","name":"activeOperators","nameLocation":"12309:15:159","nodeType":"VariableDeclaration","scope":78258,"src":"12292:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78083,"name":"address","nodeType":"ElementaryTypeName","src":"12292:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78084,"nodeType":"ArrayTypeName","src":"12292:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":78088,"mutability":"mutable","name":"stakes","nameLocation":"12343:6:159","nodeType":"VariableDeclaration","scope":78258,"src":"12326:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":78086,"name":"uint256","nodeType":"ElementaryTypeName","src":"12326:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78087,"nodeType":"ArrayTypeName","src":"12326:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":78092,"initialValue":{"arguments":[{"id":78090,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78065,"src":"12379:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":78089,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78402,"src":"12353:25:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint48) view returns (address[] memory,uint256[] memory)"}},"id":78091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12353:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12291:91:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78093,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"12397:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12413:6:159","memberName":"length","nodeType":"MemberAccess","src":"12397:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":78095,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"12423:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12397:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78100,"nodeType":"IfStatement","src":"12393:92:159","trueBody":{"id":78099,"nodeType":"Block","src":"12438:47:159","statements":[{"expression":{"id":78097,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"12459:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":78072,"id":78098,"nodeType":"Return","src":"12452:22:159"}]}},{"assignments":[78102],"declarations":[{"constant":false,"id":78102,"mutability":"mutable","name":"n","nameLocation":"12537:1:159","nodeType":"VariableDeclaration","scope":78258,"src":"12529:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78101,"name":"uint256","nodeType":"ElementaryTypeName","src":"12529:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78105,"initialValue":{"expression":{"id":78103,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"12541:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12557:6:159","memberName":"length","nodeType":"MemberAccess","src":"12541:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12529:34:159"},{"body":{"id":78183,"nodeType":"Block","src":"12605:336:159","statements":[{"body":{"id":78181,"nodeType":"Block","src":"12659:272:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":78130,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78088,"src":"12681:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78132,"indexExpression":{"id":78131,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12688:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12681:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":78133,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78088,"src":"12693:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78137,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78134,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12700:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12704:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12700:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12693:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12681:25:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78180,"nodeType":"IfStatement","src":"12677:240:159","trueBody":{"id":78179,"nodeType":"Block","src":"12708:209:159","statements":[{"expression":{"id":78157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":78139,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78088,"src":"12731:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78141,"indexExpression":{"id":78140,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12738:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12731:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":78142,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78088,"src":"12742:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78146,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78143,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12749:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12753:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12749:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12742:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":78147,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12730:26:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":78148,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78088,"src":"12760:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78152,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78149,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12767:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12771:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12767:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12760:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":78153,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78088,"src":"12775:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78155,"indexExpression":{"id":78154,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12782:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12775:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":78156,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12759:26:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12730:55:159","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78158,"nodeType":"ExpressionStatement","src":"12730:55:159"},{"expression":{"id":78177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":78159,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"12808:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78161,"indexExpression":{"id":78160,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12824:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12808:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":78162,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"12828:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78166,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78163,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12844:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12848:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12844:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12828:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78167,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12807:44:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":78168,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"12855:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78172,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78169,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12871:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":78170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12875:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12871:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12855:22:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":78173,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"12879:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78175,"indexExpression":{"id":78174,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12895:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12879:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":78176,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12854:44:159","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12807:91:159","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78178,"nodeType":"ExpressionStatement","src":"12807:91:159"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78120,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12639:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78121,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78102,"src":"12643:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12647:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12643:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78124,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"12651:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12643:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12639:13:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78182,"initializationExpression":{"assignments":[78117],"declarations":[{"constant":false,"id":78117,"mutability":"mutable","name":"j","nameLocation":"12632:1:159","nodeType":"VariableDeclaration","scope":78182,"src":"12624:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78116,"name":"uint256","nodeType":"ElementaryTypeName","src":"12624:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78119,"initialValue":{"hexValue":"30","id":78118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12636:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12624:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:159","subExpression":{"id":78127,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"12654:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78129,"nodeType":"ExpressionStatement","src":"12654:3:159"},"nodeType":"ForStatement","src":"12619:312:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78110,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"12593:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78111,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78102,"src":"12597:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12593:5:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78184,"initializationExpression":{"assignments":[78107],"declarations":[{"constant":false,"id":78107,"mutability":"mutable","name":"i","nameLocation":"12586:1:159","nodeType":"VariableDeclaration","scope":78184,"src":"12578:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78106,"name":"uint256","nodeType":"ElementaryTypeName","src":"12578:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78109,"initialValue":{"hexValue":"30","id":78108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12590:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12578:13:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12600:3:159","subExpression":{"id":78113,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"12600:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78115,"nodeType":"ExpressionStatement","src":"12600:3:159"},"nodeType":"ForStatement","src":"12573:368:159"},{"assignments":[78186],"declarations":[{"constant":false,"id":78186,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13016:14:159","nodeType":"VariableDeclaration","scope":78258,"src":"13008:22:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78185,"name":"uint256","nodeType":"ElementaryTypeName","src":"13008:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78188,"initialValue":{"hexValue":"31","id":78187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13033:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13008:26:159"},{"assignments":[78190],"declarations":[{"constant":false,"id":78190,"mutability":"mutable","name":"lastStake","nameLocation":"13052:9:159","nodeType":"VariableDeclaration","scope":78258,"src":"13044:17:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78189,"name":"uint256","nodeType":"ElementaryTypeName","src":"13044:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78196,"initialValue":{"baseExpression":{"id":78191,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78088,"src":"13064:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78195,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78192,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"13071:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13087:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13071:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13064:25:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13044:45:159"},{"body":{"id":78220,"nodeType":"Block","src":"13164:123:159","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":78208,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78088,"src":"13182:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78210,"indexExpression":{"id":78209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78198,"src":"13189:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13182:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":78211,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78190,"src":"13195:9:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13182:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78215,"nodeType":"IfStatement","src":"13178:66:159","trueBody":{"id":78214,"nodeType":"Block","src":"13206:38:159","statements":[{"id":78213,"nodeType":"Break","src":"13224:5:159"}]}},{"expression":{"id":78218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78216,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78186,"src":"13257:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":78217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13275:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13257:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78219,"nodeType":"ExpressionStatement","src":"13257:19:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78201,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78198,"src":"13131:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78202,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"13135:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13151:6:159","memberName":"length","nodeType":"MemberAccess","src":"13135:22:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13131:26:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78221,"initializationExpression":{"assignments":[78198],"declarations":[{"constant":false,"id":78198,"mutability":"mutable","name":"i","nameLocation":"13112:1:159","nodeType":"VariableDeclaration","scope":78221,"src":"13104:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78197,"name":"uint256","nodeType":"ElementaryTypeName","src":"13104:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78200,"initialValue":{"id":78199,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"13116:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13104:25:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13159:3:159","subExpression":{"id":78205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78198,"src":"13159:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78207,"nodeType":"ExpressionStatement","src":"13159:3:159"},"nodeType":"ForStatement","src":"13099:188:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78222,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78186,"src":"13301:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":78223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13318:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13301:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78254,"nodeType":"IfStatement","src":"13297:316:159","trueBody":{"id":78253,"nodeType":"Block","src":"13321:292:159","statements":[{"assignments":[78226],"declarations":[{"constant":false,"id":78226,"mutability":"mutable","name":"randomIndex","nameLocation":"13432:11:159","nodeType":"VariableDeclaration","scope":78253,"src":"13424:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78225,"name":"uint256","nodeType":"ElementaryTypeName","src":"13424:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78238,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":78232,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78065,"src":"13481:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":78230,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13464:3:159","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13468:12:159","memberName":"encodePacked","nodeType":"MemberAccess","src":"13464:16:159","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13464:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":78229,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13454:9:159","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":78234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13454:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13446:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":78227,"name":"uint256","nodeType":"ElementaryTypeName","src":"13446:7:159","typeDescriptions":{}}},"id":78235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13446:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":78236,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78186,"src":"13489:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13446:57:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13424:79:159"},{"expression":{"id":78251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78239,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"13517:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78243,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78240,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"13533:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13549:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13533:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13517:34:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":78244,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"13554:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78250,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78245,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"13570:13:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":78246,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78226,"src":"13586:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13570:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13600:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13570:31:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13554:48:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13517:85:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78252,"nodeType":"ExpressionStatement","src":"13517:85:159"}]}},{"AST":{"nativeSrc":"13648:62:159","nodeType":"YulBlock","src":"13648:62:159","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13669:15:159","nodeType":"YulIdentifier","src":"13669:15:159"},{"name":"maxValidators","nativeSrc":"13686:13:159","nodeType":"YulIdentifier","src":"13686:13:159"}],"functionName":{"name":"mstore","nativeSrc":"13662:6:159","nodeType":"YulIdentifier","src":"13662:6:159"},"nativeSrc":"13662:38:159","nodeType":"YulFunctionCall","src":"13662:38:159"},"nativeSrc":"13662:38:159","nodeType":"YulExpressionStatement","src":"13662:38:159"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78085,"isOffset":false,"isSlot":false,"src":"13669:15:159","valueSize":1},{"declaration":78067,"isOffset":false,"isSlot":false,"src":"13686:13:159","valueSize":1}],"flags":["memory-safe"],"id":78255,"nodeType":"InlineAssembly","src":"13623:87:159"},{"expression":{"id":78256,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"13727:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":78072,"id":78257,"nodeType":"Return","src":"13720:22:159"}]},"baseFunctions":[75962],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12116:14:159","parameters":{"id":78068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78065,"mutability":"mutable","name":"ts","nameLocation":"12138:2:159","nodeType":"VariableDeclaration","scope":78259,"src":"12131:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78064,"name":"uint48","nodeType":"ElementaryTypeName","src":"12131:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78067,"mutability":"mutable","name":"maxValidators","nameLocation":"12150:13:159","nodeType":"VariableDeclaration","scope":78259,"src":"12142:21:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78066,"name":"uint256","nodeType":"ElementaryTypeName","src":"12142:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12130:34:159"},"returnParameters":{"id":78072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78259,"src":"12188:16:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78069,"name":"address","nodeType":"ElementaryTypeName","src":"12188:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78070,"nodeType":"ArrayTypeName","src":"12188:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12187:18:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78300,"nodeType":"FunctionDefinition","src":"13755:372:159","nodes":[],"body":{"id":78299,"nodeType":"Block","src":"13869:258:159","nodes":[],"statements":[{"assignments":[78272,78274],"declarations":[{"constant":false,"id":78272,"mutability":"mutable","name":"enabledTime","nameLocation":"13887:11:159","nodeType":"VariableDeclaration","scope":78299,"src":"13880:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78271,"name":"uint48","nodeType":"ElementaryTypeName","src":"13880:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78274,"mutability":"mutable","name":"disabledTime","nameLocation":"13907:12:159","nodeType":"VariableDeclaration","scope":78299,"src":"13900:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78273,"name":"uint48","nodeType":"ElementaryTypeName","src":"13900:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78281,"initialValue":{"arguments":[{"id":78279,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78261,"src":"13953:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78275,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"13923:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13923:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13934:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"13923:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13944:8:159","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":87100,"src":"13923:29:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":78280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13923:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13879:83:159"},{"condition":{"id":78287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13976:44:159","subExpression":{"arguments":[{"id":78283,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78272,"src":"13990:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":78284,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78274,"src":"14003:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":78285,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78263,"src":"14017:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":78282,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"13977:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":78286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78291,"nodeType":"IfStatement","src":"13972:83:159","trueBody":{"id":78290,"nodeType":"Block","src":"14022:33:159","statements":[{"expression":{"hexValue":"30","id":78288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14043:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":78270,"id":78289,"nodeType":"Return","src":"14036:8:159"}]}},{"expression":{"id":78297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78292,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78269,"src":"14065:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78294,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78261,"src":"14107:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78295,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78263,"src":"14117:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":78293,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78658,"src":"14073:33:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":78296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14073:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14065:55:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78298,"nodeType":"ExpressionStatement","src":"14065:55:159"}]},"baseFunctions":[75972],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78266,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78263,"src":"13841:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":78267,"kind":"modifierInvocation","modifierName":{"id":78265,"name":"validTimestamp","nameLocations":["13826:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":79116,"src":"13826:14:159"},"nodeType":"ModifierInvocation","src":"13826:18:159"}],"name":"getOperatorStakeAt","nameLocation":"13764:18:159","parameters":{"id":78264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78261,"mutability":"mutable","name":"operator","nameLocation":"13791:8:159","nodeType":"VariableDeclaration","scope":78300,"src":"13783:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78260,"name":"address","nodeType":"ElementaryTypeName","src":"13783:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78263,"mutability":"mutable","name":"ts","nameLocation":"13808:2:159","nodeType":"VariableDeclaration","scope":78300,"src":"13801:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78262,"name":"uint48","nodeType":"ElementaryTypeName","src":"13801:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13782:29:159"},"returnParameters":{"id":78270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78269,"mutability":"mutable","name":"stake","nameLocation":"13862:5:159","nodeType":"VariableDeclaration","scope":78300,"src":"13854:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78268,"name":"uint256","nodeType":"ElementaryTypeName","src":"13854:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13853:15:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78402,"nodeType":"FunctionDefinition","src":"14170:940:159","nodes":[],"body":{"id":78401,"nodeType":"Block","src":"14351:759:159","nodes":[],"statements":[{"assignments":[78316],"declarations":[{"constant":false,"id":78316,"mutability":"mutable","name":"$","nameLocation":"14377:1:159","nodeType":"VariableDeclaration","scope":78401,"src":"14361:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78315,"nodeType":"UserDefinedTypeName","pathNode":{"id":78314,"name":"Storage","nameLocations":["14361:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"14361:7:159"},"referencedDeclaration":75851,"src":"14361:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78319,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78317,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"14381:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14381:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14361:30:159"},{"expression":{"id":78329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78320,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78309,"src":"14401:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":78324,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"14433:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14435:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"14433:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14445:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14433:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":78327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14433:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14419:13:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":78321,"name":"address","nodeType":"ElementaryTypeName","src":"14423:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78322,"nodeType":"ArrayTypeName","src":"14423:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":78328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14419:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14401:53:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78330,"nodeType":"ExpressionStatement","src":"14401:53:159"},{"expression":{"id":78340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78331,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78312,"src":"14464:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":78335,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"14487:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"14487:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14499:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14487:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":78338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14487:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14473:13:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":78332,"name":"uint256","nodeType":"ElementaryTypeName","src":"14477:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78333,"nodeType":"ArrayTypeName","src":"14477:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":78339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14464:44:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78341,"nodeType":"ExpressionStatement","src":"14464:44:159"},{"assignments":[78343],"declarations":[{"constant":false,"id":78343,"mutability":"mutable","name":"operatorIdx","nameLocation":"14527:11:159","nodeType":"VariableDeclaration","scope":78401,"src":"14519:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78342,"name":"uint256","nodeType":"ElementaryTypeName","src":"14519:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78345,"initialValue":{"hexValue":"30","id":78344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14541:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14519:23:159"},{"body":{"id":78398,"nodeType":"Block","src":"14600:369:159","statements":[{"assignments":[78359,78361,78363],"declarations":[{"constant":false,"id":78359,"mutability":"mutable","name":"operator","nameLocation":"14623:8:159","nodeType":"VariableDeclaration","scope":78398,"src":"14615:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78358,"name":"address","nodeType":"ElementaryTypeName","src":"14615:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78361,"mutability":"mutable","name":"enabled","nameLocation":"14640:7:159","nodeType":"VariableDeclaration","scope":78398,"src":"14633:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78360,"name":"uint48","nodeType":"ElementaryTypeName","src":"14633:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78363,"mutability":"mutable","name":"disabled","nameLocation":"14656:8:159","nodeType":"VariableDeclaration","scope":78398,"src":"14649:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78362,"name":"uint48","nodeType":"ElementaryTypeName","src":"14649:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78369,"initialValue":{"arguments":[{"id":78367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78347,"src":"14692:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78364,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"14668:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14670:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"14668:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14680:11:159","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":87076,"src":"14668:23:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":78368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14668:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14614:80:159"},{"condition":{"id":78375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14713:36:159","subExpression":{"arguments":[{"id":78371,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78361,"src":"14727:7:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":78372,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78363,"src":"14736:8:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":78373,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78302,"src":"14746:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":78370,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"14714:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":78374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14714:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78378,"nodeType":"IfStatement","src":"14709:83:159","trueBody":{"id":78377,"nodeType":"Block","src":"14751:41:159","statements":[{"id":78376,"nodeType":"Continue","src":"14769:8:159"}]}},{"expression":{"id":78383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78379,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78309,"src":"14806:15:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78381,"indexExpression":{"id":78380,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78343,"src":"14822:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14806:28:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78382,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78359,"src":"14837:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14806:39:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78384,"nodeType":"ExpressionStatement","src":"14806:39:159"},{"expression":{"id":78392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78385,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78312,"src":"14859:6:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":78387,"indexExpression":{"id":78386,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78343,"src":"14866:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14859:19:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78389,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78359,"src":"14915:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78390,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78302,"src":"14925:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":78388,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78658,"src":"14881:33:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":78391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14881:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14859:69:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78393,"nodeType":"ExpressionStatement","src":"14859:69:159"},{"expression":{"id":78396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78394,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78343,"src":"14942:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":78395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14957:1:159","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14942:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78397,"nodeType":"ExpressionStatement","src":"14942:16:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78349,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78347,"src":"14569:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":78350,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78316,"src":"14573:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14575:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"14573:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14585:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"14573:18:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":78353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14573:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14569:24:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78399,"initializationExpression":{"assignments":[78347],"declarations":[{"constant":false,"id":78347,"mutability":"mutable","name":"i","nameLocation":"14566:1:159","nodeType":"VariableDeclaration","scope":78399,"src":"14558:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78346,"name":"uint256","nodeType":"ElementaryTypeName","src":"14558:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78348,"nodeType":"VariableDeclarationStatement","src":"14558:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14595:3:159","subExpression":{"id":78355,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78347,"src":"14597:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78357,"nodeType":"ExpressionStatement","src":"14595:3:159"},"nodeType":"ForStatement","src":"14553:416:159"},{"AST":{"nativeSrc":"15004:100:159","nodeType":"YulBlock","src":"15004:100:159","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15025:15:159","nodeType":"YulIdentifier","src":"15025:15:159"},{"name":"operatorIdx","nativeSrc":"15042:11:159","nodeType":"YulIdentifier","src":"15042:11:159"}],"functionName":{"name":"mstore","nativeSrc":"15018:6:159","nodeType":"YulIdentifier","src":"15018:6:159"},"nativeSrc":"15018:36:159","nodeType":"YulFunctionCall","src":"15018:36:159"},"nativeSrc":"15018:36:159","nodeType":"YulExpressionStatement","src":"15018:36:159"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15074:6:159","nodeType":"YulIdentifier","src":"15074:6:159"},{"name":"operatorIdx","nativeSrc":"15082:11:159","nodeType":"YulIdentifier","src":"15082:11:159"}],"functionName":{"name":"mstore","nativeSrc":"15067:6:159","nodeType":"YulIdentifier","src":"15067:6:159"},"nativeSrc":"15067:27:159","nodeType":"YulFunctionCall","src":"15067:27:159"},"nativeSrc":"15067:27:159","nodeType":"YulExpressionStatement","src":"15067:27:159"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78309,"isOffset":false,"isSlot":false,"src":"15025:15:159","valueSize":1},{"declaration":78343,"isOffset":false,"isSlot":false,"src":"15042:11:159","valueSize":1},{"declaration":78343,"isOffset":false,"isSlot":false,"src":"15082:11:159","valueSize":1},{"declaration":78312,"isOffset":false,"isSlot":false,"src":"15074:6:159","valueSize":1}],"flags":["memory-safe"],"id":78400,"nodeType":"InlineAssembly","src":"14979:125:159"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":78305,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78302,"src":"14267:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":78306,"kind":"modifierInvocation","modifierName":{"id":78304,"name":"validTimestamp","nameLocations":["14252:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":79116,"src":"14252:14:159"},"nodeType":"ModifierInvocation","src":"14252:18:159"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14179:25:159","parameters":{"id":78303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78302,"mutability":"mutable","name":"ts","nameLocation":"14212:2:159","nodeType":"VariableDeclaration","scope":78402,"src":"14205:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78301,"name":"uint48","nodeType":"ElementaryTypeName","src":"14205:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14204:11:159"},"returnParameters":{"id":78313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78309,"mutability":"mutable","name":"activeOperators","nameLocation":"14305:15:159","nodeType":"VariableDeclaration","scope":78402,"src":"14288:32:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78307,"name":"address","nodeType":"ElementaryTypeName","src":"14288:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78308,"nodeType":"ArrayTypeName","src":"14288:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":78312,"mutability":"mutable","name":"stakes","nameLocation":"14339:6:159","nodeType":"VariableDeclaration","scope":78402,"src":"14322:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":78310,"name":"uint256","nodeType":"ElementaryTypeName","src":"14322:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78311,"nodeType":"ArrayTypeName","src":"14322:9:159","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14287:59:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78518,"nodeType":"FunctionDefinition","src":"15116:952:159","nodes":[],"body":{"id":78517,"nodeType":"Block","src":"15174:894:159","nodes":[],"statements":[{"assignments":[78411],"declarations":[{"constant":false,"id":78411,"mutability":"mutable","name":"$","nameLocation":"15200:1:159","nodeType":"VariableDeclaration","scope":78517,"src":"15184:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78410,"nodeType":"UserDefinedTypeName","pathNode":{"id":78409,"name":"Storage","nameLocations":["15184:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"15184:7:159"},"referencedDeclaration":75851,"src":"15184:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78414,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78412,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"15204:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15204:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15184:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78415,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15229:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15233:6:159","memberName":"sender","nodeType":"MemberAccess","src":"15229:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":78417,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78411,"src":"15243:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15245:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"15243:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15255:18:159","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":85900,"src":"15243:30:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15229:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78425,"nodeType":"IfStatement","src":"15225:101:159","trueBody":{"id":78424,"nodeType":"Block","src":"15275:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78421,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75747,"src":"15296:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15296:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78423,"nodeType":"RevertStatement","src":"15289:26:159"}]}},{"body":{"id":78515,"nodeType":"Block","src":"15374:688:159","statements":[{"assignments":[78438],"declarations":[{"constant":false,"id":78438,"mutability":"mutable","name":"slashData","nameLocation":"15407:9:159","nodeType":"VariableDeclaration","scope":78515,"src":"15388:28:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":78437,"nodeType":"UserDefinedTypeName","pathNode":{"id":78436,"name":"SlashData","nameLocations":["15388:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":75865,"src":"15388:9:159"},"referencedDeclaration":75865,"src":"15388:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":78442,"initialValue":{"baseExpression":{"id":78439,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78406,"src":"15419:4:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$75865_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":78441,"indexExpression":{"id":78440,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78427,"src":"15424:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15419:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15388:38:159"},{"condition":{"id":78449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15444:41:159","subExpression":{"arguments":[{"expression":{"id":78446,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78438,"src":"15466:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":78447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15476:8:159","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":75858,"src":"15466:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78443,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78411,"src":"15445:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15447:9:159","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":75847,"src":"15445:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15457:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"15445:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":78448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15445:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78454,"nodeType":"IfStatement","src":"15440:110:159","trueBody":{"id":78453,"nodeType":"Block","src":"15487:63:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78450,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75735,"src":"15512:21:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15512:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78452,"nodeType":"RevertStatement","src":"15505:30:159"}]}},{"body":{"id":78513,"nodeType":"Block","src":"15614:438:159","statements":[{"assignments":[78468],"declarations":[{"constant":false,"id":78468,"mutability":"mutable","name":"vaultData","nameLocation":"15656:9:159","nodeType":"VariableDeclaration","scope":78513,"src":"15632:33:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$75856_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":78467,"nodeType":"UserDefinedTypeName","pathNode":{"id":78466,"name":"VaultSlashData","nameLocations":["15632:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":75856,"src":"15632:14:159"},"referencedDeclaration":75856,"src":"15632:14:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$75856_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":78473,"initialValue":{"baseExpression":{"expression":{"id":78469,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78438,"src":"15668:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":78470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15678:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75864,"src":"15668:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$75856_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":78472,"indexExpression":{"id":78471,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78456,"src":"15685:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15668:19:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$75856_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15632:55:159"},{"condition":{"id":78480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15710:35:159","subExpression":{"arguments":[{"expression":{"id":78477,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78468,"src":"15729:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$75856_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":78478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15739:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":75853,"src":"15729:15:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":78474,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78411,"src":"15711:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15713:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"15711:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15720:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"15711:17:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":78479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15711:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78485,"nodeType":"IfStatement","src":"15706:109:159","trueBody":{"id":78484,"nodeType":"Block","src":"15747:68:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78481,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75732,"src":"15776:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15776:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78483,"nodeType":"RevertStatement","src":"15769:27:159"}]}},{"assignments":[78487],"declarations":[{"constant":false,"id":78487,"mutability":"mutable","name":"slasher","nameLocation":"15841:7:159","nodeType":"VariableDeclaration","scope":78513,"src":"15833:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78486,"name":"address","nodeType":"ElementaryTypeName","src":"15833:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78494,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":78489,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78468,"src":"15858:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$75856_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":78490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15868:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":75853,"src":"15858:15:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78488,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"15851:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15851:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15875:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":69458,"src":"15851:31:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15851:33:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15833:51:159"},{"expression":{"arguments":[{"expression":{"id":78499,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78411,"src":"15958:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15960:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":75834,"src":"15958:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78501,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78438,"src":"15972:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":78502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15982:8:159","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":75858,"src":"15972:18:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78503,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78468,"src":"15992:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$75856_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":78504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16002:6:159","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":75855,"src":"15992:16:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":78505,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78438,"src":"16010:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":78506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16020:2:159","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":75860,"src":"16010:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":78509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16034:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":78508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16024:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":78507,"name":"bytes","nodeType":"ElementaryTypeName","src":"16028:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":78510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16024:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":78496,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78487,"src":"15915:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78495,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69048,"src":"15902:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69048_$","typeString":"type(contract IVetoSlasher)"}},"id":78497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15902:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69048","typeString":"contract IVetoSlasher"}},"id":78498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15945:12:159","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":69019,"src":"15902:55:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256,uint48,bytes memory) external returns (uint256)"}},"id":78511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15902:135:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78512,"nodeType":"ExpressionStatement","src":"15902:135:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78458,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78456,"src":"15580:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":78459,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78438,"src":"15584:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":78460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15594:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75864,"src":"15584:16:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$75856_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":78461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15601:6:159","memberName":"length","nodeType":"MemberAccess","src":"15584:23:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15580:27:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78514,"initializationExpression":{"assignments":[78456],"declarations":[{"constant":false,"id":78456,"mutability":"mutable","name":"j","nameLocation":"15577:1:159","nodeType":"VariableDeclaration","scope":78514,"src":"15569:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78455,"name":"uint256","nodeType":"ElementaryTypeName","src":"15569:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78457,"nodeType":"VariableDeclarationStatement","src":"15569:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15609:3:159","subExpression":{"id":78463,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78456,"src":"15611:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78465,"nodeType":"ExpressionStatement","src":"15609:3:159"},"nodeType":"ForStatement","src":"15564:488:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78429,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78427,"src":"15352:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78430,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78406,"src":"15356:4:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$75865_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":78431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15361:6:159","memberName":"length","nodeType":"MemberAccess","src":"15356:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15352:15:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78516,"initializationExpression":{"assignments":[78427],"declarations":[{"constant":false,"id":78427,"mutability":"mutable","name":"i","nameLocation":"15349:1:159","nodeType":"VariableDeclaration","scope":78516,"src":"15341:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78426,"name":"uint256","nodeType":"ElementaryTypeName","src":"15341:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78428,"nodeType":"VariableDeclarationStatement","src":"15341:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15369:3:159","subExpression":{"id":78433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78427,"src":"15371:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78435,"nodeType":"ExpressionStatement","src":"15369:3:159"},"nodeType":"ForStatement","src":"15336:726:159"}]},"baseFunctions":[75979],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15125:12:159","parameters":{"id":78407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78406,"mutability":"mutable","name":"data","nameLocation":"15159:4:159","nodeType":"VariableDeclaration","scope":78518,"src":"15138:25:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$75865_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":78404,"nodeType":"UserDefinedTypeName","pathNode":{"id":78403,"name":"SlashData","nameLocations":["15138:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":75865,"src":"15138:9:159"},"referencedDeclaration":75865,"src":"15138:9:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":78405,"nodeType":"ArrayTypeName","src":"15138:11:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$75865_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15137:27:159"},"returnParameters":{"id":78408,"nodeType":"ParameterList","parameters":[],"src":"15174:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78587,"nodeType":"FunctionDefinition","src":"16074:528:159","nodes":[],"body":{"id":78586,"nodeType":"Block","src":"16141:461:159","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78525,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16155:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16159:6:159","memberName":"sender","nodeType":"MemberAccess","src":"16155:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78527,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"16169:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16169:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16180:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"16169:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16190:17:159","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":85902,"src":"16169:38:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16155:52:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78536,"nodeType":"IfStatement","src":"16151:108:159","trueBody":{"id":78535,"nodeType":"Block","src":"16209:50:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78532,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75750,"src":"16230:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16230:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78534,"nodeType":"RevertStatement","src":"16223:25:159"}]}},{"body":{"id":78584,"nodeType":"Block","src":"16310:286:159","statements":[{"assignments":[78549],"declarations":[{"constant":false,"id":78549,"mutability":"mutable","name":"slash","nameLocation":"16349:5:159","nodeType":"VariableDeclaration","scope":78584,"src":"16324:30:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$75870_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":78548,"nodeType":"UserDefinedTypeName","pathNode":{"id":78547,"name":"SlashIdentifier","nameLocations":["16324:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":75870,"src":"16324:15:159"},"referencedDeclaration":75870,"src":"16324:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$75870_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":78553,"initialValue":{"baseExpression":{"id":78550,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78522,"src":"16357:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$75870_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":78552,"indexExpression":{"id":78551,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78538,"src":"16365:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16357:10:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$75870_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16324:43:159"},{"condition":{"id":78561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16386:40:159","subExpression":{"arguments":[{"expression":{"id":78558,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78549,"src":"16414:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$75870_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":78559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16420:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":75867,"src":"16414:11:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78554,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"16387:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16398:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"16387:17:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16405:8:159","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":15066,"src":"16387:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":78560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78566,"nodeType":"IfStatement","src":"16382:106:159","trueBody":{"id":78565,"nodeType":"Block","src":"16428:60:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78562,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75732,"src":"16453:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78564,"nodeType":"RevertStatement","src":"16446:27:159"}]}},{"expression":{"arguments":[{"expression":{"id":78576,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78549,"src":"16559:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$75870_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":78577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16565:5:159","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":75869,"src":"16559:11:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":78580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16582:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":78579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16572:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":78578,"name":"bytes","nodeType":"ElementaryTypeName","src":"16576:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":78581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16572:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":78569,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78549,"src":"16522:5:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$75870_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":78570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16528:5:159","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":75867,"src":"16522:11:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78568,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"16515:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16515:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16535:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":69458,"src":"16515:27:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16515:29:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78567,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69048,"src":"16502:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69048_$","typeString":"type(contract IVetoSlasher)"}},"id":78574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16502:43:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69048","typeString":"contract IVetoSlasher"}},"id":78575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16546:12:159","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":69029,"src":"16502:56:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":78582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16502:83:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78583,"nodeType":"ExpressionStatement","src":"16502:83:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78540,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78538,"src":"16285:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78541,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78522,"src":"16289:7:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$75870_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":78542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16297:6:159","memberName":"length","nodeType":"MemberAccess","src":"16289:14:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16285:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78585,"initializationExpression":{"assignments":[78538],"declarations":[{"constant":false,"id":78538,"mutability":"mutable","name":"i","nameLocation":"16282:1:159","nodeType":"VariableDeclaration","scope":78585,"src":"16274:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78537,"name":"uint256","nodeType":"ElementaryTypeName","src":"16274:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78539,"nodeType":"VariableDeclarationStatement","src":"16274:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16305:3:159","subExpression":{"id":78544,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78538,"src":"16307:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78546,"nodeType":"ExpressionStatement","src":"16305:3:159"},"nodeType":"ForStatement","src":"16269:327:159"}]},"baseFunctions":[75986],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16083:12:159","parameters":{"id":78523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78522,"mutability":"mutable","name":"slashes","nameLocation":"16123:7:159","nodeType":"VariableDeclaration","scope":78587,"src":"16096:34:159","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$75870_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":78520,"nodeType":"UserDefinedTypeName","pathNode":{"id":78519,"name":"SlashIdentifier","nameLocations":["16096:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":75870,"src":"16096:15:159"},"referencedDeclaration":75870,"src":"16096:15:159","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$75870_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":78521,"nodeType":"ArrayTypeName","src":"16096:17:159","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$75870_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16095:36:159"},"returnParameters":{"id":78524,"nodeType":"ParameterList","parameters":[],"src":"16141:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78658,"nodeType":"FunctionDefinition","src":"16608:556:159","nodes":[],"body":{"id":78657,"nodeType":"Block","src":"16717:447:159","nodes":[],"statements":[{"assignments":[78598],"declarations":[{"constant":false,"id":78598,"mutability":"mutable","name":"$","nameLocation":"16743:1:159","nodeType":"VariableDeclaration","scope":78657,"src":"16727:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78597,"nodeType":"UserDefinedTypeName","pathNode":{"id":78596,"name":"Storage","nameLocations":["16727:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"16727:7:159"},"referencedDeclaration":75851,"src":"16727:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78599,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"16747:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16747:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16727:30:159"},{"body":{"id":78655,"nodeType":"Block","src":"16811:347:159","statements":[{"assignments":[78615,78617,78619],"declarations":[{"constant":false,"id":78615,"mutability":"mutable","name":"vault","nameLocation":"16834:5:159","nodeType":"VariableDeclaration","scope":78655,"src":"16826:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78614,"name":"address","nodeType":"ElementaryTypeName","src":"16826:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78617,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16848:16:159","nodeType":"VariableDeclaration","scope":78655,"src":"16841:23:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78616,"name":"uint48","nodeType":"ElementaryTypeName","src":"16841:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78619,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16873:17:159","nodeType":"VariableDeclaration","scope":78655,"src":"16866:24:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78618,"name":"uint48","nodeType":"ElementaryTypeName","src":"16866:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78625,"initialValue":{"arguments":[{"id":78623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78603,"src":"16915:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":78620,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78598,"src":"16894:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16896:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"16894:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16903:11:159","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":87076,"src":"16894:20:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":78624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16894:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16825:92:159"},{"condition":{"id":78631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16936:54:159","subExpression":{"arguments":[{"id":78627,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78617,"src":"16950:16:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":78628,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78619,"src":"16968:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":78629,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78591,"src":"16987:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":78626,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"16937:12:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":78630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16937:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78634,"nodeType":"IfStatement","src":"16932:101:159","trueBody":{"id":78633,"nodeType":"Block","src":"16992:41:159","statements":[{"id":78632,"nodeType":"Continue","src":"17010:8:159"}]}},{"expression":{"id":78653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78635,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78594,"src":"17047:5:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":78644,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78598,"src":"17106:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17108:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":75834,"src":"17106:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":78646,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78589,"src":"17120:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78647,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78591,"src":"17130:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":78650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17144:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":78649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17134:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":78648,"name":"bytes","nodeType":"ElementaryTypeName","src":"17138:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":78651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78638,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78615,"src":"17078:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78637,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"17071:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17071:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17085:9:159","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":69446,"src":"17071:23:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17071:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78636,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68036,"src":"17056:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68036_$","typeString":"type(contract IBaseDelegator)"}},"id":78642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17056:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"}},"id":78643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17098:7:159","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":67997,"src":"17056:49:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint48,bytes memory) view external returns (uint256)"}},"id":78652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17056:91:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17047:100:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78654,"nodeType":"ExpressionStatement","src":"17047:100:159"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78603,"src":"16783:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":78606,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78598,"src":"16787:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16789:6:159","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":75850,"src":"16787:8:159","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$14966_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":78608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16796:6:159","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":15081,"src":"16787:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$14966_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$14966_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":78609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16787:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16783:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78656,"initializationExpression":{"assignments":[78603],"declarations":[{"constant":false,"id":78603,"mutability":"mutable","name":"i","nameLocation":"16780:1:159","nodeType":"VariableDeclaration","scope":78656,"src":"16772:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78602,"name":"uint256","nodeType":"ElementaryTypeName","src":"16772:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78604,"nodeType":"VariableDeclarationStatement","src":"16772:9:159"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16806:3:159","subExpression":{"id":78611,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78603,"src":"16808:1:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78613,"nodeType":"ExpressionStatement","src":"16806:3:159"},"nodeType":"ForStatement","src":"16767:391:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16617:33:159","parameters":{"id":78592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78589,"mutability":"mutable","name":"operator","nameLocation":"16659:8:159","nodeType":"VariableDeclaration","scope":78658,"src":"16651:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78588,"name":"address","nodeType":"ElementaryTypeName","src":"16651:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78591,"mutability":"mutable","name":"ts","nameLocation":"16676:2:159","nodeType":"VariableDeclaration","scope":78658,"src":"16669:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78590,"name":"uint48","nodeType":"ElementaryTypeName","src":"16669:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16650:29:159"},"returnParameters":{"id":78595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78594,"mutability":"mutable","name":"stake","nameLocation":"16710:5:159","nodeType":"VariableDeclaration","scope":78658,"src":"16702:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78593,"name":"uint256","nodeType":"ElementaryTypeName","src":"16702:7:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16701:15:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78687,"nodeType":"FunctionDefinition","src":"17170:208:159","nodes":[],"body":{"id":78686,"nodeType":"Block","src":"17272:106:159","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78669,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78660,"src":"17289:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17304:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17289:16:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78672,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78660,"src":"17309:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":78673,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78664,"src":"17324:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17309:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17289:37:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78676,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78662,"src":"17331:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17347:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17331:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78679,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78662,"src":"17352:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":78680,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78664,"src":"17368:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17352:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17331:39:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78683,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17330:41:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17289:82:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78668,"id":78685,"nodeType":"Return","src":"17282:89:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17179:12:159","parameters":{"id":78665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78660,"mutability":"mutable","name":"enabledTime","nameLocation":"17199:11:159","nodeType":"VariableDeclaration","scope":78687,"src":"17192:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78659,"name":"uint48","nodeType":"ElementaryTypeName","src":"17192:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78662,"mutability":"mutable","name":"disabledTime","nameLocation":"17219:12:159","nodeType":"VariableDeclaration","scope":78687,"src":"17212:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78661,"name":"uint48","nodeType":"ElementaryTypeName","src":"17212:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78664,"mutability":"mutable","name":"ts","nameLocation":"17240:2:159","nodeType":"VariableDeclaration","scope":78687,"src":"17233:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78663,"name":"uint48","nodeType":"ElementaryTypeName","src":"17233:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17191:52:159"},"returnParameters":{"id":78668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78667,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78687,"src":"17266:4:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78666,"name":"bool","nodeType":"ElementaryTypeName","src":"17266:4:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17265:6:159"},"scope":79243,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":78704,"nodeType":"FunctionDefinition","src":"17423:154:159","nodes":[],"body":{"id":78703,"nodeType":"Block","src":"17479:98:159","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78692,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78689,"src":"17493:4:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":78695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17509:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":78694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17501:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78693,"name":"address","nodeType":"ElementaryTypeName","src":"17501:7:159","typeDescriptions":{}}},"id":78696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17501:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17493:18:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78702,"nodeType":"IfStatement","src":"17489:82:159","trueBody":{"id":78701,"nodeType":"Block","src":"17513:58:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78698,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75702,"src":"17534:24:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17534:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78700,"nodeType":"RevertStatement","src":"17527:33:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17432:19:159","parameters":{"id":78690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78689,"mutability":"mutable","name":"hook","nameLocation":"17460:4:159","nodeType":"VariableDeclaration","scope":78704,"src":"17452:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78688,"name":"address","nodeType":"ElementaryTypeName","src":"17452:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17451:14:159"},"returnParameters":{"id":78691,"nodeType":"ParameterList","parameters":[],"src":"17479:0:159"},"scope":79243,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":78792,"nodeType":"FunctionDefinition","src":"17583:2002:159","nodes":[],"body":{"id":78791,"nodeType":"Block","src":"17641:1944:159","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78711,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"17659:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":75816,"src":"17659:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17675:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17659:17:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78715,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75762,"src":"17678:32:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17678:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78710,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17651:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17651:62:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78718,"nodeType":"ExpressionStatement","src":"17651:62:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78720,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"18048:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18050:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"18048:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":78722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18075:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":78723,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"18079:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18081:11:159","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":75816,"src":"18079:13:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18075:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18048:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78727,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75765,"src":"18094:36:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18094:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78719,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18040:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18040:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78730,"nodeType":"ExpressionStatement","src":"18040:93:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78732,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"18323:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18325:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75820,"src":"18323:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":78734,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"18348:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18350:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"18348:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18323:48:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78737,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75768,"src":"18373:48:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18373:50:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78731,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18315:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18315:109:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78740,"nodeType":"ExpressionStatement","src":"18315:109:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78742,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"18611:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18613:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75822,"src":"18611:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":78744,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"18633:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18635:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"18633:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18611:45:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78747,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75771,"src":"18658:45:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18658:47:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78741,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18603:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18603:103:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78750,"nodeType":"ExpressionStatement","src":"18603:103:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78752,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"18786:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18788:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":75824,"src":"18786:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18806:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18786:21:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78756,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75774,"src":"18809:36:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18809:38:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78751,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18778:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18778:70:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78759,"nodeType":"ExpressionStatement","src":"18778:70:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78761,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"19058:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19060:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":75826,"src":"19058:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19085:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19058:28:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78765,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75777,"src":"19088:43:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19088:45:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19050:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19050:84:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78768,"nodeType":"ExpressionStatement","src":"19050:84:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78770,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"19165:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19167:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":75824,"src":"19165:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":78772,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"19185:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19187:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":75826,"src":"19185:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19165:44:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":78775,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"19213:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19215:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"19213:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19165:71:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78778,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75780,"src":"19250:40:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19250:42:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19144:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19144:158:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78781,"nodeType":"ExpressionStatement","src":"19144:158:159"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78783,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78707,"src":"19507:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19509:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":75828,"src":"19507:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":78785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19538:1:159","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19507:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78787,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"19541:34:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19541:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78782,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19499:7:159","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19499:79:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78790,"nodeType":"ExpressionStatement","src":"19499:79:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17592:16:159","parameters":{"id":78708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78707,"mutability":"mutable","name":"$","nameLocation":"17625:1:159","nodeType":"VariableDeclaration","scope":78792,"src":"17609:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78706,"nodeType":"UserDefinedTypeName","pathNode":{"id":78705,"name":"Storage","nameLocations":["17609:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"17609:7:159"},"referencedDeclaration":75851,"src":"17609:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17608:19:159"},"returnParameters":{"id":78709,"nodeType":"ParameterList","parameters":[],"src":"17641:0:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79059,"nodeType":"FunctionDefinition","src":"19633:2572:159","nodes":[],"body":{"id":79058,"nodeType":"Block","src":"19681:2524:159","nodes":[],"statements":[{"assignments":[78799],"declarations":[{"constant":false,"id":78799,"mutability":"mutable","name":"$","nameLocation":"19707:1:159","nodeType":"VariableDeclaration","scope":79058,"src":"19691:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78798,"nodeType":"UserDefinedTypeName","pathNode":{"id":78797,"name":"Storage","nameLocations":["19691:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"19691:7:159"},"referencedDeclaration":75851,"src":"19691:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78802,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78800,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"19711:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19711:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19691:30:159"},{"condition":{"id":78811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19736:54:159","subExpression":{"arguments":[{"id":78809,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"19783:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":78804,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"19747:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19749:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"19747:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":78806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19759:13:159","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":85886,"src":"19747:25:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78803,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67862,"src":"19737:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$67862_$","typeString":"type(contract IRegistry)"}},"id":78807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19737:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$67862","typeString":"contract IRegistry"}},"id":78808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19774:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":67847,"src":"19737:45:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":78810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19737:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78816,"nodeType":"IfStatement","src":"19732:109:159","trueBody":{"id":78815,"nodeType":"Block","src":"19792:49:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78812,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75675,"src":"19813:15:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19813:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78814,"nodeType":"RevertStatement","src":"19806:24:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":78824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78818,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"19873:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78817,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67738,"src":"19855:17:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$67738_$","typeString":"type(contract IMigratableEntity)"}},"id":78819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19855:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$67738","typeString":"contract IMigratableEntity"}},"id":78820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19881:7:159","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":67719,"src":"19855:33:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":78821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19855:35:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78822,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"19894:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19896:23:159","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":75830,"src":"19894:25:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19855:64:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78829,"nodeType":"IfStatement","src":"19851:128:159","trueBody":{"id":78828,"nodeType":"Block","src":"19921:58:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78825,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75726,"src":"19942:24:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19942:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78827,"nodeType":"RevertStatement","src":"19935:33:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78831,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"20000:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78830,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"19993:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19993:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20008:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":69434,"src":"19993:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19993:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78835,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"20024:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20026:10:159","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":75838,"src":"20024:12:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19993:43:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78842,"nodeType":"IfStatement","src":"19989:100:159","trueBody":{"id":78841,"nodeType":"Block","src":"20038:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78838,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75681,"src":"20059:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20059:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78840,"nodeType":"RevertStatement","src":"20052:26:159"}]}},{"assignments":[78844],"declarations":[{"constant":false,"id":78844,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20134:18:159","nodeType":"VariableDeclaration","scope":79058,"src":"20127:25:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78843,"name":"uint48","nodeType":"ElementaryTypeName","src":"20127:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78850,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78846,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"20162:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78845,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"20155:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20155:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20170:13:159","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":69476,"src":"20155:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":78849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20155:30:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20127:58:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78851,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78844,"src":"20199:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78852,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"20220:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20222:21:159","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"20220:23:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20199:44:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78859,"nodeType":"IfStatement","src":"20195:107:159","trueBody":{"id":78858,"nodeType":"Block","src":"20245:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78855,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75678,"src":"20266:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20266:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78857,"nodeType":"RevertStatement","src":"20259:32:159"}]}},{"condition":{"id":78865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20349:40:159","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78861,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"20357:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78860,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"20350:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20350:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20365:22:159","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":69452,"src":"20350:37:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":78864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20350:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78870,"nodeType":"IfStatement","src":"20345:103:159","trueBody":{"id":78869,"nodeType":"Block","src":"20391:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78866,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75708,"src":"20412:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20412:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78868,"nodeType":"RevertStatement","src":"20405:32:159"}]}},{"assignments":[78873],"declarations":[{"constant":false,"id":78873,"mutability":"mutable","name":"delegator","nameLocation":"20473:9:159","nodeType":"VariableDeclaration","scope":79058,"src":"20458:24:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"},"typeName":{"id":78872,"nodeType":"UserDefinedTypeName","pathNode":{"id":78871,"name":"IBaseDelegator","nameLocations":["20458:14:159"],"nodeType":"IdentifierPath","referencedDeclaration":68036,"src":"20458:14:159"},"referencedDeclaration":68036,"src":"20458:14:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":78881,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78876,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"20507:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78875,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"20500:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20500:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20515:9:159","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":69446,"src":"20500:24:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20500:26:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78874,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68036,"src":"20485:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68036_$","typeString":"type(contract IBaseDelegator)"}},"id":78880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20485:42:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20458:69:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":78884,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"20567:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20569:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":75834,"src":"20567:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78882,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78873,"src":"20541:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"}},"id":78883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20551:15:159","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":67983,"src":"20541:25:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":78886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20541:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":78889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20589:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":78888,"name":"uint256","nodeType":"ElementaryTypeName","src":"20589:7:159","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":78887,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20584:4:159","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":78890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20584:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":78891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20598:3:159","memberName":"max","nodeType":"MemberAccess","src":"20584:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20541:60:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78905,"nodeType":"IfStatement","src":"20537:158:159","trueBody":{"id":78904,"nodeType":"Block","src":"20603:92:159","statements":[{"expression":{"arguments":[{"id":78896,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77054,"src":"20646:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":78899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20671:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":78898,"name":"uint256","nodeType":"ElementaryTypeName","src":"20671:7:159","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":78897,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20666:4:159","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":78900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:13:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":78901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20680:3:159","memberName":"max","nodeType":"MemberAccess","src":"20666:17:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78893,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78873,"src":"20617:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"}},"id":78895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20627:18:159","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":68015,"src":"20617:28:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":78902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20617:67:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78903,"nodeType":"ExpressionStatement","src":"20617:67:159"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78908,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78873,"src":"20739:9:159","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"}],"id":78907,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68036,"src":"20724:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$68036_$","typeString":"type(contract IBaseDelegator)"}},"id":78909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20724:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$68036","typeString":"contract IBaseDelegator"}},"id":78910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20750:4:159","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":67975,"src":"20724:30:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20724:32:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78906,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78704,"src":"20704:19:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20704:53:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78913,"nodeType":"ExpressionStatement","src":"20704:53:159"},{"condition":{"id":78919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20803:38:159","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78915,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"20811:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78914,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"20804:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20804:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20819:20:159","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":69464,"src":"20804:35:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":78918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20804:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78924,"nodeType":"IfStatement","src":"20799:99:159","trueBody":{"id":78923,"nodeType":"Block","src":"20843:55:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78920,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75711,"src":"20864:21:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20864:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78922,"nodeType":"RevertStatement","src":"20857:30:159"}]}},{"assignments":[78926],"declarations":[{"constant":false,"id":78926,"mutability":"mutable","name":"slasher","nameLocation":"20916:7:159","nodeType":"VariableDeclaration","scope":79058,"src":"20908:15:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78925,"name":"address","nodeType":"ElementaryTypeName","src":"20908:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78932,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78928,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"20933:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78927,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"20926:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":78929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20926:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":78930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20941:7:159","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":69458,"src":"20926:22:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20926:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20908:42:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":78940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78934,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"20972:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78933,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67630,"src":"20964:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$67630_$","typeString":"type(contract IEntity)"}},"id":78935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20964:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$67630","typeString":"contract IEntity"}},"id":78936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20981:4:159","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":67623,"src":"20964:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":78937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20964:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78938,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"20991:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20993:19:159","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":75832,"src":"20991:21:159","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"20964:48:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78945,"nodeType":"IfStatement","src":"20960:111:159","trueBody":{"id":78944,"nodeType":"Block","src":"21014:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78941,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75714,"src":"21035:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21035:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78943,"nodeType":"RevertStatement","src":"21028:32:159"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78947,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"21098:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78946,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69048,"src":"21085:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69048_$","typeString":"type(contract IVetoSlasher)"}},"id":78948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21085:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69048","typeString":"contract IVetoSlasher"}},"id":78949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21107:12:159","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":68716,"src":"21085:34:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":78950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21085:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78955,"nodeType":"IfStatement","src":"21081:98:159","trueBody":{"id":78954,"nodeType":"Block","src":"21123:56:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78951,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75717,"src":"21144:22:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21144:24:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78953,"nodeType":"RevertStatement","src":"21137:31:159"}]}},{"assignments":[78957],"declarations":[{"constant":false,"id":78957,"mutability":"mutable","name":"vetoDuration","nameLocation":"21196:12:159","nodeType":"VariableDeclaration","scope":79058,"src":"21189:19:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78956,"name":"uint48","nodeType":"ElementaryTypeName","src":"21189:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":78963,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78959,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"21224:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78958,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69048,"src":"21211:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69048_$","typeString":"type(contract IVetoSlasher)"}},"id":78960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21211:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69048","typeString":"contract IVetoSlasher"}},"id":78961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21233:12:159","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":68951,"src":"21211:34:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":78962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21211:36:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21189:58:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78964,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78957,"src":"21261:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78965,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"21276:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21278:15:159","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":75824,"src":"21276:17:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21261:32:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78972,"nodeType":"IfStatement","src":"21257:92:159","trueBody":{"id":78971,"nodeType":"Block","src":"21295:54:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78968,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75720,"src":"21316:20:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21316:22:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78970,"nodeType":"RevertStatement","src":"21309:29:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":78976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78973,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78957,"src":"21363:12:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":78974,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"21378:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21380:22:159","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":75826,"src":"21378:24:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21363:39:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":78977,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78844,"src":"21405:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21363:60:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78983,"nodeType":"IfStatement","src":"21359:119:159","trueBody":{"id":78982,"nodeType":"Block","src":"21425:53:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78979,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75723,"src":"21446:19:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21446:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78981,"nodeType":"RevertStatement","src":"21439:28:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78985,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"21505:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78984,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69048,"src":"21492:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69048_$","typeString":"type(contract IVetoSlasher)"}},"id":78986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21492:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69048","typeString":"contract IVetoSlasher"}},"id":78987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21514:22:159","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":68981,"src":"21492:44:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":78988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21492:46:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":78989,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"21541:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21543:25:159","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":75828,"src":"21541:27:159","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21492:76:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78996,"nodeType":"IfStatement","src":"21488:139:159","trueBody":{"id":78995,"nodeType":"Block","src":"21570:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78992,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75741,"src":"21591:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21591:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78994,"nodeType":"RevertStatement","src":"21584:32:159"}]}},{"assignments":[78998],"declarations":[{"constant":false,"id":78998,"mutability":"mutable","name":"resolver","nameLocation":"21645:8:159","nodeType":"VariableDeclaration","scope":79058,"src":"21637:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78997,"name":"address","nodeType":"ElementaryTypeName","src":"21637:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79010,"initialValue":{"arguments":[{"expression":{"id":79003,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"21687:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21689:10:159","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":75834,"src":"21687:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":79007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21711:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21701:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79005,"name":"bytes","nodeType":"ElementaryTypeName","src":"21705:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21701:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":79000,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"21669:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78999,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69048,"src":"21656:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69048_$","typeString":"type(contract IVetoSlasher)"}},"id":79001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21656:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69048","typeString":"contract IVetoSlasher"}},"id":79002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21678:8:159","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":69003,"src":"21656:30:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) view external returns (address)"}},"id":79009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21656:58:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21637:77:159"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79011,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78998,"src":"21728:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21748:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21740:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79012,"name":"address","nodeType":"ElementaryTypeName","src":"21740:7:159","typeDescriptions":{}}},"id":79015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21740:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21728:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79032,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78998,"src":"21880:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":79033,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"21892:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21894:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"21892:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21904:12:159","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":85904,"src":"21892:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21880:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79041,"nodeType":"IfStatement","src":"21876:147:159","trueBody":{"id":79040,"nodeType":"Block","src":"21918:105:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79037,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"21994:16:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21994:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79039,"nodeType":"RevertStatement","src":"21987:25:159"}]}},"id":79042,"nodeType":"IfStatement","src":"21724:299:159","trueBody":{"id":79031,"nodeType":"Block","src":"21752:118:159","statements":[{"expression":{"arguments":[{"id":79021,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77054,"src":"21800:18:159","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":79022,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"21820:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21822:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"21820:11:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21832:12:159","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":85904,"src":"21820:24:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":79027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21856:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21846:9:159","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":79025,"name":"bytes","nodeType":"ElementaryTypeName","src":"21850:5:159","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":79028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21846:12:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":79018,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78926,"src":"21779:7:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79017,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69048,"src":"21766:12:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$69048_$","typeString":"type(contract IVetoSlasher)"}},"id":79019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21766:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$69048","typeString":"contract IVetoSlasher"}},"id":79020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21788:11:159","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":69047,"src":"21766:33:159","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":79029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21766:93:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79030,"nodeType":"ExpressionStatement","src":"21766:93:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79044,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78794,"src":"22116:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79043,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69386,"src":"22109:6:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$69386_$","typeString":"type(contract IVault)"}},"id":79045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22109:14:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$69386","typeString":"contract IVault"}},"id":79046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22124:6:159","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":69440,"src":"22109:21:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22109:23:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22144:1:159","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22136:7:159","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79048,"name":"address","nodeType":"ElementaryTypeName","src":"22136:7:159","typeDescriptions":{}}},"id":79051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22136:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22109:37:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79057,"nodeType":"IfStatement","src":"22105:94:159","trueBody":{"id":79056,"nodeType":"Block","src":"22148:51:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79053,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75705,"src":"22169:17:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22169:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79055,"nodeType":"RevertStatement","src":"22162:26:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19642:14:159","parameters":{"id":78795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78794,"mutability":"mutable","name":"_vault","nameLocation":"19665:6:159","nodeType":"VariableDeclaration","scope":79059,"src":"19657:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78793,"name":"address","nodeType":"ElementaryTypeName","src":"19657:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19656:16:159"},"returnParameters":{"id":78796,"nodeType":"ParameterList","parameters":[],"src":"19681:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79106,"nodeType":"FunctionDefinition","src":"22211:482:159","nodes":[],"body":{"id":79105,"nodeType":"Block","src":"22290:403:159","nodes":[],"statements":[{"condition":{"id":79075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22304:72:159","subExpression":{"arguments":[{"id":79073,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79063,"src":"22367:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79067,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"22315:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22315:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22326:9:159","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":75844,"src":"22315:20:159","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":79070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22336:20:159","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":85896,"src":"22315:41:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79066,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67862,"src":"22305:9:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$67862_$","typeString":"type(contract IRegistry)"}},"id":79071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22305:52:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$67862","typeString":"contract IRegistry"}},"id":79072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22358:8:159","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":67847,"src":"22305:61:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":79074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22305:71:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79080,"nodeType":"IfStatement","src":"22300:135:159","trueBody":{"id":79079,"nodeType":"Block","src":"22378:57:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79076,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75753,"src":"22399:23:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22399:25:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79078,"nodeType":"RevertStatement","src":"22392:32:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79082,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79063,"src":"22471:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79081,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73915,"src":"22449:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$73915_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":79083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22449:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$73915","typeString":"contract IDefaultStakerRewards"}},"id":79084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22481:5:159","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":73850,"src":"22449:37:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22449:39:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":79086,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79061,"src":"22492:6:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22449:49:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79092,"nodeType":"IfStatement","src":"22445:114:159","trueBody":{"id":79091,"nodeType":"Block","src":"22500:59:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79088,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75756,"src":"22521:25:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22521:27:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79090,"nodeType":"RevertStatement","src":"22514:34:159"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":79099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79094,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79063,"src":"22595:8:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79093,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73915,"src":"22573:21:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$73915_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":79095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:31:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$73915","typeString":"contract IDefaultStakerRewards"}},"id":79096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22605:7:159","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":73967,"src":"22573:39:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":79097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:41:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":79098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22618:1:159","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22573:46:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79104,"nodeType":"IfStatement","src":"22569:118:159","trueBody":{"id":79103,"nodeType":"Block","src":"22621:66:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79100,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75729,"src":"22642:32:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:34:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79102,"nodeType":"RevertStatement","src":"22635:41:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22220:22:159","parameters":{"id":79064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79061,"mutability":"mutable","name":"_vault","nameLocation":"22251:6:159","nodeType":"VariableDeclaration","scope":79106,"src":"22243:14:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79060,"name":"address","nodeType":"ElementaryTypeName","src":"22243:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79063,"mutability":"mutable","name":"_rewards","nameLocation":"22267:8:159","nodeType":"VariableDeclaration","scope":79106,"src":"22259:16:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79062,"name":"address","nodeType":"ElementaryTypeName","src":"22259:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22242:34:159"},"returnParameters":{"id":79065,"nodeType":"ParameterList","parameters":[],"src":"22290:0:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79116,"nodeType":"ModifierDefinition","src":"22830:82:159","nodes":[],"body":{"id":79115,"nodeType":"Block","src":"22865:47:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":79111,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79108,"src":"22891:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":79110,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79163,"src":"22875:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":79112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22875:19:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79113,"nodeType":"ExpressionStatement","src":"22875:19:159"},{"id":79114,"nodeType":"PlaceholderStatement","src":"22904:1:159"}]},"name":"validTimestamp","nameLocation":"22839:14:159","parameters":{"id":79109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79108,"mutability":"mutable","name":"ts","nameLocation":"22861:2:159","nodeType":"VariableDeclaration","scope":79116,"src":"22854:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79107,"name":"uint48","nodeType":"ElementaryTypeName","src":"22854:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22853:11:159"},"virtual":false,"visibility":"internal"},{"id":79163,"nodeType":"FunctionDefinition","src":"22918:408:159","nodes":[],"body":{"id":79162,"nodeType":"Block","src":"22968:358:159","nodes":[],"statements":[{"assignments":[79123],"declarations":[{"constant":false,"id":79123,"mutability":"mutable","name":"$","nameLocation":"22994:1:159","nodeType":"VariableDeclaration","scope":79162,"src":"22978:17:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79122,"nodeType":"UserDefinedTypeName","pathNode":{"id":79121,"name":"Storage","nameLocations":["22978:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"22978:7:159"},"referencedDeclaration":75851,"src":"22978:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":79126,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79124,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"22998:8:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22998:10:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22978:30:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79127,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79118,"src":"23022:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79128,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"23028:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":79129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23033:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"23028:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":79130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23028:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23022:22:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79136,"nodeType":"IfStatement","src":"23018:80:159","trueBody":{"id":79135,"nodeType":"Block","src":"23046:52:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79132,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75693,"src":"23067:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23067:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79134,"nodeType":"RevertStatement","src":"23060:27:159"}]}},{"assignments":[79138],"declarations":[{"constant":false,"id":79138,"mutability":"mutable","name":"gracePeriod","nameLocation":"23115:11:159","nodeType":"VariableDeclaration","scope":79162,"src":"23108:18:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79137,"name":"uint48","nodeType":"ElementaryTypeName","src":"23108:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":79149,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79139,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79123,"src":"23129:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23131:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75820,"src":"23129:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79141,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79123,"src":"23153:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23155:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75822,"src":"23153:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23129:42:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":79146,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79123,"src":"23198:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23200:16:159","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75822,"src":"23198:18:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":79148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23129:87:159","trueExpression":{"expression":{"id":79144,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79123,"src":"23174:1:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23176:19:159","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":75820,"src":"23174:21:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23108:108:159"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79150,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79118,"src":"23230:2:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79151,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79138,"src":"23235:11:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23230:16:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79153,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"23250:4:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$18907_$","typeString":"type(library Time)"}},"id":79154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23255:9:159","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":18655,"src":"23250:14:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":79155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23250:16:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23230:36:159","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79161,"nodeType":"IfStatement","src":"23226:94:159","trueBody":{"id":79160,"nodeType":"Block","src":"23268:52:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79157,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75693,"src":"23289:18:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23289:20:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79159,"nodeType":"RevertStatement","src":"23282:27:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22927:15:159","parameters":{"id":79119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79118,"mutability":"mutable","name":"ts","nameLocation":"22950:2:159","nodeType":"VariableDeclaration","scope":79163,"src":"22943:9:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79117,"name":"uint48","nodeType":"ElementaryTypeName","src":"22943:6:159","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22942:11:159"},"returnParameters":{"id":79120,"nodeType":"ParameterList","parameters":[],"src":"22968:0:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":79176,"nodeType":"FunctionDefinition","src":"23332:201:159","nodes":[],"body":{"id":79175,"nodeType":"Block","src":"23402:131:159","nodes":[],"statements":[{"assignments":[79170],"declarations":[{"constant":false,"id":79170,"mutability":"mutable","name":"slot","nameLocation":"23420:4:159","nodeType":"VariableDeclaration","scope":79175,"src":"23412:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23412:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79173,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79171,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79188,"src":"23427:15:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23427:17:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23412:32:159"},{"AST":{"nativeSrc":"23480:47:159","nodeType":"YulBlock","src":"23480:47:159","statements":[{"nativeSrc":"23494:23:159","nodeType":"YulAssignment","src":"23494:23:159","value":{"name":"slot","nativeSrc":"23513:4:159","nodeType":"YulIdentifier","src":"23513:4:159"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23494:15:159","nodeType":"YulIdentifier","src":"23494:15:159"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79167,"isOffset":false,"isSlot":true,"src":"23494:15:159","suffix":"slot","valueSize":1},{"declaration":79170,"isOffset":false,"isSlot":false,"src":"23513:4:159","valueSize":1}],"flags":["memory-safe"],"id":79174,"nodeType":"InlineAssembly","src":"23455:72:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23341:8:159","parameters":{"id":79164,"nodeType":"ParameterList","parameters":[],"src":"23349:2:159"},"returnParameters":{"id":79168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79167,"mutability":"mutable","name":"middleware","nameLocation":"23390:10:159","nodeType":"VariableDeclaration","scope":79176,"src":"23374:26:159","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79166,"nodeType":"UserDefinedTypeName","pathNode":{"id":79165,"name":"Storage","nameLocations":["23374:7:159"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"23374:7:159"},"referencedDeclaration":75851,"src":"23374:7:159","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23373:28:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79188,"nodeType":"FunctionDefinition","src":"23539:128:159","nodes":[],"body":{"id":79187,"nodeType":"Block","src":"23597:70:159","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79183,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77048,"src":"23641:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79181,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"23614:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":79182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23626:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"23614:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23655:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"23614:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79180,"id":79186,"nodeType":"Return","src":"23607:53:159"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23548:15:159","parameters":{"id":79177,"nodeType":"ParameterList","parameters":[],"src":"23563:2:159"},"returnParameters":{"id":79180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79188,"src":"23588:7:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79178,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23588:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23587:9:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79212,"nodeType":"FunctionDefinition","src":"23673:200:159","nodes":[],"body":{"id":79211,"nodeType":"Block","src":"23741:132:159","nodes":[],"statements":[{"assignments":[79196],"declarations":[{"constant":false,"id":79196,"mutability":"mutable","name":"slot","nameLocation":"23759:4:159","nodeType":"VariableDeclaration","scope":79211,"src":"23751:12:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79195,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23751:7:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79201,"initialValue":{"arguments":[{"id":79199,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79190,"src":"23793:9:159","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79197,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"23766:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":79198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23781:11:159","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"23766:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23766:37:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23751:52:159"},{"expression":{"id":79209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79205,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77048,"src":"23840:12:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79202,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"23813:11:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":79204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23825:14:159","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"23813:26:159","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23813:40:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23854:5:159","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"23813:46:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79208,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79196,"src":"23862:4:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23813:53:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79210,"nodeType":"ExpressionStatement","src":"23813:53:159"}]},"implemented":true,"kind":"function","modifiers":[{"id":79193,"kind":"modifierInvocation","modifierName":{"id":79192,"name":"onlyOwner","nameLocations":["23731:9:159"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"23731:9:159"},"nodeType":"ModifierInvocation","src":"23731:9:159"}],"name":"_setStorageSlot","nameLocation":"23682:15:159","parameters":{"id":79191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79190,"mutability":"mutable","name":"namespace","nameLocation":"23712:9:159","nodeType":"VariableDeclaration","scope":79212,"src":"23698:23:159","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79189,"name":"string","nodeType":"ElementaryTypeName","src":"23698:6:159","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23697:25:159"},"returnParameters":{"id":79194,"nodeType":"ParameterList","parameters":[],"src":"23741:0:159"},"scope":79243,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79222,"nodeType":"ModifierDefinition","src":"23879:81:159","nodes":[],"body":{"id":79221,"nodeType":"Block","src":"23914:46:159","nodes":[],"statements":[{"expression":{"arguments":[{"id":79217,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79214,"src":"23936:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79216,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79242,"src":"23924:11:159","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":79218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23924:18:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79219,"nodeType":"ExpressionStatement","src":"23924:18:159"},{"id":79220,"nodeType":"PlaceholderStatement","src":"23952:1:159"}]},"name":"vaultOwner","nameLocation":"23888:10:159","parameters":{"id":79215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79214,"mutability":"mutable","name":"vault","nameLocation":"23907:5:159","nodeType":"VariableDeclaration","scope":79222,"src":"23899:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79213,"name":"address","nodeType":"ElementaryTypeName","src":"23899:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23898:15:159"},"virtual":false,"visibility":"internal"},{"id":79242,"nodeType":"FunctionDefinition","src":"23966:181:159","nodes":[],"body":{"id":79241,"nodeType":"Block","src":"24016:131:159","nodes":[],"statements":[{"condition":{"id":79235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24030:62:159","subExpression":{"arguments":[{"id":79231,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77051,"src":"24061:18:159","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79232,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24081:3:159","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24085:6:159","memberName":"sender","nodeType":"MemberAccess","src":"24081:10:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":79228,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79224,"src":"24046:5:159","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79227,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"24031:14:159","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$82_$","typeString":"type(contract IAccessControl)"}},"id":79229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24031:21:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$82","typeString":"contract IAccessControl"}},"id":79230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24053:7:159","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":49,"src":"24031:29:159","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":79234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24031:61:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79240,"nodeType":"IfStatement","src":"24026:115:159","trueBody":{"id":79239,"nodeType":"Block","src":"24094:47:159","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79236,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75690,"src":"24115:13:159","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24115:15:159","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":79238,"nodeType":"RevertStatement","src":"24108:22:159"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"23975:11:159","parameters":{"id":79225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79224,"mutability":"mutable","name":"vault","nameLocation":"23995:5:159","nodeType":"VariableDeclaration","scope":79242,"src":"23987:13:159","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79223,"name":"address","nodeType":"ElementaryTypeName","src":"23987:7:159","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23986:15:159"},"returnParameters":{"id":79226,"nodeType":"ParameterList","parameters":[],"src":"24016:0:159"},"scope":79243,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":77023,"name":"IMiddleware","nameLocations":["2399:11:159"],"nodeType":"IdentifierPath","referencedDeclaration":76054,"src":"2399:11:159"},"id":77024,"nodeType":"InheritanceSpecifier","src":"2399:11:159"},{"baseName":{"id":77025,"name":"OwnableUpgradeable","nameLocations":["2412:18:159"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"2412:18:159"},"id":77026,"nodeType":"InheritanceSpecifier","src":"2412:18:159"},{"baseName":{"id":77027,"name":"ReentrancyGuardTransient","nameLocations":["2432:24:159"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"2432:24:159"},"id":77028,"nodeType":"InheritanceSpecifier","src":"2432:24:159"},{"baseName":{"id":77029,"name":"UUPSUpgradeable","nameLocations":["2458:15:159"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"2458:15:159"},"id":77030,"nodeType":"InheritanceSpecifier","src":"2458:15:159"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79243,2079,376,6594,19465,20363,1913,76054],"name":"Middleware","nameLocation":"2385:10:159","scope":79244,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,11979,13890,19301,19306,75675,75678,75681,75684,75687,75690,75693,75696,75699,75702,75705,75708,75711,75714,75717,75720,75723,75726,75729,75732,75735,75738,75741,75744,75747,75750,75753,75756,75759,75762,75765,75768,75771,75774,75777,75780,75783,86847,86850,86853],"usedEvents":[324,1670,19312]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":159} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Mirror.json b/ethexe/ethereum/abi/Mirror.json index 5872113a7fa..be2d58d3065 100644 --- a/ethexe/ethereum/abi/Mirror.json +++ b/ethexe/ethereum/abi/Mirror.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUpWithPermit","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v","type":"uint8","internalType":"uint8"},{"name":"_r","type":"bytes32","internalType":"bytes32"},{"name":"_s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"transitionHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyCallFailed","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008d57601f611d8138819003918201601f19168301916001600160401b038311848410176100915780849260209460405283398101031261008d57516001600160a01b038116810361008d57608052604051611cdb90816100a682396080518181816102390152818161031d015281816113e90152818161148a0152818161152d01526115e30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:41123:161:-:0;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;7624:16;;2621:41123;;;;;;;;7624:16;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;-1:-1:-1;2621:41123:161;;;;;-1:-1:-1;2621:41123:161","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:41123:161:-:0;;;;;;;;;-1:-1:-1;9882:69:161;;:::i;:::-;42692:9;:13;;:37;;;-1:-1:-1;42688:1048:161;;;42799:33;2621:41123;;;-1:-1:-1;;;;;42692:9:161;2621:41123;;;42799:33;2621:41123;42688:1048;2621:41123;42854:7;2621:41123;;;;42853:8;:35;;;42688:1048;42849:887;;;8798:67;;:::i;:::-;8593:5;2621:41123;8593:9;;;:38;;;42849:887;2621:41123;;;-1:-1:-1;;;;;42692:9:161;2621:41123;19408:6;;;:::i;:::-;8593:5;2621:41123;19629:154;;;;42704:1;19629:154;;;;;42704:1;19629:154;2621:41123;;;;;;;8593:5;2621:41123;8593:5;2621:41123;19815:70;2621:41123;;;;;;;;;;;;;;;;;;42704:1;2621:41123;;;;42704:1;2621:41123;;;;;;;;;;;;;;;;;;;;43377:88;43522:14;;19629:154;2621:41123;;;19844:10;;19815:70;;;;42704:1;43552:115;2621:41123;42704:1;43552:115;2621:41123;;;;42704:1;2621:41123;;;;;42704:1;2621:41123;;;;;42704:1;2621:41123;;42704:1;2621:41123;8593:38;-1:-1:-1;42854:7:161;2621:41123;-1:-1:-1;;;;;2621:41123:161;8606:10;:25;8593:38;;42849:887;43704:21;;;42704:1;43704:21;2621:41123;42704:1;43704:21;42853:35;2621:41123;42884:4;2621:41123;42865:23;;42853:35;;42692:37;2621:41123;;42709:20;42692:37;;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3228:31;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;9882:69;;:::i;:::-;9363:6;2621:41123;;;;;;;20666:37;;20418:21;-1:-1:-1;;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;20666:37;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;:::i;:::-;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;2621:41123;-1:-1:-1;;;;;14371:14:161;14378:6;14371:14;:::i;:::-;2621:41123;14371:79;;;;;2621:41123;;14371:79;2621:41123;;;;;;;;;14371:79;;14393:10;2621:41123;14371:79;;2621:41123;14413:4;2621:41123;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14371:79;;;;2621:41123;14487:6;-1:-1:-1;;;;;;;;;;;14487:6:161;;2621:41123;14487:6;;:::i;:::-;2621:41123;;;;;14510:39;2621:41123;;14371:79;;14487:6;14371:79;;2621:41123;14371:79;;-1:-1:-1;;;;;;;;;;;14371:79:161;;:::i;:::-;;;;;;;;;2621:41123;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;9503:63;;:::i;:::-;16181:11;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;811:66:53;2621:41123:161;;-1:-1:-1;;;;;2621:41123:161;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;16181:11:161;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;16631:30:161;16627:124;;2621:41123;;;16627:124;2621:41123;-1:-1:-1;;;;;;;;;;;2621:41123:161;;;;;;16682:58;2621:41123;;811:66:53;-1:-1:-1;;;811:66:53;;2621:41123:161;811:66:53;;2621:41123:161;-1:-1:-1;;;2621:41123:161;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;3558:20;2621:41123;;;;;;;;;;;;;;;;;;;;4050:26;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;2621:41123;;;;;;12953:46;2621:41123;12988:10;12953:46;;2621:41123;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;12480:64;2621:41123;;;;;;:::i;:::-;9882:69;;;;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;-1:-1:-1;;;;;12419:9:161;2621:41123;12457:6;;;;:::i;:::-;12480:64;2621:41123;;12515:10;;;;2621:41123;;;12480:64;;:::i;:::-;;;;2621:41123;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;;;;;;;2621:41123:161;;;:::i;:::-;9882:69;;:::i;:::-;8798:67;;:::i;:::-;10354:5;;;:::i;:::-;-1:-1:-1;;;;;2621:41123:161;;;;;;13429:39;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:18;2621:41123;;;;;;;;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;8593:5;2621:41123;8593:9;;;:38;;;2621:41123;;;;-1:-1:-1;;;;;19370:9:161;2621:41123;19408:6;;;;:::i;:::-;8593:5;2621:41123;19629:154;;;;;;;;;;;2621:41123;;;;;;;;;;;;;8593:5;19815:70;2621:41123;;8593:5;2621:41123;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;19629:154;2621:41123;;;19844:10;;19815:70;;;;2621:41123;;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;2621:41123:161;;;;;8593:38;-1:-1:-1;8620:11:161;2621:41123;-1:-1:-1;;;;;2621:41123:161;8606:10;:25;8593:38;;2621:41123;;;;;;;;;;;;;3940:24;2621:41123;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;9503:63;;:::i;:::-;17254:19;2621:41123;;;;17254:19;:::i;:::-;17285:4;-1:-1:-1;;;;;2621:41123:161;;;17254:36;2621:41123;;17442:38;;2621:41123;;17442:38;;:::i;:::-;17438:113;;2621:41123;;;17672:20;;2621:41123;-1:-1:-1;;2621:41123:161;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21507:35;2621:41123;;;;;;;;;21507:35;:::i;:::-;2621:41123;;;21618:3;2621:41123;;;;;;;21601:15;;;;;2621:41123;;;;;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20739:273:169;2621:41123:161;;;;17442:38;2621:41123;;;;;;;20838:15:169;;2621:41123:161;;;;;;;;;;;;;;;20739:273:169;;;;;;2621:41123:161;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;20739:273:169;;;;;;;;;;:::i;:::-;2621:41123:161;20716:306:169;;4093:83:22;;;;2621:41123:161;;;;;;;;;;;17442:38;;2621:41123;;22310:7;2621:41123;;;;;;;;22310:7;:::i;:::-;2621:41123;21586:13;;;22236:162;37118:13;2621:41123;;;;;;;;37118:13;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;;37169:26:161;2621:41123;;;;;;;;37169:26;:::i;:::-;2621:41123;37169:29;2621:41123;;;37169:34;37218:20;;2621:41123;37253:433;;;;;2621:41123;;;37301:16;2621:41123;;;;;;;;;;;;;;;;;;;;;;37301:16;:::i;:::-;2621:41123;;;:::i;:::-;;-1:-1:-1;;;;;37765:14:161;2621:41123;;;37718:20;2621:41123;;;;;;;;37718:20;:::i;:::-;2621:41123;;;;;;;37765:14;:::i;:::-;2621:41123;;37718:71;;;;;37749:7;37718:71;;;:::i;:::-;;37808:8;37804:513;;37253:433;37114:1562;22236:162;;37804:513;37859:52;37874:20;2621:41123;;;;;;;;37874:20;:::i;:::-;37896:14;2621:41123;;;;;;;;37896:14;:::i;:::-;37859:52;;:::i;:::-;37933:16;37929:125;;37804:513;38217:85;2621:41123;38233:14;2621:41123;;;;;;;;38233:14;:::i;:::-;17442:38;2621:41123;-1:-1:-1;;;;;;38275:26:161;2621:41123;;;;;;;;38275:26;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;38217:85;37804:513;;;37929:125;37978:57;37998:20;2621:41123;;;;;;;;37998:20;:::i;:::-;38020:14;2621:41123;;;;;;;;38020:14;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;37978:57;37929:125;;37253:433;2621:41123;;;;37518:153;;2621:41123;37609:16;2621:41123;;;;;;;;;;;;37609:16;:::i;:::-;37627:26;2621:41123;;;;;;;;37627:26;:::i;:::-;2621:41123;;;;;37562:32;;;;;;37518:153;;;;2621:41123;;;;;;;37518:153;;;2621:41123;;;;;;;;;;:::i;:::-;;;;;;;;;;37518:153;2621:41123;;37518:153;;;;;;:::i;:::-;37253:433;;37114:1562;38370:52;38385:20;2621:41123;;;;;;;;38385:20;:::i;38370:52::-;38440:16;38436:117;;37114:1562;38572:93;38578:16;2621:41123;;;;;;;;;;;;38578:16;:::i;:::-;38596:14;2621:41123;;;;;;;;38596:14;:::i;:::-;17442:38;2621:41123;-1:-1:-1;;;;;;38638:26:161;2621:41123;;;;;;;;38638:26;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;38572:93;;;22236:162;;38436:117;38481:57;38501:20;2621:41123;;;;;;;;38501:20;:::i;:::-;38523:14;2621:41123;;;;;;;;38523:14;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;38481:57;38436:117;;2621:41123;;;;;;;;;;;;;;;;21601:15;;;;2621:41123;21601:15;2621:41123;;;;;;;1083:131:25;;2621:41123:161;17810:23;2621:41123;;17810:23;2621:41123;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39449:33;;;;;;;:::i;:::-;39492:18;2621:41123;39526:13;2621:41123;39521:628;39556:3;39541:13;;;;;;39689:17;2621:41123;;;;;;;;;;;;;;39896:46;39911:17;2621:41123;;;;;39689:17;;;2621:41123;;39689:17;;;;;:::i;:::-;39708:11;;;;;;:::i;:::-;2621:41123;;21377:50:169;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;21377:50:169;;;;;;:::i;:::-;2621:41123:161;21367:61:169;;4093:83:22;;;2621:41123:161;39911:17;;:::i;:::-;39930:11;;;:::i;39896:46::-;39930:11;;;40022;39992:42;40022:11;;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;39992:42;39956:183;2621:41123;39526:13;;;;;;39956:183;40112:11;40078:46;40112:11;;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;40078:46;39956:183;;39541:13;;;1083:131:25;2621:41123:161;;;;17914:18;;;;;:::i;:::-;;;;2621:41123;;;;17962:21;21377:50:169;2621:41123:161;;17962:21;;:::i;:::-;8798:67;;;:::i;:::-;40643:13;2621:41123;;-1:-1:-1;;;;;;2621:41123:161;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;-1:-1:-1;;2621:41123:161;20418:21;-1:-1:-1;;;;;2621:41123:161;;20666:37;;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;20666:37;:::i;:::-;40867:8;40863:231;;17910:183;;;;2621:41123;;18194:24;2621:41123;;18194:24;2621:41123;18181:37;;;;;18177:110;;17910:183;2621:41123;;18496:18;18425:19;2621:41123;;;;18425:19;:::i;:::-;18496:18;;:::i;:::-;18528:21;21377:50:169;2621:41123:161;;18528:21;;:::i;:::-;18563:26;;2621:41123;;18563:26;;:::i;:::-;2621:41123;18603:38;17442;2621:41123;;17442:38;18603;:::i;:::-;2621:41123;;;22289:279:169;;;;2621:41123:161;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;22289:279:169;;;;;;:::i;:::-;2621:41123:161;22266:312:169;;2621:41123:161;;;;;;18177:110;2621:41123;41454:23;2621:41123;;;;;;41454:23;18177:110;;;;40863:231;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;41028:55;;;40863:231;;;;17910:183;2621:41123;-1:-1:-1;;;;;18023:21:161;2621:41123;;21377:50:169;18023:21:161;;:::i;:::-;2621:41123;;;;17910:183;;;2621:41123;;;;;;;;;17438:113;17513:26;;;2621:41123;;17513:26;;:::i;:::-;;:::i;:::-;17438:113;;2621:41123;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;;;-1:-1:-1;;2621:41123:161;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;9658:102::-;9727:6;-1:-1:-1;;;;;2621:41123:161;9713:10;:20;2621:41123;;9658:102::o;2621:41123::-;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;2621:41123:161;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2621:41123:161;;;;:::o;:::-;;;:::o;10854:215::-;-1:-1:-1;;;;;2621:41123:161;10918:10;10914:149;;10854:215;:::o;10914:149::-;10927:1;10962:6;;;;;:29;;;;:::i;:::-;;2621:41123;;;10854:215::o;2621:41123::-;;;;10927:1;2621:41123;;10927:1;2621:41123;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;10043:108::-;2621:41123;;-1:-1:-1;;;10102:24:161;;;2621:41123;10102:24;2621:41123;10110:6;-1:-1:-1;;;;;2621:41123:161;10102:24;;;;;;;-1:-1:-1;10102:24:161;;;10043:108;10101:25;2621:41123;;10043:108::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;10102:24;-1:-1:-1;2621:41123:161;10102:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2621:41123;;;;;;;;;8952:89;2621:41123;9010:6;2621:41123;;;;8952:89::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;2621:41123:161;10487:228;-1:-1:-1;;;;;2621:41123:161;10550:10;10546:163;;10487:228;:::o;10546:163::-;10598:6;;2621:41123;;10591:54;-1:-1:-1;;;;;10591:14:161;10598:6;10591:14;:::i;:::-;2621:41123;;-1:-1:-1;;;10591:54:161;;10619:10;10591:54;;;2621:41123;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;10559:1;;2621:41123;10591:54;;;;;;;10559:1;10591:54;;;10546:163;2621:41123;;;;10487:228::o;2621:41123::-;;;;10559:1;2621:41123;10591:54;10559:1;2621:41123;10591:54;;;;2621:41123;10591:54;2621:41123;10591:54;;;;;;;:::i;:::-;;;;7993:107;8058:5;2621:41123;8058:9;2621:41123;;7993:107::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;2621:41123:161;41658:182;2621:41123;;-1:-1:-1;;;41760:33:161;;2621:41123;41760:33;;2621:41123;;41760:33;;2621:41123;;-1:-1:-1;;;;;2621:41123:161;41760:33;;;;;;;-1:-1:-1;41760:33:161;;;41658:182;-1:-1:-1;;;;;;2621:41123:161;;41658:182::o;41760:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2621:41123;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;41760:33;;;;;;-1:-1:-1;41760:33:161;;863:809:22;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;2621:41123:161:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;2621:41123:161;;;;;;;:::o;23021:1125::-;23279:36;;;:::i;:::-;23278:37;23274:866;;23021:1125;:::o;23274:866::-;23585:13;;;;;:::i;:::-;23581:453;;23274:866;24053:76;;24074:20;;;;;:::i;:::-;24096:16;;;;;;:::i;:::-;24114:14;;;;;;;;:::i;:::-;2621:41123;24096:16;2621:41123;;;;;;;;;;;;24053:76;;:::i;:::-;;;;23021:1125::o;23581:453::-;23636:20;;;-1:-1:-1;23636:20:161;;;;:::i;:::-;23676:16;;;;;;;:::i;:::-;2621:41123;;;23676:16;2621:41123;;;;;;;;;;;23636:57;;23667:7;23636:57;;;:::i;:::-;;23716:8;23712:308;;23581:453;;;23712:308;23936:20;23905:68;23936:20;;:::i;:::-;23958:14;;;;;:::i;:::-;23676:16;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;23905:68;2621:41123;42082:253;;-1:-1:-1;;;;;2621:41123:161;42179:10;;42175:133;;42317:11;;42324:4;42082:253;:::o;42175:133::-;2621:41123;42223:46;;;;;42245:5;42223:46;;;:::i;:::-;;42283:14;:::o;27225:3845::-;27364:16;;;;;;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;27397:20;;;;;:::i;:::-;2621:41123;27397:38;:61;;;;27225:3845;27397:83;;;;27225:3845;27395:86;27391:129;;27560:249;;;;;27825:17;27841:1;27825:17;;;:38;;;27225:3845;27823:41;27819:84;;2943:42;;;;27841:1;2621:41123;;28044:37;;28038:83;;27841:1;28240:95;;;28906:31;28916:21;28906:31;;;:90;;;27225:3845;28906:147;;;27225:3845;28906:204;;;27225:3845;28906:265;;;27225:3845;28906:331;;;27225:3845;28906:373;;;27225:3845;28906:425;;;27225:3845;28906:465;;;27225:3845;28906:515;;;27225:3845;28906:562;;;27225:3845;28906:633;;;27225:3845;28906:687;;;27225:3845;28906:738;;;27225:3845;28891:763;28887:806;;2943:42;;;-1:-1:-1;;2943:42:161;;;27841:1;29863:21;2943:42;29863:21;:::i;:::-;29894:117;;;;;;30230:216;;;;;;;;;;27841:1;30460:17;;27841:1;;30493:83;;;;;;;;27841:1;27225:3845;:::o;30456:586::-;30612:1;30596:17;;30612:1;;30629:91;;;;27841:1;27225:3845;:::o;30592:450::-;30756:1;30740:17;;;;;;;;30736:306;30756:1;;;30773:99;;;;;;;27841:1;27225:3845;:::o;30736:306::-;30908:1;30892:17;30888:154;;30736:306;;;;;;;27841:1;27225:3845;:::o;30888:154::-;30230:216;;;30925:107;;30888:154;;;;;;;;28887:806;29670:12;;;;;2621:41123;29670:12;:::o;28906:738::-;29609:35;29619:25;29609:35;;;28906:738;;:687;29555:38;29565:28;29555:38;;;28906:687;;:633;29484:55;29494:45;29484:55;;;28906:633;;:562;29437:31;29447:21;29437:31;;;28906:562;;:515;29387:34;29397:24;29387:34;;;28906:515;;:465;29347:24;29357:14;29347:24;;;28906:465;;:425;29295:36;29305:26;29295:36;;;28906:425;;:373;29253:26;29263:16;29253:26;;;28906:373;;:331;29187:50;-1:-1:-1;;;;;;;;;;;29187:50:161;;;28906:331;;:265;29126:45;29136:35;29126:45;;;28906:265;;:204;29069:41;29079:31;29069:41;;;28906:204;;:147;29012:41;29022:31;29012:41;;;28906:147;;:90;28953:43;28963:33;28953:43;;;28906:90;;28038:83;28098:12;;;;2621:41123;28098:12;:::o;27825:38::-;27846:17;27862:1;27846:17;;;27825:38;;27391:129;27497:12;;2621:41123;27497:12;:::o;27397:83::-;27462:18;;;;27397:83;;:61;-1:-1:-1;;;;;27439:14:161;;;;;;;:::i;:::-;2621:41123;27439:19;27397:61;;","linkReferences":{},"immutableReferences":{"77308":[{"start":569,"length":32},{"start":797,"length":32},{"start":5097,"length":32},{"start":5258,"length":32},{"start":5421,"length":32},{"start":5603,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":"c6049692","exited()":"5ce6c327","inheritor()":"36a52a18","initialize(address,address,bool,uint128)":"bfa28576","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"084f443a","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"executableBalanceTopUpWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"transitionHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Mirror smart contract is responsible for storing the minimal state of programs on our platform and transitioning from one state to another by calling `performStateTransition(...)`. It's built on actor-model architecture, and in Ethereum, we implement this through \\\"request-response\\\" model. This means we have two types of events: - \\\"Requested\\\" events - when user calls one of the methods marked as \\\"Primary Gear logic\\\" we emit such an event, and all our nodes process it off-chain - \\\"Responded\\\" events - when we receive response from our nodes and transmit it back to Ethereum. All logic called within `performStateTransition(...)` and leading to methods marked as \\\"Private calls related to performStateTransition\\\" are such events. It's important not to confuse these two, as this is how we implement the actor model in Ethereum. Mirror economic model has two balances: - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`. This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`. - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain. It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform. You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users can use it for free. This is called the \\\"reverse-gas model\\\". Developer can also require the presence of `value` in the owned balance when calling methods in a WASM smart contract to protect their program from spam.\",\"errors\":{\"CallerNotRouter()\":[{\"details\":\"Thrown when the caller is not the `Router`.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the `Router` contract is paused and pause-protected Mirror call is attempted.\"}],\"EtherTransferToRouterFailed()\":[{\"details\":\"Thrown when the transfer of Ether to the `Router` fails.\"}],\"InitMessageNotCreated()\":[{\"details\":\"Thrown when the first (init) message is not created by the initializer.\"}],\"InitMessageNotCreatedAndCallerNotInitializer()\":[{\"details\":\"Thrown when the first (init) message is not created and the caller is not the initializer.\"}],\"ProgramExited()\":[{\"details\":\"Thrown when the program is exited and the call is attempted.\"}],\"ProgramNotExited()\":[{\"details\":\"Thrown when the program is not exited and the call is attempted.\"}],\"TransferLockedValueToInheritorExternalFailed()\":[{\"details\":\"Thrown when the transfer of locked value to the inheritor fails (in external call).\"}],\"WVaraTransferFailed()\":[{\"details\":\"Thrown when the transfer of Vara to the `Router` fails.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens.\",\"params\":{\"value\":\"The amount of tokens the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program.\"}},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about new message sent from program.\"}},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about failed message call from program.\"}},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued.\",\"params\":{\"callReply\":\"Indicates whether the message is sent with callReply flag. NOTE: It's event for NODES: it requires to insert message in the program's queue.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"source\":\"Message source address.\",\"value\":\"Message value.\"}},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether.\",\"params\":{\"value\":\"The amount of Ether the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"}},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message.\",\"params\":{\"payload\":\"Reply message payload.\",\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about new reply sent from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts.\",\"params\":{\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about failed reply call from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued.\",\"params\":{\"payload\":\"The payload of the reply.\",\"repliedTo\":\"The ID of the message being replied to.\",\"source\":\"The address of the reply sender.\",\"value\":\"The value of the reply. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"}},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call\",\"params\":{\"destination\":\"The address of the destination.\",\"value\":\"The amount of value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"}},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed.\",\"params\":{\"stateHash\":\"The new state hash of the program. NOTE: It's event for USERS: it informs about state changes.\"}},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit.\",\"params\":{\"inheritor\":\"The address of the inheritor.\",\"value\":\"The amount of locked value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"}},\"ValueClaimFailed(bytes32,uint128)\":{\"details\":\"Emitted when a user fails in claiming value request and doesn't receive balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value that failed to claim. NOTE: It's event for USERS: it informs about failed value claim.\"}},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value claimed. NOTE: It's event for USERS: it informs about value claimed.\"}},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"source\":\"The address of the claim sender. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}}},\"kind\":\"dev\",\"methods\":{\"claimValue(bytes32)\":{\"details\":\"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.\",\"params\":{\"_claimedId\":\"Message ID of the value to be claimed.\"}},\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable `Router` address.\",\"params\":{\"_router\":\"The address of the `Router` contract.\"}},\"executableBalanceTopUp(uint128)\":{\"details\":\"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\",\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"initialize(address,address,bool,uint128)\":{\"details\":\"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.\",\"params\":{\"_abiInterface\":\"The address of the ABI interface. This address will be displayed as \\\"proxy implementation\\\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.\",\"_initialExecutableBalance\":\"The initial executable balance to be transferred to the program.\",\"_initializer\":\"The address of the initializer. Only this address will be able to send the first (init) message.\",\"_isSmall\":\"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\"}},\"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))\":{\"details\":\"Performs state transition for the `Mirror` contract.\",\"params\":{\"_transition\":\"The state transition data.\"},\"returns\":{\"transitionHash\":\"The hash of the performed state transition.\"}},\"sendMessage(bytes,bool)\":{\"details\":\"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.\",\"params\":{\"_callReply\":\"Whether to set `call` flag in the reply message.\",\"_payload\":\"The payload of the message.\"},\"returns\":{\"messageId\":\"Message ID of the sent message.\"}},\"sendReply(bytes32,bytes)\":{\"details\":\"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.\",\"params\":{\"_payload\":\"The payload of the reply message.\",\"_repliedTo\":\"Message ID to which the reply is sent.\"}},\"transferLockedValueToInheritor()\":{\"details\":\"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted.\"}},\"stateVariables\":{\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events and re-remit then as Solidity events: - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit. Inheritor specifies the address to which all available program value should be transferred.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"Flag that indicates what type this `Mirror` smart contract is: - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation (which is usually more expensive in terms of gas to create). This is generally the more popular way and is the one you will most likely use if you are writing programs using the Sails framework. This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`. User writes WASM smart contract on Sails framework called \\\"\\u0421ounter\\\": - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)` and waits for the code to be validated. User also generates \\\"Solidity ABI Interface\\\" to allow incrementing counter or calling other methods within WASM smart contract. Next, we assume user uploads `CounterAbi` smart contract to Ethereum: ```solidity interface ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId); function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId); // ... other methods } contract CounterAbi is ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {} function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {} } ``` User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`, where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \\\"proxy implementation\\\", and Etherscan will think that `Mirror` has `CounterAbi` methods. User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract: `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror` to create new message and pass the Solidity call to the WASM smart contract on the Sails framework. WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`. - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation (which is usually less expensive in terms of gas to create). This case is suitable if the user develops WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the `Router` contract, which is the sole authority to modify the state of this contract and transfer funds from it. forge-lint: disable-next-item(screaming-snake-case-immutable)\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x0300beb47e6c99090a8775b919bd4c62f9ab055f43d9d8a113e040dbdc66af73\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://0a21a95ffc1959436f60a45d221568ca4d5ab53eaef3032b184986ba4aaf7f7b\",\"dweb:/ipfs/QmWCpmRUHu99EiWk2y3ZZEjbec3Bf56dfNzmkeoARhZQwG\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"ReplyCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUpWithPermit"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"transitionHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"devdoc":{"kind":"dev","methods":{"claimValue(bytes32)":{"details":"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.","params":{"_claimedId":"Message ID of the value to be claimed."}},"constructor":{"details":"Minimal constructor that only sets the immutable `Router` address.","params":{"_router":"The address of the `Router` contract."}},"executableBalanceTopUp(uint128)":{"details":"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":{"details":"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter.","_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"initialize(address,address,bool,uint128)":{"details":"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.","params":{"_abiInterface":"The address of the ABI interface. This address will be displayed as \"proxy implementation\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.","_initialExecutableBalance":"The initial executable balance to be transferred to the program.","_initializer":"The address of the initializer. Only this address will be able to send the first (init) message.","_isSmall":"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details."}},"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":{"details":"Performs state transition for the `Mirror` contract.","params":{"_transition":"The state transition data."},"returns":{"transitionHash":"The hash of the performed state transition."}},"sendMessage(bytes,bool)":{"details":"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.","params":{"_callReply":"Whether to set `call` flag in the reply message.","_payload":"The payload of the message."},"returns":{"messageId":"Message ID of the sent message."}},"sendReply(bytes32,bytes)":{"details":"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.","params":{"_payload":"The payload of the reply message.","_repliedTo":"Message ID to which the reply is sent."}},"transferLockedValueToInheritor()":{"details":"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Mirror.sol":{"keccak256":"0x0300beb47e6c99090a8775b919bd4c62f9ab055f43d9d8a113e040dbdc66af73","urls":["bzz-raw://0a21a95ffc1959436f60a45d221568ca4d5ab53eaef3032b184986ba4aaf7f7b","dweb:/ipfs/QmWCpmRUHu99EiWk2y3ZZEjbec3Bf56dfNzmkeoARhZQwG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":77311,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":77314,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77317,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":77320,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":77323,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":77326,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":78724,"exportedSymbols":{"ERC1967Utils":[45701],"Gear":[84099],"Hashes":[41483],"ICallbacks":[73742],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006],"Memory":[41257],"Mirror":[78723],"StorageSlot":[49089]},"nodeType":"SourceUnit","src":"74:43671:161","nodes":[{"id":77280,"nodeType":"PragmaDirective","src":"74:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77282,"nodeType":"ImportDirective","src":"100:84:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":45702,"symbolAliases":[{"foreign":{"id":77281,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"108:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77284,"nodeType":"ImportDirective","src":"185:74:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":77283,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"193:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77286,"nodeType":"ImportDirective","src":"260:60:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":77285,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"268:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77288,"nodeType":"ImportDirective","src":"321:73:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":77287,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"329:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77290,"nodeType":"ImportDirective","src":"395:46:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":73743,"symbolAliases":[{"foreign":{"id":77289,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"403:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77292,"nodeType":"ImportDirective","src":"442:40:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":77291,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"450:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77294,"nodeType":"ImportDirective","src":"483:40:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":77293,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"491:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77296,"nodeType":"ImportDirective","src":"524:50:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":77295,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"532:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77298,"nodeType":"ImportDirective","src":"575:44:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":77297,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"583:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78723,"nodeType":"ContractDefinition","src":"2621:41123:161","nodes":[{"id":77305,"nodeType":"VariableDeclaration","src":"2900:85:161","nodes":[],"constant":true,"documentation":{"id":77302,"nodeType":"StructuredDocumentation","src":"2654:241:161","text":" @dev Special address to which Sails contract sends messages so that Mirror can decode events\n and re-remit then as Solidity events:\n - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"2926:14:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77303,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":77304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:42:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":77308,"nodeType":"VariableDeclaration","src":"3228:31:161","nodes":[],"baseFunctions":[74295],"constant":false,"documentation":{"id":77306,"nodeType":"StructuredDocumentation","src":"2992:231:161","text":" @dev Address of the `Router` contract, which is the sole authority\n to modify the state of this contract and transfer funds from it.\n forge-lint: disable-next-item(screaming-snake-case-immutable)"},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"3253:6:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77307,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77311,"nodeType":"VariableDeclaration","src":"3324:24:161","nodes":[],"baseFunctions":[74301],"constant":false,"documentation":{"id":77309,"nodeType":"StructuredDocumentation","src":"3266:53:161","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3339:9:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3324:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77314,"nodeType":"VariableDeclaration","src":"3558:20:161","nodes":[],"baseFunctions":[74307],"constant":false,"documentation":{"id":77312,"nodeType":"StructuredDocumentation","src":"3355:198:161","text":" @dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"3573:5:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3558:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77317,"nodeType":"VariableDeclaration","src":"3668:18:161","nodes":[],"baseFunctions":[74313],"constant":false,"documentation":{"id":77315,"nodeType":"StructuredDocumentation","src":"3585:78:161","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"3680:6:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77316,"name":"bool","nodeType":"ElementaryTypeName","src":"3668:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":77320,"nodeType":"VariableDeclaration","src":"3940:24:161","nodes":[],"baseFunctions":[74319],"constant":false,"documentation":{"id":77318,"nodeType":"StructuredDocumentation","src":"3741:194:161","text":" @dev The address of the inheritor, which is set by the program on exit.\n Inheritor specifies the address to which all available program value should be transferred."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"3955:9:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77319,"name":"address","nodeType":"ElementaryTypeName","src":"3940:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77323,"nodeType":"VariableDeclaration","src":"4050:26:161","nodes":[],"baseFunctions":[74325],"constant":false,"documentation":{"id":77321,"nodeType":"StructuredDocumentation","src":"3971:74:161","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"4065:11:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77322,"name":"address","nodeType":"ElementaryTypeName","src":"4050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77326,"nodeType":"VariableDeclaration","src":"7411:12:161","nodes":[],"constant":false,"documentation":{"id":77324,"nodeType":"StructuredDocumentation","src":"4083:3323:161","text":" @dev Flag that indicates what type this `Mirror` smart contract is:\n - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation\n (which is usually more expensive in terms of gas to create). This is generally the\n more popular way and is the one you will most likely use if you are writing programs using the Sails framework.\n This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and\n new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`.\n User writes WASM smart contract on Sails framework called \"Сounter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)`\n and waits for the code to be validated.\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`,\n where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \"proxy implementation\",\n and Etherscan will think that `Mirror` has `CounterAbi` methods.\n User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract:\n `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call\n and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror`\n to create new message and pass the Solidity call to the WASM smart contract on the Sails framework.\n WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`.\n - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation\n (which is usually less expensive in terms of gas to create). This case is suitable if the user develops\n WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors\n (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`."},"mutability":"mutable","name":"isSmall","nameLocation":"7416:7:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77325,"name":"bool","nodeType":"ElementaryTypeName","src":"7411:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":77337,"nodeType":"FunctionDefinition","src":"7585:62:161","nodes":[],"body":{"id":77336,"nodeType":"Block","src":"7614:33:161","nodes":[],"statements":[{"expression":{"id":77334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77332,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"7624:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77333,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77329,"src":"7633:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7624:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77335,"nodeType":"ExpressionStatement","src":"7624:16:161"}]},"documentation":{"id":77327,"nodeType":"StructuredDocumentation","src":"7430:150:161","text":" @dev Minimal constructor that only sets the immutable `Router` address.\n @param _router The address of the `Router` contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77329,"mutability":"mutable","name":"_router","nameLocation":"7605:7:161","nodeType":"VariableDeclaration","scope":77337,"src":"7597:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77328,"name":"address","nodeType":"ElementaryTypeName","src":"7597:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7596:17:161"},"returnParameters":{"id":77331,"nodeType":"ParameterList","parameters":[],"src":"7614:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77345,"nodeType":"ModifierDefinition","src":"7804:83:161","nodes":[],"body":{"id":77344,"nodeType":"Block","src":"7836:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77340,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77358,"src":"7846:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77342,"nodeType":"ExpressionStatement","src":"7846:23:161"},{"id":77343,"nodeType":"PlaceholderStatement","src":"7879:1:161"}]},"documentation":{"id":77338,"nodeType":"StructuredDocumentation","src":"7676:123:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"7813:20:161","parameters":{"id":77339,"nodeType":"ParameterList","parameters":[],"src":"7833:2:161"},"virtual":false,"visibility":"internal"},{"id":77358,"nodeType":"FunctionDefinition","src":"7993:107:161","nodes":[],"body":{"id":77357,"nodeType":"Block","src":"8040:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77350,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"8058:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8066:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8058:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77353,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74253,"src":"8069:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77349,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8050:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8050:43:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77356,"nodeType":"ExpressionStatement","src":"8050:43:161"}]},"documentation":{"id":77346,"nodeType":"StructuredDocumentation","src":"7893:95:161","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"8002:21:161","parameters":{"id":77347,"nodeType":"ParameterList","parameters":[],"src":"8023:2:161"},"returnParameters":{"id":77348,"nodeType":"ParameterList","parameters":[],"src":"8040:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77366,"nodeType":"ModifierDefinition","src":"8267:109:161","nodes":[],"body":{"id":77365,"nodeType":"Block","src":"8312:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77361,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77384,"src":"8322:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8322:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77363,"nodeType":"ExpressionStatement","src":"8322:36:161"},{"id":77364,"nodeType":"PlaceholderStatement","src":"8368:1:161"}]},"documentation":{"id":77359,"nodeType":"StructuredDocumentation","src":"8106:156:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"8276:33:161","parameters":{"id":77360,"nodeType":"ParameterList","parameters":[],"src":"8309:2:161"},"virtual":false,"visibility":"internal"},{"id":77384,"nodeType":"FunctionDefinition","src":"8515:172:161","nodes":[],"body":{"id":77383,"nodeType":"Block","src":"8575:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77371,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"8593:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8601:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8593:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77374,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8606:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8610:6:161","memberName":"sender","nodeType":"MemberAccess","src":"8606:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77376,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"8620:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8606:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8593:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77379,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"8633:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8633:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77370,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8585:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8585:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77382,"nodeType":"ExpressionStatement","src":"8585:95:161"}]},"documentation":{"id":77367,"nodeType":"StructuredDocumentation","src":"8382:128:161","text":" @dev Internal function to check if the init message has been created before or the caller is the initializer."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"8524:34:161","parameters":{"id":77368,"nodeType":"ParameterList","parameters":[],"src":"8558:2:161"},"returnParameters":{"id":77369,"nodeType":"ParameterList","parameters":[],"src":"8575:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77392,"nodeType":"ModifierDefinition","src":"8798:67:161","nodes":[],"body":{"id":77391,"nodeType":"Block","src":"8822:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77387,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77404,"src":"8832:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8832:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77389,"nodeType":"ExpressionStatement","src":"8832:15:161"},{"id":77390,"nodeType":"PlaceholderStatement","src":"8857:1:161"}]},"documentation":{"id":77385,"nodeType":"StructuredDocumentation","src":"8693:100:161","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"8807:12:161","parameters":{"id":77386,"nodeType":"ParameterList","parameters":[],"src":"8819:2:161"},"virtual":false,"visibility":"internal"},{"id":77404,"nodeType":"FunctionDefinition","src":"8952:89:161","nodes":[],"body":{"id":77403,"nodeType":"Block","src":"8991:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9009:7:161","subExpression":{"id":77397,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"9010:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77399,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74259,"src":"9018:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9018:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9001:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9001:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77402,"nodeType":"ExpressionStatement","src":"9001:33:161"}]},"documentation":{"id":77393,"nodeType":"StructuredDocumentation","src":"8871:76:161","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"8961:13:161","parameters":{"id":77394,"nodeType":"ParameterList","parameters":[],"src":"8974:2:161"},"returnParameters":{"id":77395,"nodeType":"ParameterList","parameters":[],"src":"8991:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77412,"nodeType":"ModifierDefinition","src":"9152:67:161","nodes":[],"body":{"id":77411,"nodeType":"Block","src":"9176:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77407,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77423,"src":"9186:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77409,"nodeType":"ExpressionStatement","src":"9186:15:161"},{"id":77410,"nodeType":"PlaceholderStatement","src":"9211:1:161"}]},"documentation":{"id":77405,"nodeType":"StructuredDocumentation","src":"9047:100:161","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"9161:12:161","parameters":{"id":77406,"nodeType":"ParameterList","parameters":[],"src":"9173:2:161"},"virtual":false,"visibility":"internal"},{"id":77423,"nodeType":"FunctionDefinition","src":"9306:91:161","nodes":[],"body":{"id":77422,"nodeType":"Block","src":"9345:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77417,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"9363:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77418,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74262,"src":"9371:16:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9371:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9355:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9355:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77421,"nodeType":"ExpressionStatement","src":"9355:35:161"}]},"documentation":{"id":77413,"nodeType":"StructuredDocumentation","src":"9225:76:161","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"9315:13:161","parameters":{"id":77414,"nodeType":"ParameterList","parameters":[],"src":"9328:2:161"},"returnParameters":{"id":77415,"nodeType":"ParameterList","parameters":[],"src":"9345:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77431,"nodeType":"ModifierDefinition","src":"9503:63:161","nodes":[],"body":{"id":77430,"nodeType":"Block","src":"9525:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77426,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77445,"src":"9535:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77428,"nodeType":"ExpressionStatement","src":"9535:13:161"},{"id":77429,"nodeType":"PlaceholderStatement","src":"9558:1:161"}]},"documentation":{"id":77424,"nodeType":"StructuredDocumentation","src":"9403:95:161","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"9512:10:161","parameters":{"id":77425,"nodeType":"ParameterList","parameters":[],"src":"9522:2:161"},"virtual":false,"visibility":"internal"},{"id":77445,"nodeType":"FunctionDefinition","src":"9658:102:161","nodes":[],"body":{"id":77444,"nodeType":"Block","src":"9695:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77436,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9713:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9717:6:161","memberName":"sender","nodeType":"MemberAccess","src":"9713:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77438,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"9727:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9713:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77440,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74265,"src":"9735:15:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9735:17:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77435,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9705:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9705:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77443,"nodeType":"ExpressionStatement","src":"9705:48:161"}]},"documentation":{"id":77432,"nodeType":"StructuredDocumentation","src":"9572:81:161","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"9667:11:161","parameters":{"id":77433,"nodeType":"ParameterList","parameters":[],"src":"9678:2:161"},"returnParameters":{"id":77434,"nodeType":"ParameterList","parameters":[],"src":"9695:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77453,"nodeType":"ModifierDefinition","src":"9882:69:161","nodes":[],"body":{"id":77452,"nodeType":"Block","src":"9907:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77448,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77469,"src":"9917:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9917:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77450,"nodeType":"ExpressionStatement","src":"9917:16:161"},{"id":77451,"nodeType":"PlaceholderStatement","src":"9943:1:161"}]},"documentation":{"id":77446,"nodeType":"StructuredDocumentation","src":"9766:111:161","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"9891:13:161","parameters":{"id":77447,"nodeType":"ParameterList","parameters":[],"src":"9904:2:161"},"virtual":false,"visibility":"internal"},{"id":77469,"nodeType":"FunctionDefinition","src":"10043:108:161","nodes":[],"body":{"id":77468,"nodeType":"Block","src":"10083:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10101:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77459,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10110:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77458,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"10102:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74990_$","typeString":"type(contract IRouter)"}},"id":77460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":77461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":74753,"src":"10102:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":77462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77464,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74268,"src":"10128:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10128:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10093:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10093:51:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77467,"nodeType":"ExpressionStatement","src":"10093:51:161"}]},"documentation":{"id":77454,"nodeType":"StructuredDocumentation","src":"9957:81:161","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"10052:14:161","parameters":{"id":77455,"nodeType":"ParameterList","parameters":[],"src":"10066:2:161"},"returnParameters":{"id":77456,"nodeType":"ParameterList","parameters":[],"src":"10083:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77480,"nodeType":"ModifierDefinition","src":"10289:89:161","nodes":[],"body":{"id":77479,"nodeType":"Block","src":"10328:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77475,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"10354:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77474,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"10338:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10338:22:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77477,"nodeType":"ExpressionStatement","src":"10338:22:161"},{"id":77478,"nodeType":"PlaceholderStatement","src":"10370:1:161"}]},"documentation":{"id":77470,"nodeType":"StructuredDocumentation","src":"10157:127:161","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"10298:14:161","parameters":{"id":77473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77472,"mutability":"mutable","name":"value","nameLocation":"10321:5:161","nodeType":"VariableDeclaration","scope":77480,"src":"10313:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77471,"name":"uint128","nodeType":"ElementaryTypeName","src":"10313:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10312:15:161"},"virtual":false,"visibility":"internal"},{"id":77510,"nodeType":"FunctionDefinition","src":"10487:228:161","nodes":[],"body":{"id":77509,"nodeType":"Block","src":"10536:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77483,"src":"10550:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10559:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10550:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77508,"nodeType":"IfStatement","src":"10546:163:161","trueBody":{"id":77507,"nodeType":"Block","src":"10562:147:161","statements":[{"assignments":[77490],"declarations":[{"constant":false,"id":77490,"mutability":"mutable","name":"success","nameLocation":"10581:7:161","nodeType":"VariableDeclaration","scope":77507,"src":"10576:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77489,"name":"bool","nodeType":"ElementaryTypeName","src":"10576:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77500,"initialValue":{"arguments":[{"expression":{"id":77495,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10619:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10623:6:161","memberName":"sender","nodeType":"MemberAccess","src":"10619:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10631:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77483,"src":"10639:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":77492,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10598:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77491,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78631,"src":"10591:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75006_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":77494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10606:12:161","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"10591:27:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:54:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10576:69:161"},{"expression":{"arguments":[{"id":77502,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77490,"src":"10667:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77503,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74271,"src":"10676:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10676:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77501,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10659:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77506,"nodeType":"ExpressionStatement","src":"10659:39:161"}]}}]},"documentation":{"id":77481,"nodeType":"StructuredDocumentation","src":"10384:98:161","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"10496:15:161","parameters":{"id":77484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77483,"mutability":"mutable","name":"value","nameLocation":"10520:5:161","nodeType":"VariableDeclaration","scope":77510,"src":"10512:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77482,"name":"uint128","nodeType":"ElementaryTypeName","src":"10512:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10511:15:161"},"returnParameters":{"id":77485,"nodeType":"ParameterList","parameters":[],"src":"10536:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77537,"nodeType":"FunctionDefinition","src":"10854:215:161","nodes":[],"body":{"id":77536,"nodeType":"Block","src":"10904:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77516,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"10918:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10927:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10918:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77535,"nodeType":"IfStatement","src":"10914:149:161","trueBody":{"id":77534,"nodeType":"Block","src":"10930:133:161","statements":[{"assignments":[77520,null],"declarations":[{"constant":false,"id":77520,"mutability":"mutable","name":"success","nameLocation":"10950:7:161","nodeType":"VariableDeclaration","scope":77534,"src":"10945:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77519,"name":"bool","nodeType":"ElementaryTypeName","src":"10945:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77527,"initialValue":{"arguments":[{"hexValue":"","id":77525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10988:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":77521,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10962:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10969:4:161","memberName":"call","nodeType":"MemberAccess","src":"10962:11:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":77523,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"10981:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"10962:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10962:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"10944:47:161"},{"expression":{"arguments":[{"id":77529,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77520,"src":"11013:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77530,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74274,"src":"11022:27:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11022:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11005:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11005:47:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77533,"nodeType":"ExpressionStatement","src":"11005:47:161"}]}}]},"documentation":{"id":77511,"nodeType":"StructuredDocumentation","src":"10721:128:161","text":" @dev Non-zero Ether value must be transferred from source to `Router` in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"10863:16:161","parameters":{"id":77514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77513,"mutability":"mutable","name":"value","nameLocation":"10888:5:161","nodeType":"VariableDeclaration","scope":77537,"src":"10880:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77512,"name":"uint128","nodeType":"ElementaryTypeName","src":"10880:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10879:15:161"},"returnParameters":{"id":77515,"nodeType":"ParameterList","parameters":[],"src":"10904:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77555,"nodeType":"FunctionDefinition","src":"11454:216:161","nodes":[],"body":{"id":77554,"nodeType":"Block","src":"11612:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77550,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77540,"src":"11642:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77551,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77542,"src":"11652:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77549,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77922,"src":"11629:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":77552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11629:34:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77548,"id":77553,"nodeType":"Return","src":"11622:41:161"}]},"baseFunctions":[74335],"documentation":{"id":77538,"nodeType":"StructuredDocumentation","src":"11124:325:161","text":" @dev Sends message to the program.\n As result of execution, the `MessageQueueingRequested` event will be emitted.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":77545,"kind":"modifierInvocation","modifierName":{"id":77544,"name":"whenNotPaused","nameLocations":["11558:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"11558:13:161"},"nodeType":"ModifierInvocation","src":"11558:13:161"}],"name":"sendMessage","nameLocation":"11463:11:161","parameters":{"id":77543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77540,"mutability":"mutable","name":"_payload","nameLocation":"11490:8:161","nodeType":"VariableDeclaration","scope":77555,"src":"11475:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77539,"name":"bytes","nodeType":"ElementaryTypeName","src":"11475:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77542,"mutability":"mutable","name":"_callReply","nameLocation":"11505:10:161","nodeType":"VariableDeclaration","scope":77555,"src":"11500:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77541,"name":"bool","nodeType":"ElementaryTypeName","src":"11500:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11474:42:161"},"returnParameters":{"id":77548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77547,"mutability":"mutable","name":"messageId","nameLocation":"11597:9:161","nodeType":"VariableDeclaration","scope":77555,"src":"11589:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11589:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11588:19:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77590,"nodeType":"FunctionDefinition","src":"12211:340:161","nodes":[],"body":{"id":77589,"nodeType":"Block","src":"12384:167:161","nodes":[],"statements":[{"assignments":[77570],"declarations":[{"constant":false,"id":77570,"mutability":"mutable","name":"_value","nameLocation":"12402:6:161","nodeType":"VariableDeclaration","scope":77589,"src":"12394:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77569,"name":"uint128","nodeType":"ElementaryTypeName","src":"12394:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77576,"initialValue":{"arguments":[{"expression":{"id":77573,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12419:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12423:5:161","memberName":"value","nodeType":"MemberAccess","src":"12419:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12411:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77571,"name":"uint128","nodeType":"ElementaryTypeName","src":"12411:7:161","typeDescriptions":{}}},"id":77575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12411:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"12394:35:161"},{"expression":{"arguments":[{"id":77578,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77570,"src":"12457:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77577,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"12440:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12440:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77580,"nodeType":"ExpressionStatement","src":"12440:24:161"},{"eventCall":{"arguments":[{"id":77582,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77558,"src":"12503:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77583,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12515:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12519:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12515:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77585,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77560,"src":"12527:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77586,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77570,"src":"12537:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77581,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"12480:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":77587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12480:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77588,"nodeType":"EmitStatement","src":"12475:69:161"}]},"baseFunctions":[74343],"documentation":{"id":77556,"nodeType":"StructuredDocumentation","src":"11676:530:161","text":" @dev Sends reply message to the program.\n Note that this function does not return `bytes32 messageId` of the sent message,\n if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)`\n or use SDK in `ethexe/sdk/src/mirror.rs`.\n As result of execution, the `ReplyQueueingRequested` event will be emitted.\n @param _repliedTo Message ID to which the reply is sent.\n @param _payload The payload of the reply message."},"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":77563,"kind":"modifierInvocation","modifierName":{"id":77562,"name":"whenNotPaused","nameLocations":["12316:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"12316:13:161"},"nodeType":"ModifierInvocation","src":"12316:13:161"},{"id":77565,"kind":"modifierInvocation","modifierName":{"id":77564,"name":"onlyIfActive","nameLocations":["12338:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"12338:12:161"},"nodeType":"ModifierInvocation","src":"12338:12:161"},{"id":77567,"kind":"modifierInvocation","modifierName":{"id":77566,"name":"onlyAfterInitMessage","nameLocations":["12359:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77345,"src":"12359:20:161"},"nodeType":"ModifierInvocation","src":"12359:20:161"}],"name":"sendReply","nameLocation":"12220:9:161","parameters":{"id":77561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77558,"mutability":"mutable","name":"_repliedTo","nameLocation":"12238:10:161","nodeType":"VariableDeclaration","scope":77590,"src":"12230:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12230:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77560,"mutability":"mutable","name":"_payload","nameLocation":"12265:8:161","nodeType":"VariableDeclaration","scope":77590,"src":"12250:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77559,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12229:45:161"},"returnParameters":{"id":77568,"nodeType":"ParameterList","parameters":[],"src":"12384:0:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77609,"nodeType":"FunctionDefinition","src":"12841:165:161","nodes":[],"body":{"id":77608,"nodeType":"Block","src":"12938:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77603,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77593,"src":"12976:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77604,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12988:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12992:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12988:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77602,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"12953:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":77606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12953:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77607,"nodeType":"EmitStatement","src":"12948:51:161"}]},"baseFunctions":[74349],"documentation":{"id":77591,"nodeType":"StructuredDocumentation","src":"12624:212:161","text":" @dev Claim value from message in mailbox.\n As result of execution, the `ValueClaimingRequested` event will be emitted.\n @param _claimedId Message ID of the value to be claimed."},"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":77596,"kind":"modifierInvocation","modifierName":{"id":77595,"name":"whenNotPaused","nameLocations":["12890:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"12890:13:161"},"nodeType":"ModifierInvocation","src":"12890:13:161"},{"id":77598,"kind":"modifierInvocation","modifierName":{"id":77597,"name":"onlyIfActive","nameLocations":["12904:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"12904:12:161"},"nodeType":"ModifierInvocation","src":"12904:12:161"},{"id":77600,"kind":"modifierInvocation","modifierName":{"id":77599,"name":"onlyAfterInitMessage","nameLocations":["12917:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77345,"src":"12917:20:161"},"nodeType":"ModifierInvocation","src":"12917:20:161"}],"name":"claimValue","nameLocation":"12850:10:161","parameters":{"id":77594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77593,"mutability":"mutable","name":"_claimedId","nameLocation":"12869:10:161","nodeType":"VariableDeclaration","scope":77609,"src":"12861:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12861:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12860:20:161"},"returnParameters":{"id":77601,"nodeType":"ParameterList","parameters":[],"src":"12938:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77627,"nodeType":"FunctionDefinition","src":"13307:168:161","nodes":[],"body":{"id":77626,"nodeType":"Block","src":"13414:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77623,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77612,"src":"13461:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77622,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"13429:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13429:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77625,"nodeType":"EmitStatement","src":"13424:44:161"}]},"baseFunctions":[74355],"documentation":{"id":77610,"nodeType":"StructuredDocumentation","src":"13012:290:161","text":" @dev Tops up the executable balance of the program.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."},"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":77615,"kind":"modifierInvocation","modifierName":{"id":77614,"name":"whenNotPaused","nameLocations":["13364:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"13364:13:161"},"nodeType":"ModifierInvocation","src":"13364:13:161"},{"id":77617,"kind":"modifierInvocation","modifierName":{"id":77616,"name":"onlyIfActive","nameLocations":["13378:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"13378:12:161"},"nodeType":"ModifierInvocation","src":"13378:12:161"},{"arguments":[{"id":77619,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77612,"src":"13406:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":77620,"kind":"modifierInvocation","modifierName":{"id":77618,"name":"retrievingVara","nameLocations":["13391:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":77480,"src":"13391:14:161"},"nodeType":"ModifierInvocation","src":"13391:22:161"}],"name":"executableBalanceTopUp","nameLocation":"13316:22:161","parameters":{"id":77613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77612,"mutability":"mutable","name":"_value","nameLocation":"13347:6:161","nodeType":"VariableDeclaration","scope":77627,"src":"13339:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77611,"name":"uint128","nodeType":"ElementaryTypeName","src":"13339:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13338:16:161"},"returnParameters":{"id":77621,"nodeType":"ParameterList","parameters":[],"src":"13414:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77675,"nodeType":"FunctionDefinition","src":"14182:374:161","nodes":[],"body":{"id":77674,"nodeType":"Block","src":"14357:199:161","nodes":[],"statements":[{"clauses":[{"block":{"id":77661,"nodeType":"Block","src":"14451:2:161","statements":[]},"errorName":"","id":77662,"nodeType":"TryCatchClause","src":"14451:2:161"},{"block":{"id":77663,"nodeType":"Block","src":"14460:2:161","statements":[]},"errorName":"","id":77664,"nodeType":"TryCatchClause","src":"14454:8:161"}],"externalCall":{"arguments":[{"expression":{"id":77649,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14393:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14397:6:161","memberName":"sender","nodeType":"MemberAccess","src":"14393:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77653,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14413:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14405:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77651,"name":"address","nodeType":"ElementaryTypeName","src":"14405:7:161","typeDescriptions":{}}},"id":77654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14405:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77655,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14420:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77656,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77632,"src":"14428:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77657,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77634,"src":"14439:2:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":77658,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77636,"src":"14443:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77659,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77638,"src":"14447:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":77646,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"14378:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77645,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78631,"src":"14371:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75006_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":77648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14386:6:161","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"14371:21:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":77660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:79:161","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77665,"nodeType":"TryStatement","src":"14367:95:161"},{"expression":{"arguments":[{"id":77667,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14487:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77666,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"14471:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14471:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77669,"nodeType":"ExpressionStatement","src":"14471:23:161"},{"eventCall":{"arguments":[{"id":77671,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14542:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77670,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"14510:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14510:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77673,"nodeType":"EmitStatement","src":"14505:44:161"}]},"baseFunctions":[74369],"documentation":{"id":77628,"nodeType":"StructuredDocumentation","src":"13481:696:161","text":" @dev Tops up the executable balance of the program.\n Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router`\n using permit signature, which can save one transaction for user.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"c6049692","implemented":true,"kind":"function","modifiers":[{"id":77641,"kind":"modifierInvocation","modifierName":{"id":77640,"name":"whenNotPaused","nameLocations":["14318:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"14318:13:161"},"nodeType":"ModifierInvocation","src":"14318:13:161"},{"id":77643,"kind":"modifierInvocation","modifierName":{"id":77642,"name":"onlyIfActive","nameLocations":["14340:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"14340:12:161"},"nodeType":"ModifierInvocation","src":"14340:12:161"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"14191:32:161","parameters":{"id":77639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77630,"mutability":"mutable","name":"_value","nameLocation":"14232:6:161","nodeType":"VariableDeclaration","scope":77675,"src":"14224:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77629,"name":"uint128","nodeType":"ElementaryTypeName","src":"14224:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77632,"mutability":"mutable","name":"_deadline","nameLocation":"14248:9:161","nodeType":"VariableDeclaration","scope":77675,"src":"14240:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77631,"name":"uint256","nodeType":"ElementaryTypeName","src":"14240:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77634,"mutability":"mutable","name":"_v","nameLocation":"14265:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14259:8:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77633,"name":"uint8","nodeType":"ElementaryTypeName","src":"14259:5:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":77636,"mutability":"mutable","name":"_r","nameLocation":"14277:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14269:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14269:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77638,"mutability":"mutable","name":"_s","nameLocation":"14289:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14281:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14281:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14223:69:161"},"returnParameters":{"id":77644,"nodeType":"ParameterList","parameters":[],"src":"14357:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77693,"nodeType":"FunctionDefinition","src":"14802:208:161","nodes":[],"body":{"id":77692,"nodeType":"Block","src":"14867:143:161","nodes":[],"statements":[{"assignments":[null,77682],"declarations":[null,{"constant":false,"id":77682,"mutability":"mutable","name":"success","nameLocation":"14885:7:161","nodeType":"VariableDeclaration","scope":77692,"src":"14880:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77681,"name":"bool","nodeType":"ElementaryTypeName","src":"14880:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77685,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77683,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"14896:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14896:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"14877:52:161"},{"expression":{"arguments":[{"id":77687,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77682,"src":"14947:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77688,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74277,"src":"14956:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77686,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14939:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14939:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77691,"nodeType":"ExpressionStatement","src":"14939:64:161"}]},"baseFunctions":[74373],"documentation":{"id":77676,"nodeType":"StructuredDocumentation","src":"14562:235:161","text":" @dev Transfers locked value to the inheritor.\n Note that this function can be called only after program exited.\n As result of execution, the `LockedValueTransferRequested` event will be emitted."},"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":77679,"kind":"modifierInvocation","modifierName":{"id":77678,"name":"whenNotPaused","nameLocations":["14853:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"14853:13:161"},"nodeType":"ModifierInvocation","src":"14853:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"14811:30:161","parameters":{"id":77677,"nodeType":"ParameterList","parameters":[],"src":"14841:2:161"},"returnParameters":{"id":77680,"nodeType":"ParameterList","parameters":[],"src":"14867:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77772,"nodeType":"FunctionDefinition","src":"16008:749:161","nodes":[],"body":{"id":77771,"nodeType":"Block","src":"16163:594:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77708,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"16181:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16204:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":77710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16196:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77709,"name":"address","nodeType":"ElementaryTypeName","src":"16196:7:161","typeDescriptions":{}}},"id":77712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16196:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16181:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77714,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74279,"src":"16208:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16208:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16173:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16173:59:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77717,"nodeType":"ExpressionStatement","src":"16173:59:161"},{"expression":{"arguments":[{"id":77720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16251:8:161","subExpression":{"id":77719,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"16252:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77721,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74281,"src":"16261:17:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16261:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77718,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16243:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16243:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77724,"nodeType":"ExpressionStatement","src":"16243:38:161"},{"assignments":[77729],"declarations":[{"constant":false,"id":77729,"mutability":"mutable","name":"implementationSlot","nameLocation":"16324:18:161","nodeType":"VariableDeclaration","scope":77771,"src":"16292:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":77728,"nodeType":"UserDefinedTypeName","pathNode":{"id":77727,"name":"StorageSlot.AddressSlot","nameLocations":["16292:11:161","16304:11:161"],"nodeType":"IdentifierPath","referencedDeclaration":48971,"src":"16292:23:161"},"referencedDeclaration":48971,"src":"16292:23:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":77735,"initialValue":{"arguments":[{"expression":{"id":77732,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"16384:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":77733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16397:19:161","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":45422,"src":"16384:32:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77730,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"16357:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16369:14:161","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":49000,"src":"16357:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48971_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":77734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16357:60:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16292:125:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77737,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"16436:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16455:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16436:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16472:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":77740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16464:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77739,"name":"address","nodeType":"ElementaryTypeName","src":"16464:7:161","typeDescriptions":{}}},"id":77742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16464:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16436:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77744,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74283,"src":"16476:22:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16428:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77747,"nodeType":"ExpressionStatement","src":"16428:73:161"},{"expression":{"id":77750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77748,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"16512:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77749,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77696,"src":"16526:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16512:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77751,"nodeType":"ExpressionStatement","src":"16512:26:161"},{"expression":{"id":77754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77752,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"16548:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77753,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77700,"src":"16558:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16548:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77755,"nodeType":"ExpressionStatement","src":"16548:18:161"},{"expression":{"id":77760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77756,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"16576:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16595:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16576:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77759,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77698,"src":"16603:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16576:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77761,"nodeType":"ExpressionStatement","src":"16576:40:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77762,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77702,"src":"16631:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16660:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16631:30:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77770,"nodeType":"IfStatement","src":"16627:124:161","trueBody":{"id":77769,"nodeType":"Block","src":"16663:88:161","statements":[{"eventCall":{"arguments":[{"id":77766,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77702,"src":"16714:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77765,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"16682:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16682:58:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77768,"nodeType":"EmitStatement","src":"16677:63:161"}]}}]},"baseFunctions":[74385],"documentation":{"id":77694,"nodeType":"StructuredDocumentation","src":"15070:933:161","text":" @dev Initializes the contract with the given parameters.\n Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default,\n so we do the initialization separately after creating `Mirror` in this method.\n @param _initializer The address of the initializer. Only this address will be able to send the first (init) message.\n @param _abiInterface The address of the ABI interface. This address will be displayed as \"proxy implementation\"\n and is necessary to show the available methods of `Mirror` smart contract on Etherscan.\n In case it is a Sails framework smart contract, the user can set his own ABI.\n @param _isSmall The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\n @param _initialExecutableBalance The initial executable balance to be transferred to the program."},"functionSelector":"bfa28576","implemented":true,"kind":"function","modifiers":[{"id":77705,"kind":"modifierInvocation","modifierName":{"id":77704,"name":"onlyRouter","nameLocations":["16148:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77431,"src":"16148:10:161"},"nodeType":"ModifierInvocation","src":"16148:10:161"}],"name":"initialize","nameLocation":"16017:10:161","parameters":{"id":77703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77696,"mutability":"mutable","name":"_initializer","nameLocation":"16036:12:161","nodeType":"VariableDeclaration","scope":77772,"src":"16028:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77695,"name":"address","nodeType":"ElementaryTypeName","src":"16028:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77698,"mutability":"mutable","name":"_abiInterface","nameLocation":"16058:13:161","nodeType":"VariableDeclaration","scope":77772,"src":"16050:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77697,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77700,"mutability":"mutable","name":"_isSmall","nameLocation":"16078:8:161","nodeType":"VariableDeclaration","scope":77772,"src":"16073:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77699,"name":"bool","nodeType":"ElementaryTypeName","src":"16073:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":77702,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"16096:25:161","nodeType":"VariableDeclaration","scope":77772,"src":"16088:33:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77701,"name":"uint128","nodeType":"ElementaryTypeName","src":"16088:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16027:95:161"},"returnParameters":{"id":77706,"nodeType":"ParameterList","parameters":[],"src":"16163:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77872,"nodeType":"FunctionDefinition","src":"16971:1748:161","nodes":[],"body":{"id":77871,"nodeType":"Block","src":"17143:1576:161","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77784,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17254:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"17254:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":77788,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17285:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17277:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77786,"name":"address","nodeType":"ElementaryTypeName","src":"17277:7:161","typeDescriptions":{}}},"id":77789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17277:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17254:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77791,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74285,"src":"17292:14:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77783,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17246:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17246:63:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77794,"nodeType":"ExpressionStatement","src":"17246:63:161"},{"condition":{"expression":{"id":77795,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17442:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17454:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"17442:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":77803,"nodeType":"IfStatement","src":"17438:113:161","trueBody":{"id":77802,"nodeType":"Block","src":"17482:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":77798,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17513:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"17513:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77797,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"17496:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17496:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77801,"nodeType":"ExpressionStatement","src":"17496:44:161"}]}},{"assignments":[77806],"declarations":[{"constant":false,"id":77806,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"17637:18:161","nodeType":"VariableDeclaration","scope":77871,"src":"17629:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17629:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":77811,"initialValue":{"arguments":[{"expression":{"id":77808,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17672:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17684:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"17672:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":77807,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78053,"src":"17658:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":77810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17658:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17629:64:161"},{"assignments":[77814],"declarations":[{"constant":false,"id":77814,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"17779:15:161","nodeType":"VariableDeclaration","scope":77871,"src":"17771:23:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17771:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send value for each claim.","id":77819,"initialValue":{"arguments":[{"expression":{"id":77816,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17810:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17822:11:161","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":83161,"src":"17810:23:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":77815,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78561,"src":"17797:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":77818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17797:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17771:63:161"},{"condition":{"expression":{"id":77820,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17914:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17926:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"17914:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":77840,"nodeType":"Block","src":"18001:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77829,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18023:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18035:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"18023:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18056:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":77832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18048:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77831,"name":"address","nodeType":"ElementaryTypeName","src":"18048:7:161","typeDescriptions":{}}},"id":77834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18048:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18023:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77836,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74287,"src":"18060:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18060:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18015:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18015:67:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77839,"nodeType":"ExpressionStatement","src":"18015:67:161"}]},"id":77841,"nodeType":"IfStatement","src":"17910:183:161","trueBody":{"id":77827,"nodeType":"Block","src":"17934:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":77823,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17962:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17974:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"17962:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77822,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78594,"src":"17948:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17948:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77826,"nodeType":"ExpressionStatement","src":"17948:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77842,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"18181:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77843,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18194:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18194:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18181:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":77852,"nodeType":"IfStatement","src":"18177:110:161","trueBody":{"id":77851,"nodeType":"Block","src":"18220:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":77847,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18251:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18263:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18251:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77846,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78609,"src":"18234:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18234:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77850,"nodeType":"ExpressionStatement","src":"18234:42:161"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":77855,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18425:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18437:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"18425:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77857,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18458:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18470:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18458:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77859,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18496:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18508:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"18496:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":77861,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18528:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18540:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"18528:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77863,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18563:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"18563:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":77865,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18603:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18615:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"18603:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":77867,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77814,"src":"18655:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77868,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77806,"src":"18684:18:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77853,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"18387:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":77854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18392:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":83450,"src":"18387:24:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32) pure returns (bytes32)"}},"id":77869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18387:325:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77782,"id":77870,"nodeType":"Return","src":"18380:332:161"}]},"baseFunctions":[74394],"documentation":{"id":77773,"nodeType":"StructuredDocumentation","src":"16763:203:161","text":" @dev Performs state transition for the `Mirror` contract.\n @param _transition The state transition data.\n @return transitionHash The hash of the performed state transition."},"functionSelector":"084f443a","implemented":true,"kind":"function","modifiers":[{"id":77779,"kind":"modifierInvocation","modifierName":{"id":77778,"name":"onlyRouter","nameLocations":["17087:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77431,"src":"17087:10:161"},"nodeType":"ModifierInvocation","src":"17087:10:161"}],"name":"performStateTransition","nameLocation":"16980:22:161","parameters":{"id":77777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77776,"mutability":"mutable","name":"_transition","nameLocation":"17033:11:161","nodeType":"VariableDeclaration","scope":77872,"src":"17003:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":77775,"nodeType":"UserDefinedTypeName","pathNode":{"id":77774,"name":"Gear.StateTransition","nameLocations":["17003:4:161","17008:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"17003:20:161"},"referencedDeclaration":83167,"src":"17003:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"17002:43:161"},"returnParameters":{"id":77782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77781,"mutability":"mutable","name":"transitionHash","nameLocation":"17123:14:161","nodeType":"VariableDeclaration","scope":77872,"src":"17115:22:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17115:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17114:24:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77922,"nodeType":"FunctionDefinition","src":"19152:760:161","nodes":[],"body":{"id":77921,"nodeType":"Block","src":"19335:577:161","nodes":[],"statements":[{"assignments":[77887],"declarations":[{"constant":false,"id":77887,"mutability":"mutable","name":"_value","nameLocation":"19353:6:161","nodeType":"VariableDeclaration","scope":77921,"src":"19345:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77886,"name":"uint128","nodeType":"ElementaryTypeName","src":"19345:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77893,"initialValue":{"arguments":[{"expression":{"id":77890,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19370:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19374:5:161","memberName":"value","nodeType":"MemberAccess","src":"19370:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19362:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77888,"name":"uint128","nodeType":"ElementaryTypeName","src":"19362:7:161","typeDescriptions":{}}},"id":77892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19362:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"19345:35:161"},{"expression":{"arguments":[{"id":77895,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"19408:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77894,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"19391:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19391:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77897,"nodeType":"ExpressionStatement","src":"19391:24:161"},{"assignments":[77899],"declarations":[{"constant":false,"id":77899,"mutability":"mutable","name":"_nonce","nameLocation":"19434:6:161","nodeType":"VariableDeclaration","scope":77921,"src":"19426:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77898,"name":"uint256","nodeType":"ElementaryTypeName","src":"19426:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77901,"initialValue":{"id":77900,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"19443:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19426:22:161"},{"assignments":[77904],"declarations":[{"constant":false,"id":77904,"mutability":"mutable","name":"id","nameLocation":"19617:2:161","nodeType":"VariableDeclaration","scope":77921,"src":"19609:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19609:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate unique message ID by formula:\n - `keccak256(abi.encodePacked(address(this), nonce++))`","id":77905,"nodeType":"VariableDeclarationStatement","src":"19609:10:161"},{"AST":{"nativeSrc":"19654:129:161","nodeType":"YulBlock","src":"19654:129:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19675:4:161","nodeType":"YulLiteral","src":"19675:4:161","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"19685:2:161","nodeType":"YulLiteral","src":"19685:2:161","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"19689:7:161","nodeType":"YulIdentifier","src":"19689:7:161"},"nativeSrc":"19689:9:161","nodeType":"YulFunctionCall","src":"19689:9:161"}],"functionName":{"name":"shl","nativeSrc":"19681:3:161","nodeType":"YulIdentifier","src":"19681:3:161"},"nativeSrc":"19681:18:161","nodeType":"YulFunctionCall","src":"19681:18:161"}],"functionName":{"name":"mstore","nativeSrc":"19668:6:161","nodeType":"YulIdentifier","src":"19668:6:161"},"nativeSrc":"19668:32:161","nodeType":"YulFunctionCall","src":"19668:32:161"},"nativeSrc":"19668:32:161","nodeType":"YulExpressionStatement","src":"19668:32:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19720:4:161","nodeType":"YulLiteral","src":"19720:4:161","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"19726:6:161","nodeType":"YulIdentifier","src":"19726:6:161"}],"functionName":{"name":"mstore","nativeSrc":"19713:6:161","nodeType":"YulIdentifier","src":"19713:6:161"},"nativeSrc":"19713:20:161","nodeType":"YulFunctionCall","src":"19713:20:161"},"nativeSrc":"19713:20:161","nodeType":"YulExpressionStatement","src":"19713:20:161"},{"nativeSrc":"19746:27:161","nodeType":"YulAssignment","src":"19746:27:161","value":{"arguments":[{"kind":"number","nativeSrc":"19762:4:161","nodeType":"YulLiteral","src":"19762:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19768:4:161","nodeType":"YulLiteral","src":"19768:4:161","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"19752:9:161","nodeType":"YulIdentifier","src":"19752:9:161"},"nativeSrc":"19752:21:161","nodeType":"YulFunctionCall","src":"19752:21:161"},"variableNames":[{"name":"id","nativeSrc":"19746:2:161","nodeType":"YulIdentifier","src":"19746:2:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77899,"isOffset":false,"isSlot":false,"src":"19726:6:161","valueSize":1},{"declaration":77904,"isOffset":false,"isSlot":false,"src":"19746:2:161","valueSize":1}],"flags":["memory-safe"],"id":77906,"nodeType":"InlineAssembly","src":"19629:154:161"},{"expression":{"id":77908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19792:7:161","subExpression":{"id":77907,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"19792:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77909,"nodeType":"ExpressionStatement","src":"19792:7:161"},{"eventCall":{"arguments":[{"id":77911,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77904,"src":"19840:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77912,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19844:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19848:6:161","memberName":"sender","nodeType":"MemberAccess","src":"19844:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77914,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77875,"src":"19856:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77915,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"19866:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77916,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77877,"src":"19874:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77910,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"19815:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":77917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19815:70:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77918,"nodeType":"EmitStatement","src":"19810:75:161"},{"expression":{"id":77919,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77904,"src":"19903:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77885,"id":77920,"nodeType":"Return","src":"19896:9:161"}]},"documentation":{"id":77873,"nodeType":"StructuredDocumentation","src":"18783:364:161","text":" @dev Internal implementation of `sendMessage` function.\n This function is used to send message to the program and emit `MessageQueueingRequested` event.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"implemented":true,"kind":"function","modifiers":[{"id":77880,"kind":"modifierInvocation","modifierName":{"id":77879,"name":"onlyIfActive","nameLocations":["19240:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"19240:12:161"},"nodeType":"ModifierInvocation","src":"19240:12:161"},{"id":77882,"kind":"modifierInvocation","modifierName":{"id":77881,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["19261:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":77366,"src":"19261:33:161"},"nodeType":"ModifierInvocation","src":"19261:33:161"}],"name":"_sendMessage","nameLocation":"19161:12:161","parameters":{"id":77878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77875,"mutability":"mutable","name":"_payload","nameLocation":"19189:8:161","nodeType":"VariableDeclaration","scope":77922,"src":"19174:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77874,"name":"bytes","nodeType":"ElementaryTypeName","src":"19174:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77877,"mutability":"mutable","name":"_callReply","nameLocation":"19204:10:161","nodeType":"VariableDeclaration","scope":77922,"src":"19199:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77876,"name":"bool","nodeType":"ElementaryTypeName","src":"19199:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19173:42:161"},"returnParameters":{"id":77885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77884,"mutability":"mutable","name":"messageId","nameLocation":"19320:9:161","nodeType":"VariableDeclaration","scope":77922,"src":"19312:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19312:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19311:19:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77955,"nodeType":"FunctionDefinition","src":"20241:470:161","nodes":[],"body":{"id":77954,"nodeType":"Block","src":"20390:321:161","nodes":[],"statements":[{"assignments":[77933],"declarations":[{"constant":false,"id":77933,"mutability":"mutable","name":"balance","nameLocation":"20408:7:161","nodeType":"VariableDeclaration","scope":77954,"src":"20400:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77932,"name":"uint256","nodeType":"ElementaryTypeName","src":"20400:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77939,"initialValue":{"expression":{"arguments":[{"id":77936,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20426:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20418:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77934,"name":"address","nodeType":"ElementaryTypeName","src":"20418:7:161","typeDescriptions":{}}},"id":77937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20418:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20432:7:161","memberName":"balance","nodeType":"MemberAccess","src":"20418:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20400:39:161"},{"assignments":[77941],"declarations":[{"constant":false,"id":77941,"mutability":"mutable","name":"balance128","nameLocation":"20607:10:161","nodeType":"VariableDeclaration","scope":77954,"src":"20599:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77940,"name":"uint128","nodeType":"ElementaryTypeName","src":"20599:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77946,"initialValue":{"arguments":[{"id":77944,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77933,"src":"20628:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20620:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77942,"name":"uint128","nodeType":"ElementaryTypeName","src":"20620:7:161","typeDescriptions":{}}},"id":77945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20620:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"20599:37:161"},{"expression":{"components":[{"id":77947,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77941,"src":"20654:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":77949,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77320,"src":"20681:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77950,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77941,"src":"20692:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77948,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"20666:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20653:51:161","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":77931,"id":77953,"nodeType":"Return","src":"20646:58:161"}]},"documentation":{"id":77923,"nodeType":"StructuredDocumentation","src":"19918:318:161","text":" @dev Internal implementation of `transferLockedValueToInheritor` function.\n Note that this function can be called only after program exited.\n @return valueTransferred The amount of WVARA transferred.\n @return transferSuccess The flag indicating if the transfer was successful."},"implemented":true,"kind":"function","modifiers":[{"id":77926,"kind":"modifierInvocation","modifierName":{"id":77925,"name":"onlyIfExited","nameLocations":["20308:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77412,"src":"20308:12:161"},"nodeType":"ModifierInvocation","src":"20308:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"20250:31:161","parameters":{"id":77924,"nodeType":"ParameterList","parameters":[],"src":"20281:2:161"},"returnParameters":{"id":77931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77928,"mutability":"mutable","name":"valueTransferred","nameLocation":"20346:16:161","nodeType":"VariableDeclaration","scope":77955,"src":"20338:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77927,"name":"uint128","nodeType":"ElementaryTypeName","src":"20338:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77930,"mutability":"mutable","name":"transferSuccess","nameLocation":"20369:15:161","nodeType":"VariableDeclaration","scope":77955,"src":"20364:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77929,"name":"bool","nodeType":"ElementaryTypeName","src":"20364:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20337:48:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78053,"nodeType":"FunctionDefinition","src":"21279:1232:161","nodes":[],"body":{"id":78052,"nodeType":"Block","src":"21363:1148:161","nodes":[],"statements":[{"assignments":[77966],"declarations":[{"constant":false,"id":77966,"mutability":"mutable","name":"messagesLen","nameLocation":"21381:11:161","nodeType":"VariableDeclaration","scope":78052,"src":"21373:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77965,"name":"uint256","nodeType":"ElementaryTypeName","src":"21373:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77969,"initialValue":{"expression":{"id":77967,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"21395:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:6:161","memberName":"length","nodeType":"MemberAccess","src":"21395:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21373:38:161"},{"assignments":[77971],"declarations":[{"constant":false,"id":77971,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"21429:18:161","nodeType":"VariableDeclaration","scope":78052,"src":"21421:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77970,"name":"uint256","nodeType":"ElementaryTypeName","src":"21421:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77975,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77972,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77966,"src":"21450:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21464:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21450:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21421:45:161"},{"assignments":[77977],"declarations":[{"constant":false,"id":77977,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"21484:20:161","nodeType":"VariableDeclaration","scope":78052,"src":"21476:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77976,"name":"uint256","nodeType":"ElementaryTypeName","src":"21476:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77982,"initialValue":{"arguments":[{"id":77980,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77971,"src":"21523:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77978,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21507:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":77979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21514:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"21507:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21507:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21476:66:161"},{"assignments":[77984],"declarations":[{"constant":false,"id":77984,"mutability":"mutable","name":"offset","nameLocation":"21560:6:161","nodeType":"VariableDeclaration","scope":78052,"src":"21552:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77983,"name":"uint256","nodeType":"ElementaryTypeName","src":"21552:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77986,"initialValue":{"hexValue":"30","id":77985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21569:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21552:18:161"},{"body":{"id":78043,"nodeType":"Block","src":"21623:785:161","statements":[{"assignments":[78001],"declarations":[{"constant":false,"id":78001,"mutability":"mutable","name":"message","nameLocation":"21659:7:161","nodeType":"VariableDeclaration","scope":78043,"src":"21637:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78000,"nodeType":"UserDefinedTypeName","pathNode":{"id":77999,"name":"Gear.Message","nameLocations":["21637:4:161","21642:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"21637:12:161"},"referencedDeclaration":83101,"src":"21637:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":78005,"initialValue":{"baseExpression":{"id":78002,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"21669:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":78004,"indexExpression":{"id":78003,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21679:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21669:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"21637:44:161"},{"assignments":[78008],"declarations":[{"constant":false,"id":78008,"mutability":"mutable","name":"messageHash","nameLocation":"21787:11:161","nodeType":"VariableDeclaration","scope":78043,"src":"21779:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21779:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":78013,"initialValue":{"arguments":[{"id":78011,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"21818:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":78009,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"21801:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":78010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21806:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":83391,"src":"21801:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$83101_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":78012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21801:25:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21779:47:161"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":78017,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77977,"src":"21990:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78018,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77984,"src":"22012:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78019,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78008,"src":"22020:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78014,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21964:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21971:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"21964:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21964:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78021,"nodeType":"ExpressionStatement","src":"21964:68:161"},{"id":78026,"nodeType":"UncheckedBlock","src":"22046:55:161","statements":[{"expression":{"id":78024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78022,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77984,"src":"22074:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22084:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22074:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78025,"nodeType":"ExpressionStatement","src":"22074:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78027,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22240:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22248:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"22240:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22261:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"22240:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22267:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22240:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":78041,"nodeType":"Block","src":"22339:59:161","statements":[{"expression":{"arguments":[{"id":78038,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22375:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78037,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78448,"src":"22357:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22357:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78040,"nodeType":"ExpressionStatement","src":"22357:26:161"}]},"id":78042,"nodeType":"IfStatement","src":"22236:162:161","trueBody":{"id":78036,"nodeType":"Block","src":"22270:63:161","statements":[{"expression":{"arguments":[{"id":78033,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22310:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78032,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"22288:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22288:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78035,"nodeType":"ExpressionStatement","src":"22288:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77991,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21601:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77992,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77966,"src":"21605:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21601:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78044,"initializationExpression":{"assignments":[77988],"declarations":[{"constant":false,"id":77988,"mutability":"mutable","name":"i","nameLocation":"21594:1:161","nodeType":"VariableDeclaration","scope":78044,"src":"21586:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77987,"name":"uint256","nodeType":"ElementaryTypeName","src":"21586:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77990,"initialValue":{"hexValue":"30","id":77989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21598:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21586:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"21618:3:161","subExpression":{"id":77994,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21618:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77996,"nodeType":"ExpressionStatement","src":"21618:3:161"},"nodeType":"ForStatement","src":"21581:827:161"},{"expression":{"arguments":[{"id":78047,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77977,"src":"22460:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22482:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78049,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77971,"src":"22485:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78045,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"22425:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22432:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"22425:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22425:79:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77964,"id":78051,"nodeType":"Return","src":"22418:86:161"}]},"documentation":{"id":77956,"nodeType":"StructuredDocumentation","src":"20981:293:161","text":" @dev Internal implementation of `_sendMessages` function.\n It sends all outgoing messages from the `Mirror` contract and emits appropriate events.\n @param _messages The array of messages to be sent.\n @return messagesHash The hash of the sent messages."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"21288:13:161","parameters":{"id":77961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77960,"mutability":"mutable","name":"_messages","nameLocation":"21326:9:161","nodeType":"VariableDeclaration","scope":78053,"src":"21302:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":77958,"nodeType":"UserDefinedTypeName","pathNode":{"id":77957,"name":"Gear.Message","nameLocations":["21302:4:161","21307:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"21302:12:161"},"referencedDeclaration":83101,"src":"21302:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"id":77959,"nodeType":"ArrayTypeName","src":"21302:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"21301:35:161"},"returnParameters":{"id":77964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78053,"src":"21354:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21354:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21353:9:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78107,"nodeType":"FunctionDefinition","src":"23021:1125:161","nodes":[],"body":{"id":78106,"nodeType":"Block","src":"23092:1054:161","nodes":[],"statements":[{"condition":{"id":78063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23278:37:161","subExpression":{"arguments":[{"id":78061,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23306:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78060,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78317,"src":"23279:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":78062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23279:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev First, we'll try to parse event from the Sails framework\n and then emit it on behalf of the `Mirror` smart contract.","id":78105,"nodeType":"IfStatement","src":"23274:866:161","trueBody":{"id":78104,"nodeType":"Block","src":"23317:823:161","statements":[{"condition":{"expression":{"id":78064,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23585:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23594:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"23585:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78092,"nodeType":"IfStatement","src":"23581:453:161","trueBody":{"id":78091,"nodeType":"Block","src":"23600:434:161","statements":[{"assignments":[78067,null],"declarations":[{"constant":false,"id":78067,"mutability":"mutable","name":"success","nameLocation":"23624:7:161","nodeType":"VariableDeclaration","scope":78091,"src":"23619:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78066,"name":"bool","nodeType":"ElementaryTypeName","src":"23619:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78076,"initialValue":{"arguments":[{"expression":{"id":78073,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23676:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"23676:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":78068,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23636:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23645:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"23636:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23657:4:161","memberName":"call","nodeType":"MemberAccess","src":"23636:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23667:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"23636:39:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23636:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"23618:75:161"},{"condition":{"id":78078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23716:8:161","subExpression":{"id":78077,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"23717:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78090,"nodeType":"IfStatement","src":"23712:308:161","trueBody":{"id":78089,"nodeType":"Block","src":"23726:294:161","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78080,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23923:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23932:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"23923:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78082,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23936:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23945:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"23936:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78084,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23958:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23967:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"23958:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78079,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"23905:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23905:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78087,"nodeType":"EmitStatement","src":"23900:73:161"},{"functionReturnParameters":78059,"id":78088,"nodeType":"Return","src":"23995:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":78094,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24061:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24070:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"24061:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78096,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24074:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24083:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"24074:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78098,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24096:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24105:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"24096:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78100,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24114:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24123:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"24114:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78093,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"24053:7:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":78102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24053:76:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78103,"nodeType":"EmitStatement","src":"24048:81:161"}]}}]},"documentation":{"id":78054,"nodeType":"StructuredDocumentation","src":"22517:499:161","text":" @dev Internal function to send message that goes to mailbox.\n Value never sent since goes to mailbox.\n Emits `Message` event if it is not event from Sails framework.\n If `_message.call = true`, then call will be made to `_message.destination`\n with _message.payload and gas limit of 500_000 to prevent DoS attacks.\n If call fails, then `MessageCallFailed` event will be emitted.\n @param _message The message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"23030:21:161","parameters":{"id":78058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78057,"mutability":"mutable","name":"_message","nameLocation":"23074:8:161","nodeType":"VariableDeclaration","scope":78107,"src":"23052:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78056,"nodeType":"UserDefinedTypeName","pathNode":{"id":78055,"name":"Gear.Message","nameLocations":["23052:4:161","23057:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"23052:12:161"},"referencedDeclaration":83101,"src":"23052:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"23051:32:161"},"returnParameters":{"id":78059,"nodeType":"ParameterList","parameters":[],"src":"23092:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78317,"nodeType":"FunctionDefinition","src":"27225:3845:161","nodes":[],"body":{"id":78316,"nodeType":"Block","src":"27329:3741:161","nodes":[],"statements":[{"assignments":[78117],"declarations":[{"constant":false,"id":78117,"mutability":"mutable","name":"payload","nameLocation":"27354:7:161","nodeType":"VariableDeclaration","scope":78316,"src":"27339:22:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78116,"name":"bytes","nodeType":"ElementaryTypeName","src":"27339:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78120,"initialValue":{"expression":{"id":78118,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27364:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27373:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"27364:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27339:41:161"},{"condition":{"id":78136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27395:86:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78121,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27397:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27406:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"27397:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":78123,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77305,"src":"27421:14:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27397:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78125,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27439:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27448:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"27439:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27457:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27439:19:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27397:61:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78130,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"27462:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27470:6:161","memberName":"length","nodeType":"MemberAccess","src":"27462:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27479:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27462:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27397:83:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27396:85:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78140,"nodeType":"IfStatement","src":"27391:129:161","trueBody":{"id":78139,"nodeType":"Block","src":"27483:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27504:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78138,"nodeType":"Return","src":"27497:12:161"}]}},{"assignments":[78142],"declarations":[{"constant":false,"id":78142,"mutability":"mutable","name":"topicsLength","nameLocation":"27538:12:161","nodeType":"VariableDeclaration","scope":78316,"src":"27530:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78141,"name":"uint256","nodeType":"ElementaryTypeName","src":"27530:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78143,"nodeType":"VariableDeclarationStatement","src":"27530:20:161"},{"AST":{"nativeSrc":"27585:224:161","nodeType":"YulBlock","src":"27585:224:161","statements":[{"nativeSrc":"27745:54:161","nodeType":"YulAssignment","src":"27745:54:161","value":{"arguments":[{"kind":"number","nativeSrc":"27765:3:161","nodeType":"YulLiteral","src":"27765:3:161","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"27783:14:161","nodeType":"YulIdentifier","src":"27783:14:161"}],"functionName":{"name":"calldataload","nativeSrc":"27770:12:161","nodeType":"YulIdentifier","src":"27770:12:161"},"nativeSrc":"27770:28:161","nodeType":"YulFunctionCall","src":"27770:28:161"}],"functionName":{"name":"shr","nativeSrc":"27761:3:161","nodeType":"YulIdentifier","src":"27761:3:161"},"nativeSrc":"27761:38:161","nodeType":"YulFunctionCall","src":"27761:38:161"},"variableNames":[{"name":"topicsLength","nativeSrc":"27745:12:161","nodeType":"YulIdentifier","src":"27745:12:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"27783:14:161","suffix":"offset","valueSize":1},{"declaration":78142,"isOffset":false,"isSlot":false,"src":"27745:12:161","valueSize":1}],"flags":["memory-safe"],"id":78144,"nodeType":"InlineAssembly","src":"27560:249:161"},{"condition":{"id":78153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27823:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78145,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"27825:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":78146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27841:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27825:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78148,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"27846:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":78149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27862:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"27846:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27825:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27824:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78157,"nodeType":"IfStatement","src":"27819:84:161","trueBody":{"id":78156,"nodeType":"Block","src":"27866:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27887:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78155,"nodeType":"Return","src":"27880:12:161"}]}},{"assignments":[78159],"declarations":[{"constant":false,"id":78159,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"27921:19:161","nodeType":"VariableDeclaration","scope":78316,"src":"27913:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78158,"name":"uint256","nodeType":"ElementaryTypeName","src":"27913:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78160,"nodeType":"VariableDeclarationStatement","src":"27913:27:161"},{"id":78169,"nodeType":"UncheckedBlock","src":"27950:78:161","statements":[{"expression":{"id":78167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78161,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"27974:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":78162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27996:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78163,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"28000:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28015:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"28000:17:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27996:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27974:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78168,"nodeType":"ExpressionStatement","src":"27974:43:161"}]},{"condition":{"id":78175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28042:40:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78170,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"28044:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28052:6:161","memberName":"length","nodeType":"MemberAccess","src":"28044:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":78172,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"28062:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28044:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78174,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28043:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78179,"nodeType":"IfStatement","src":"28038:83:161","trueBody":{"id":78178,"nodeType":"Block","src":"28084:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28105:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78177,"nodeType":"Return","src":"28098:12:161"}]}},{"assignments":[78182],"declarations":[{"constant":false,"id":78182,"mutability":"mutable","name":"topic1","nameLocation":"28224:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"28216:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28216:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":78183,"nodeType":"VariableDeclarationStatement","src":"28216:14:161"},{"AST":{"nativeSrc":"28265:70:161","nodeType":"YulBlock","src":"28265:70:161","statements":[{"nativeSrc":"28279:46:161","nodeType":"YulAssignment","src":"28279:46:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"28306:14:161","nodeType":"YulIdentifier","src":"28306:14:161"},{"kind":"number","nativeSrc":"28322:1:161","nodeType":"YulLiteral","src":"28322:1:161","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28302:3:161","nodeType":"YulIdentifier","src":"28302:3:161"},"nativeSrc":"28302:22:161","nodeType":"YulFunctionCall","src":"28302:22:161"}],"functionName":{"name":"calldataload","nativeSrc":"28289:12:161","nodeType":"YulIdentifier","src":"28289:12:161"},"nativeSrc":"28289:36:161","nodeType":"YulFunctionCall","src":"28289:36:161"},"variableNames":[{"name":"topic1","nativeSrc":"28279:6:161","nodeType":"YulIdentifier","src":"28279:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"28306:14:161","suffix":"offset","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"28279:6:161","valueSize":1}],"flags":["memory-safe"],"id":78184,"nodeType":"InlineAssembly","src":"28240:95:161"},{"condition":{"id":78255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28891:763:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78185,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"28906:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78186,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"28916:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28929:8:161","memberName":"selector","nodeType":"MemberAccess","src":"28916:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28906:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78189,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"28953:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78190,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"28963:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":78191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28988:8:161","memberName":"selector","nodeType":"MemberAccess","src":"28963:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28953:43:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:90:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78194,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29012:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78195,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"29022:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":78196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29045:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29022:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29012:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:147:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78199,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29069:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78200,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"29079:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":78201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29102:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29079:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29069:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:204:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78204,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29126:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78205,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"29136:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29163:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29136:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29126:45:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:265:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78209,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29187:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78210,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"29197:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29229:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29197:40:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29187:50:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:331:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78214,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29253:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78215,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"29263:7:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":78216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29271:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29263:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29253:26:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:373:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78219,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29295:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78220,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"29305:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29323:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29305:26:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29295:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:425:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78224,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29347:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78225,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"29357:5:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":78226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29363:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29357:14:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29347:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:465:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78229,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29387:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78230,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"29397:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29413:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29397:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29387:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:515:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78234,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29437:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78235,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"29447:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29460:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29447:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29437:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:562:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78239,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29484:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78240,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"29494:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29531:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29494:45:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29484:55:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:633:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78244,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29555:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78245,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"29565:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29585:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29565:28:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29555:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:687:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78249,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29609:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78250,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"29619:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29636:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29619:25:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29609:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:738:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78254,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28892:762:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":78259,"nodeType":"IfStatement","src":"28887:806:161","trueBody":{"id":78258,"nodeType":"Block","src":"29656:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29677:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78257,"nodeType":"Return","src":"29670:12:161"}]}},{"assignments":[78261],"declarations":[{"constant":false,"id":78261,"mutability":"mutable","name":"size","nameLocation":"29744:4:161","nodeType":"VariableDeclaration","scope":78316,"src":"29736:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78260,"name":"uint256","nodeType":"ElementaryTypeName","src":"29736:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78262,"nodeType":"VariableDeclarationStatement","src":"29736:12:161"},{"id":78270,"nodeType":"UncheckedBlock","src":"29758:78:161","statements":[{"expression":{"id":78268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78263,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78261,"src":"29782:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78264,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"29789:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29797:6:161","memberName":"length","nodeType":"MemberAccess","src":"29789:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78266,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"29806:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29789:36:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29782:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78269,"nodeType":"ExpressionStatement","src":"29782:43:161"}]},{"assignments":[78272],"declarations":[{"constant":false,"id":78272,"mutability":"mutable","name":"memPtr","nameLocation":"29854:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"29846:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78271,"name":"uint256","nodeType":"ElementaryTypeName","src":"29846:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78277,"initialValue":{"arguments":[{"id":78275,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78261,"src":"29879:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78273,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"29863:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29870:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"29863:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29863:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29846:38:161"},{"AST":{"nativeSrc":"29919:92:161","nodeType":"YulBlock","src":"29919:92:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"29946:6:161","nodeType":"YulIdentifier","src":"29946:6:161"},{"arguments":[{"name":"payload.offset","nativeSrc":"29958:14:161","nodeType":"YulIdentifier","src":"29958:14:161"},{"name":"topicsLengthInBytes","nativeSrc":"29974:19:161","nodeType":"YulIdentifier","src":"29974:19:161"}],"functionName":{"name":"add","nativeSrc":"29954:3:161","nodeType":"YulIdentifier","src":"29954:3:161"},"nativeSrc":"29954:40:161","nodeType":"YulFunctionCall","src":"29954:40:161"},{"name":"size","nativeSrc":"29996:4:161","nodeType":"YulIdentifier","src":"29996:4:161"}],"functionName":{"name":"calldatacopy","nativeSrc":"29933:12:161","nodeType":"YulIdentifier","src":"29933:12:161"},"nativeSrc":"29933:68:161","nodeType":"YulFunctionCall","src":"29933:68:161"},"nativeSrc":"29933:68:161","nodeType":"YulExpressionStatement","src":"29933:68:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"29946:6:161","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"29958:14:161","suffix":"offset","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"29996:4:161","valueSize":1},{"declaration":78159,"isOffset":false,"isSlot":false,"src":"29974:19:161","valueSize":1}],"flags":["memory-safe"],"id":78278,"nodeType":"InlineAssembly","src":"29894:117:161"},{"assignments":[78281],"declarations":[{"constant":false,"id":78281,"mutability":"mutable","name":"topic2","nameLocation":"30166:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30158:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30158:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`.\n Regular offsets: `32`, `64`, `96`.","id":78282,"nodeType":"VariableDeclarationStatement","src":"30158:14:161"},{"assignments":[78284],"declarations":[{"constant":false,"id":78284,"mutability":"mutable","name":"topic3","nameLocation":"30190:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30182:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30182:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78285,"nodeType":"VariableDeclarationStatement","src":"30182:14:161"},{"assignments":[78287],"declarations":[{"constant":false,"id":78287,"mutability":"mutable","name":"topic4","nameLocation":"30214:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30206:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78286,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30206:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78288,"nodeType":"VariableDeclarationStatement","src":"30206:14:161"},{"AST":{"nativeSrc":"30255:191:161","nodeType":"YulBlock","src":"30255:191:161","statements":[{"nativeSrc":"30269:47:161","nodeType":"YulAssignment","src":"30269:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30296:14:161","nodeType":"YulIdentifier","src":"30296:14:161"},{"kind":"number","nativeSrc":"30312:2:161","nodeType":"YulLiteral","src":"30312:2:161","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"30292:3:161","nodeType":"YulIdentifier","src":"30292:3:161"},"nativeSrc":"30292:23:161","nodeType":"YulFunctionCall","src":"30292:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30279:12:161","nodeType":"YulIdentifier","src":"30279:12:161"},"nativeSrc":"30279:37:161","nodeType":"YulFunctionCall","src":"30279:37:161"},"variableNames":[{"name":"topic2","nativeSrc":"30269:6:161","nodeType":"YulIdentifier","src":"30269:6:161"}]},{"nativeSrc":"30329:47:161","nodeType":"YulAssignment","src":"30329:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30356:14:161","nodeType":"YulIdentifier","src":"30356:14:161"},{"kind":"number","nativeSrc":"30372:2:161","nodeType":"YulLiteral","src":"30372:2:161","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"30352:3:161","nodeType":"YulIdentifier","src":"30352:3:161"},"nativeSrc":"30352:23:161","nodeType":"YulFunctionCall","src":"30352:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30339:12:161","nodeType":"YulIdentifier","src":"30339:12:161"},"nativeSrc":"30339:37:161","nodeType":"YulFunctionCall","src":"30339:37:161"},"variableNames":[{"name":"topic3","nativeSrc":"30329:6:161","nodeType":"YulIdentifier","src":"30329:6:161"}]},{"nativeSrc":"30389:47:161","nodeType":"YulAssignment","src":"30389:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30416:14:161","nodeType":"YulIdentifier","src":"30416:14:161"},{"kind":"number","nativeSrc":"30432:2:161","nodeType":"YulLiteral","src":"30432:2:161","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"30412:3:161","nodeType":"YulIdentifier","src":"30412:3:161"},"nativeSrc":"30412:23:161","nodeType":"YulFunctionCall","src":"30412:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30399:12:161","nodeType":"YulIdentifier","src":"30399:12:161"},"nativeSrc":"30399:37:161","nodeType":"YulFunctionCall","src":"30399:37:161"},"variableNames":[{"name":"topic4","nativeSrc":"30389:6:161","nodeType":"YulIdentifier","src":"30389:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30296:14:161","suffix":"offset","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30356:14:161","suffix":"offset","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30416:14:161","suffix":"offset","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30269:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"30329:6:161","valueSize":1},{"declaration":78287,"isOffset":false,"isSlot":false,"src":"30389:6:161","valueSize":1}],"flags":["memory-safe"],"id":78289,"nodeType":"InlineAssembly","src":"30230:216:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78290,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30460:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":78291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30476:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30460:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78295,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30596:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":78296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30612:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"30596:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78300,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30740:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":78301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30756:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"30740:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78305,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30892:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":78306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30908:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"30892:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78310,"nodeType":"IfStatement","src":"30888:154:161","trueBody":{"id":78309,"nodeType":"Block","src":"30911:131:161","statements":[{"AST":{"nativeSrc":"30950:82:161","nodeType":"YulBlock","src":"30950:82:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30973:6:161","nodeType":"YulIdentifier","src":"30973:6:161"},{"name":"size","nativeSrc":"30981:4:161","nodeType":"YulIdentifier","src":"30981:4:161"},{"name":"topic1","nativeSrc":"30987:6:161","nodeType":"YulIdentifier","src":"30987:6:161"},{"name":"topic2","nativeSrc":"30995:6:161","nodeType":"YulIdentifier","src":"30995:6:161"},{"name":"topic3","nativeSrc":"31003:6:161","nodeType":"YulIdentifier","src":"31003:6:161"},{"name":"topic4","nativeSrc":"31011:6:161","nodeType":"YulIdentifier","src":"31011:6:161"}],"functionName":{"name":"log4","nativeSrc":"30968:4:161","nodeType":"YulIdentifier","src":"30968:4:161"},"nativeSrc":"30968:50:161","nodeType":"YulFunctionCall","src":"30968:50:161"},"nativeSrc":"30968:50:161","nodeType":"YulExpressionStatement","src":"30968:50:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30973:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30981:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30987:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30995:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"31003:6:161","valueSize":1},{"declaration":78287,"isOffset":false,"isSlot":false,"src":"31011:6:161","valueSize":1}],"flags":["memory-safe"],"id":78308,"nodeType":"InlineAssembly","src":"30925:107:161"}]}},"id":78311,"nodeType":"IfStatement","src":"30736:306:161","trueBody":{"id":78304,"nodeType":"Block","src":"30759:123:161","statements":[{"AST":{"nativeSrc":"30798:74:161","nodeType":"YulBlock","src":"30798:74:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30821:6:161","nodeType":"YulIdentifier","src":"30821:6:161"},{"name":"size","nativeSrc":"30829:4:161","nodeType":"YulIdentifier","src":"30829:4:161"},{"name":"topic1","nativeSrc":"30835:6:161","nodeType":"YulIdentifier","src":"30835:6:161"},{"name":"topic2","nativeSrc":"30843:6:161","nodeType":"YulIdentifier","src":"30843:6:161"},{"name":"topic3","nativeSrc":"30851:6:161","nodeType":"YulIdentifier","src":"30851:6:161"}],"functionName":{"name":"log3","nativeSrc":"30816:4:161","nodeType":"YulIdentifier","src":"30816:4:161"},"nativeSrc":"30816:42:161","nodeType":"YulFunctionCall","src":"30816:42:161"},"nativeSrc":"30816:42:161","nodeType":"YulExpressionStatement","src":"30816:42:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30821:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30829:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30835:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30843:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"30851:6:161","valueSize":1}],"flags":["memory-safe"],"id":78303,"nodeType":"InlineAssembly","src":"30773:99:161"}]}},"id":78312,"nodeType":"IfStatement","src":"30592:450:161","trueBody":{"id":78299,"nodeType":"Block","src":"30615:115:161","statements":[{"AST":{"nativeSrc":"30654:66:161","nodeType":"YulBlock","src":"30654:66:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30677:6:161","nodeType":"YulIdentifier","src":"30677:6:161"},{"name":"size","nativeSrc":"30685:4:161","nodeType":"YulIdentifier","src":"30685:4:161"},{"name":"topic1","nativeSrc":"30691:6:161","nodeType":"YulIdentifier","src":"30691:6:161"},{"name":"topic2","nativeSrc":"30699:6:161","nodeType":"YulIdentifier","src":"30699:6:161"}],"functionName":{"name":"log2","nativeSrc":"30672:4:161","nodeType":"YulIdentifier","src":"30672:4:161"},"nativeSrc":"30672:34:161","nodeType":"YulFunctionCall","src":"30672:34:161"},"nativeSrc":"30672:34:161","nodeType":"YulExpressionStatement","src":"30672:34:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30677:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30685:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30691:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30699:6:161","valueSize":1}],"flags":["memory-safe"],"id":78298,"nodeType":"InlineAssembly","src":"30629:91:161"}]}},"id":78313,"nodeType":"IfStatement","src":"30456:586:161","trueBody":{"id":78294,"nodeType":"Block","src":"30479:107:161","statements":[{"AST":{"nativeSrc":"30518:58:161","nodeType":"YulBlock","src":"30518:58:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30541:6:161","nodeType":"YulIdentifier","src":"30541:6:161"},{"name":"size","nativeSrc":"30549:4:161","nodeType":"YulIdentifier","src":"30549:4:161"},{"name":"topic1","nativeSrc":"30555:6:161","nodeType":"YulIdentifier","src":"30555:6:161"}],"functionName":{"name":"log1","nativeSrc":"30536:4:161","nodeType":"YulIdentifier","src":"30536:4:161"},"nativeSrc":"30536:26:161","nodeType":"YulFunctionCall","src":"30536:26:161"},"nativeSrc":"30536:26:161","nodeType":"YulExpressionStatement","src":"30536:26:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30541:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30549:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30555:6:161","valueSize":1}],"flags":["memory-safe"],"id":78293,"nodeType":"InlineAssembly","src":"30493:83:161"}]}},{"expression":{"hexValue":"74727565","id":78314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31059:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78115,"id":78315,"nodeType":"Return","src":"31052:11:161"}]},"documentation":{"id":78108,"nodeType":"StructuredDocumentation","src":"24152:3068:161","text":" @dev Tries to parse an event from the Sails framework and emit it in Solidity notation.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n Example of defining Solidity events in WASM contract based on Sails framework:\n ```rust\n #[event]\n #[derive(Clone, Debug, PartialEq, Encode, TypeInfo)]\n #[codec(crate = scale_codec)]\n #[scale_info(crate = scale_info)]\n pub enum CounterEvents {\n Added {\n #[indexed]\n source: ActorId,\n value: u32,\n },\n }\n ```\n User also generates \"Solidity ABI interface\" that allows services like Etherscan to decode events from `Mirror`\n (since we use the ABI interface as \"proxy implementation\"):\n ```solidity\n interface ICounter {\n event Added(address indexed source, uint32 value);\n // ... other events\n }\n ```\n Now let's imagine that the user wants to calculate something in WASM contract and send it to Ethereum as event,\n which will then be emitted by `Mirror` smart contract as showed on services like Etherscan:\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n ```\n All the `emit_eth_event` method in the Sails framework does is call the syscall\n `gcore::msg::send(destination=ETH_EVENT_ADDR, payload, value=0)`, where `payload`\n is encoded in Solidity notation as described below.\n Format in which the Sails framework sends events:\n - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`).\n specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called.\n - `bytes32 topic1` (required)\n should never match our event selectors!\n - `bytes32 topic2` (optional)\n - `bytes32 topic3` (optional)\n - `bytes32 topic4` (optional)\n - `bytes payload` (optional)\n contains encoded data of event in form of `abi.encode(...)`.\n @param _message The message to be parsed and emitted as Solidity event.\n @return isSailsEvent `true` in case of success and `false` in case of error (no matching event found)."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"27234:26:161","parameters":{"id":78112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78111,"mutability":"mutable","name":"_message","nameLocation":"27283:8:161","nodeType":"VariableDeclaration","scope":78317,"src":"27261:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78110,"nodeType":"UserDefinedTypeName","pathNode":{"id":78109,"name":"Gear.Message","nameLocations":["27261:4:161","27266:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"27261:12:161"},"referencedDeclaration":83101,"src":"27261:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"27260:32:161"},"returnParameters":{"id":78115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78114,"mutability":"mutable","name":"isSailsEvent","nameLocation":"27315:12:161","nodeType":"VariableDeclaration","scope":78317,"src":"27310:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78113,"name":"bool","nodeType":"ElementaryTypeName","src":"27310:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27309:19:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78448,"nodeType":"FunctionDefinition","src":"37037:1645:161","nodes":[],"body":{"id":78447,"nodeType":"Block","src":"37104:1578:161","nodes":[],"statements":[{"condition":{"expression":{"id":78324,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37118:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37127:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"37118:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78445,"nodeType":"Block","src":"38333:343:161","statements":[{"assignments":[78413],"declarations":[{"constant":false,"id":78413,"mutability":"mutable","name":"transferSuccess","nameLocation":"38352:15:161","nodeType":"VariableDeclaration","scope":78445,"src":"38347:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78412,"name":"bool","nodeType":"ElementaryTypeName","src":"38347:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78420,"initialValue":{"arguments":[{"expression":{"id":78415,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38385:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38394:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"38385:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78417,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38407:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38416:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38407:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78414,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"38370:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38370:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"38347:75:161"},{"condition":{"id":78422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38440:16:161","subExpression":{"id":78421,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78413,"src":"38441:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78431,"nodeType":"IfStatement","src":"38436:117:161","trueBody":{"id":78430,"nodeType":"Block","src":"38458:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78424,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38501:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38510:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"38501:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78426,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38523:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38532:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38523:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78423,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"38481:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38481:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78429,"nodeType":"EmitStatement","src":"38476:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":78433,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38578:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38587:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"38578:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78435,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38605:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38596:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78437,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38612:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38621:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38612:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38634:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"38612:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78440,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38638:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38647:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38638:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38660:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"38638:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":78432,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"38572:5:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":78443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38572:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78444,"nodeType":"EmitStatement","src":"38567:98:161"}]},"id":78446,"nodeType":"IfStatement","src":"37114:1562:161","trueBody":{"id":78411,"nodeType":"Block","src":"37133:1194:161","statements":[{"assignments":[78327],"declarations":[{"constant":false,"id":78327,"mutability":"mutable","name":"isSuccessReply","nameLocation":"37152:14:161","nodeType":"VariableDeclaration","scope":78411,"src":"37147:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78326,"name":"bool","nodeType":"ElementaryTypeName","src":"37147:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78335,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":78334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":78328,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37169:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37178:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"37169:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37191:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"37169:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":78332,"indexExpression":{"hexValue":"30","id":78331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37196:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37169:29:161","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37202:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37169:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37147:56:161"},{"assignments":[78337],"declarations":[{"constant":false,"id":78337,"mutability":"mutable","name":"payload","nameLocation":"37231:7:161","nodeType":"VariableDeclaration","scope":78411,"src":"37218:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78336,"name":"bytes","nodeType":"ElementaryTypeName","src":"37218:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78338,"nodeType":"VariableDeclarationStatement","src":"37218:20:161"},{"condition":{"id":78339,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78327,"src":"37257:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78362,"nodeType":"Block","src":"37338:348:161","statements":[{"expression":{"id":78360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78346,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37508:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":78349,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"37562:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73742_$","typeString":"type(contract ICallbacks)"}},"id":78350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37573:12:161","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73741,"src":"37562:23:161","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":78351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37586:8:161","memberName":"selector","nodeType":"MemberAccess","src":"37562:32:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":78352,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37605:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"37596:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78354,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37609:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37618:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"37609:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":78356,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37627:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37636:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"37627:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37649:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"37627:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":78347,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37518:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37522:18:161","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"37518:22:161","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":78359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37518:153:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"37508:163:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78361,"nodeType":"ExpressionStatement","src":"37508:163:161"}]},"id":78363,"nodeType":"IfStatement","src":"37253:433:161","trueBody":{"id":78345,"nodeType":"Block","src":"37273:59:161","statements":[{"expression":{"id":78343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78340,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37291:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78341,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37301:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37310:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"37301:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"37291:26:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78344,"nodeType":"ExpressionStatement","src":"37291:26:161"}]}},{"assignments":[78365,null],"declarations":[{"constant":false,"id":78365,"mutability":"mutable","name":"success","nameLocation":"37706:7:161","nodeType":"VariableDeclaration","scope":78411,"src":"37701:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78364,"name":"bool","nodeType":"ElementaryTypeName","src":"37701:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78375,"initialValue":{"arguments":[{"id":78373,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37781:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":78366,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37718:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37727:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37718:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37739:4:161","memberName":"call","nodeType":"MemberAccess","src":"37718:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37749:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":78370,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37765:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37774:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"37765:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"37718:62:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37718:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"37700:89:161"},{"condition":{"id":78377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37808:8:161","subExpression":{"id":78376,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78365,"src":"37809:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78410,"nodeType":"IfStatement","src":"37804:513:161","trueBody":{"id":78409,"nodeType":"Block","src":"37818:499:161","statements":[{"assignments":[78379],"declarations":[{"constant":false,"id":78379,"mutability":"mutable","name":"transferSuccess","nameLocation":"37841:15:161","nodeType":"VariableDeclaration","scope":78409,"src":"37836:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78378,"name":"bool","nodeType":"ElementaryTypeName","src":"37836:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78386,"initialValue":{"arguments":[{"expression":{"id":78381,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37874:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37883:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37874:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78383,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37896:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37905:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"37896:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78380,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"37859:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37859:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37836:75:161"},{"condition":{"id":78388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37933:16:161","subExpression":{"id":78387,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78379,"src":"37934:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78397,"nodeType":"IfStatement","src":"37929:125:161","trueBody":{"id":78396,"nodeType":"Block","src":"37951:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78390,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37998:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38007:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37998:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78392,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38020:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38029:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38020:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78389,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"37978:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37978:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78395,"nodeType":"EmitStatement","src":"37973:62:161"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78399,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38233:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38242:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38233:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78401,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38249:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38258:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38249:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38271:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"38249:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78404,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38275:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38284:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38275:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38297:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"38275:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":78398,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"38217:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38217:85:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78408,"nodeType":"EmitStatement","src":"38212:90:161"}]}}]}}]},"documentation":{"id":78318,"nodeType":"StructuredDocumentation","src":"31076:5956:161","text":" @dev Internal function to send reply message.\n Non-zero value always sent since never goes to mailbox.\n Emits `Reply` event if `_message.call = false`.\n If `_message.call = true`, the call will be made to `_message.destination` with\n gas limit of 500_000 to prevent DoS attacks and with `_message.value`.\n The `_message.replyDetails` will also be evaluated to determine the reply's success.\n If `gear_core::message::ReplyCode` is successful, `_message.payload` will be used.\n If unsuccessful, `payload = ICallbacks.onErrorReply(_message.id, _message.payload, _message.replyDetails.code)`\n will be used and the appropriate method on `_message.destination` will be called.\n Function will also always attempt to send `_message.value`. If this fails for some reason,\n the `ReplyTransferFailed` event will be emitted.\n If call fails, then `ReplyCallFailed` event will be emitted.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n All the contract method does is return `u32` as result (reply):\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User also generates \"Solidity Callback Interface\" and implements own `CounterCaller` smart contract,\n which will handle reply hooks in methods starting with `replyOn_`:\n ```solidity\n interface ICounterCallbacks {\n function replyOn_init(bytes32 messageId) external;\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external;\n // ... other methods\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode) external payable;\n }\n contract CounterCaller is ICounterCallbacks {\n ICounter public immutable MIRROR;\n constructor(ICounter _mirror) {\n MIRROR = _mirror;\n }\n modifier onlyMirror() {\n _onlyMirror();\n _;\n }\n function _onlyMirror() internal view {\n require(msg.sender == address(MIRROR));\n }\n // Call `Counter` constructor on our platform\n function init(uint32 counter) external {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.init(true, counter);\n }\n function replyOn_init(bytes32 messageId) external onlyMirror {\n // ...\n }\n // Compute `Counter.add(uint32 value) -> uint32 reply` on our platform\n mapping(bytes32 messageId => bool knownMessage) public counterAddInputs;\n mapping(bytes32 messageId => uint32 output) public counterAddResults;\n function counterAdd(uint32 value) external returns (bytes32 messageId) {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.counterAdd(true, value);\n counterAddInputs[_messageId] = true;\n messageId = _messageId;\n }\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external onlyMirror {\n counterAddResults[messageId] = reply;\n }\n // Handle `Counter` errors on our platform\n event ErrorReply(bytes32 messageId, bytes payload, bytes4 replyCode);\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode)\n external\n payable\n onlyMirror\n {\n emit ErrorReply(messageId, payload, replyCode);\n }\n }\n ```\n User calls `CounterCaller.counterAdd(uint32 value)`, and the smart contract calls `ICounter.counterAdd(bool _callReply=true, uint32 value)`.\n Result calculated in WASM smart contract on Sails framework in `Counter.add(uint32 value) -> uint32 reply` method will be passed to\n `replyOn_counterAdd(bytes32 messageId, uint32 reply)`.\n @param _message The reply message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"37046:17:161","parameters":{"id":78322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78321,"mutability":"mutable","name":"_message","nameLocation":"37086:8:161","nodeType":"VariableDeclaration","scope":78448,"src":"37064:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78320,"nodeType":"UserDefinedTypeName","pathNode":{"id":78319,"name":"Gear.Message","nameLocations":["37064:4:161","37069:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"37064:12:161"},"referencedDeclaration":83101,"src":"37064:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"37063:32:161"},"returnParameters":{"id":78323,"nodeType":"ParameterList","parameters":[],"src":"37104:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78561,"nodeType":"FunctionDefinition","src":"39220:1028:161","nodes":[],"body":{"id":78560,"nodeType":"Block","src":"39315:933:161","nodes":[],"statements":[{"assignments":[78459],"declarations":[{"constant":false,"id":78459,"mutability":"mutable","name":"claimsLen","nameLocation":"39333:9:161","nodeType":"VariableDeclaration","scope":78560,"src":"39325:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78458,"name":"uint256","nodeType":"ElementaryTypeName","src":"39325:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78462,"initialValue":{"expression":{"id":78460,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78453,"src":"39345:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39353:6:161","memberName":"length","nodeType":"MemberAccess","src":"39345:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39325:34:161"},{"assignments":[78464],"declarations":[{"constant":false,"id":78464,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"39377:16:161","nodeType":"VariableDeclaration","scope":78560,"src":"39369:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78463,"name":"uint256","nodeType":"ElementaryTypeName","src":"39369:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78468,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78465,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"src":"39396:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39408:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39396:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39369:41:161"},{"assignments":[78470],"declarations":[{"constant":false,"id":78470,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"39428:18:161","nodeType":"VariableDeclaration","scope":78560,"src":"39420:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78469,"name":"uint256","nodeType":"ElementaryTypeName","src":"39420:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78475,"initialValue":{"arguments":[{"id":78473,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78464,"src":"39465:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78471,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39449:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39456:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"39449:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39449:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39420:62:161"},{"assignments":[78477],"declarations":[{"constant":false,"id":78477,"mutability":"mutable","name":"offset","nameLocation":"39500:6:161","nodeType":"VariableDeclaration","scope":78560,"src":"39492:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78476,"name":"uint256","nodeType":"ElementaryTypeName","src":"39492:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78479,"initialValue":{"hexValue":"30","id":78478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39509:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39492:18:161"},{"body":{"id":78551,"nodeType":"Block","src":"39561:588:161","statements":[{"assignments":[78494],"declarations":[{"constant":false,"id":78494,"mutability":"mutable","name":"claim","nameLocation":"39600:5:161","nodeType":"VariableDeclaration","scope":78551,"src":"39575:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":78493,"nodeType":"UserDefinedTypeName","pathNode":{"id":78492,"name":"Gear.ValueClaim","nameLocations":["39575:4:161","39580:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"39575:15:161"},"referencedDeclaration":83207,"src":"39575:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":78498,"initialValue":{"baseExpression":{"id":78495,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78453,"src":"39608:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78497,"indexExpression":{"id":78496,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39616:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39608:10:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"39575:43:161"},{"assignments":[78500],"declarations":[{"constant":false,"id":78500,"mutability":"mutable","name":"claimHash","nameLocation":"39640:9:161","nodeType":"VariableDeclaration","scope":78551,"src":"39632:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39632:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78510,"initialValue":{"arguments":[{"expression":{"id":78503,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39672:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39678:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"39672:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78505,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39689:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39695:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"39689:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78507,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39708:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39714:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"39708:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":78501,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"39652:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":78502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39657:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":83413,"src":"39652:19:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":78509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39652:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39632:88:161"},{"expression":{"arguments":[{"id":78514,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78470,"src":"39760:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78515,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"39780:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78516,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78500,"src":"39788:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78511,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39734:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39741:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"39734:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39734:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78518,"nodeType":"ExpressionStatement","src":"39734:64:161"},{"id":78523,"nodeType":"UncheckedBlock","src":"39812:55:161","statements":[{"expression":{"id":78521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78519,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"39840:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39850:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39840:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78522,"nodeType":"ExpressionStatement","src":"39840:12:161"}]},{"assignments":[78525],"declarations":[{"constant":false,"id":78525,"mutability":"mutable","name":"success","nameLocation":"39886:7:161","nodeType":"VariableDeclaration","scope":78551,"src":"39881:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78524,"name":"bool","nodeType":"ElementaryTypeName","src":"39881:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78532,"initialValue":{"arguments":[{"expression":{"id":78527,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39911:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39917:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"39911:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78529,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39930:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39936:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"39930:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78526,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"39896:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39896:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"39881:61:161"},{"condition":{"id":78533,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78525,"src":"39960:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78549,"nodeType":"Block","src":"40055:84:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78543,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40095:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40101:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"40095:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78545,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40112:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40118:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"40112:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78542,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"40078:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40078:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78548,"nodeType":"EmitStatement","src":"40073:51:161"}]},"id":78550,"nodeType":"IfStatement","src":"39956:183:161","trueBody":{"id":78541,"nodeType":"Block","src":"39969:80:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78535,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40005:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40011:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"40005:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78537,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40022:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40028:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"40022:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78534,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"39992:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39992:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78540,"nodeType":"EmitStatement","src":"39987:47:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39541:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78485,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"src":"39545:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39541:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78552,"initializationExpression":{"assignments":[78481],"declarations":[{"constant":false,"id":78481,"mutability":"mutable","name":"i","nameLocation":"39534:1:161","nodeType":"VariableDeclaration","scope":78552,"src":"39526:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78480,"name":"uint256","nodeType":"ElementaryTypeName","src":"39526:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78483,"initialValue":{"hexValue":"30","id":78482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39538:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39526:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39556:3:161","subExpression":{"id":78487,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39556:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78489,"nodeType":"ExpressionStatement","src":"39556:3:161"},"nodeType":"ForStatement","src":"39521:628:161"},{"expression":{"arguments":[{"id":78555,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78470,"src":"40201:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40221:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78557,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78464,"src":"40224:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78553,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"40166:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40173:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"40166:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78457,"id":78559,"nodeType":"Return","src":"40159:82:161"}]},"documentation":{"id":78449,"nodeType":"StructuredDocumentation","src":"38787:428:161","text":" @dev Internal function to claim values from messages in mailbox.\n It transfers value to each claim destination and emits appropriate events:\n - `ValueClaimed` event is emitted if transfer is successful\n - `ValueClaimFailed` event is emitted if transfer fails\n @param _claims The array of value claims to be claimed.\n @return claimsHash The hash of the claimed values."},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"39229:12:161","parameters":{"id":78454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78453,"mutability":"mutable","name":"_claims","nameLocation":"39269:7:161","nodeType":"VariableDeclaration","scope":78561,"src":"39242:34:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":78451,"nodeType":"UserDefinedTypeName","pathNode":{"id":78450,"name":"Gear.ValueClaim","nameLocations":["39242:4:161","39247:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"39242:15:161"},"referencedDeclaration":83207,"src":"39242:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":78452,"nodeType":"ArrayTypeName","src":"39242:17:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"39241:36:161"},"returnParameters":{"id":78457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78456,"mutability":"mutable","name":"claimsHash","nameLocation":"39303:10:161","nodeType":"VariableDeclaration","scope":78561,"src":"39295:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39295:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39294:20:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78594,"nodeType":"FunctionDefinition","src":"40514:586:161","nodes":[],"body":{"id":78593,"nodeType":"Block","src":"40578:522:161","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":78571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78569,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"40643:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"40652:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"40643:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78572,"nodeType":"ExpressionStatement","src":"40643:13:161"},{"expression":{"id":78575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78573,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77320,"src":"40666:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78574,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78564,"src":"40678:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"40666:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78576,"nodeType":"ExpressionStatement","src":"40666:22:161"},{"assignments":[78578,78580],"declarations":[{"constant":false,"id":78578,"mutability":"mutable","name":"value","nameLocation":"40797:5:161","nodeType":"VariableDeclaration","scope":78593,"src":"40789:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78577,"name":"uint128","nodeType":"ElementaryTypeName","src":"40789:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78580,"mutability":"mutable","name":"success","nameLocation":"40809:7:161","nodeType":"VariableDeclaration","scope":78593,"src":"40804:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78579,"name":"bool","nodeType":"ElementaryTypeName","src":"40804:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":78583,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78581,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"40820:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":78582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40820:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"40788:65:161"},{"condition":{"id":78585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"40867:8:161","subExpression":{"id":78584,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78580,"src":"40868:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78592,"nodeType":"IfStatement","src":"40863:231:161","trueBody":{"id":78591,"nodeType":"Block","src":"40877:217:161","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":78587,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78564,"src":"41065:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"41077:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78586,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"41028:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41028:55:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78590,"nodeType":"EmitStatement","src":"41023:60:161"}]}}]},"documentation":{"id":78562,"nodeType":"StructuredDocumentation","src":"40311:198:161","text":" @dev Sets the inheritor address, sets exited flag to `true` and\n transfer all available balance to the inheritor.\n @param _inheritor The address of the inheritor."},"implemented":true,"kind":"function","modifiers":[{"id":78567,"kind":"modifierInvocation","modifierName":{"id":78566,"name":"onlyIfActive","nameLocations":["40565:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"40565:12:161"},"nodeType":"ModifierInvocation","src":"40565:12:161"}],"name":"_setInheritor","nameLocation":"40523:13:161","parameters":{"id":78565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78564,"mutability":"mutable","name":"_inheritor","nameLocation":"40545:10:161","nodeType":"VariableDeclaration","scope":78594,"src":"40537:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78563,"name":"address","nodeType":"ElementaryTypeName","src":"40537:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40536:20:161"},"returnParameters":{"id":78568,"nodeType":"ParameterList","parameters":[],"src":"40578:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78609,"nodeType":"FunctionDefinition","src":"41203:281:161","nodes":[],"body":{"id":78608,"nodeType":"Block","src":"41257:227:161","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":78602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78600,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"41323:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78601,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78597,"src":"41335:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41323:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78603,"nodeType":"ExpressionStatement","src":"41323:22:161"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":78605,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"41467:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78604,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"41454:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41454:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78607,"nodeType":"EmitStatement","src":"41449:28:161"}]},"documentation":{"id":78595,"nodeType":"StructuredDocumentation","src":"41106:92:161","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"41212:16:161","parameters":{"id":78598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78597,"mutability":"mutable","name":"_stateHash","nameLocation":"41237:10:161","nodeType":"VariableDeclaration","scope":78609,"src":"41229:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41229:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41228:20:161"},"returnParameters":{"id":78599,"nodeType":"ParameterList","parameters":[],"src":"41257:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78631,"nodeType":"FunctionDefinition","src":"41658:182:161","nodes":[],"body":{"id":78630,"nodeType":"Block","src":"41730:110:161","nodes":[],"statements":[{"assignments":[78619],"declarations":[{"constant":false,"id":78619,"mutability":"mutable","name":"wvaraAddr","nameLocation":"41748:9:161","nodeType":"VariableDeclaration","scope":78630,"src":"41740:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78618,"name":"address","nodeType":"ElementaryTypeName","src":"41740:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78625,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78621,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78612,"src":"41768:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78620,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"41760:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74990_$","typeString":"type(contract IRouter)"}},"id":78622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41760:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":78623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41780:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74684,"src":"41760:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41760:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"41740:53:161"},{"expression":{"arguments":[{"id":78627,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78619,"src":"41823:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78626,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"41810:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":78628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41810:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"functionReturnParameters":78617,"id":78629,"nodeType":"Return","src":"41803:30:161"}]},"documentation":{"id":78610,"nodeType":"StructuredDocumentation","src":"41526:127:161","text":" @dev Get the `WrappedVara` contract instance.\n @param routerAddr The address of the `Router` contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"41667:6:161","parameters":{"id":78613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78612,"mutability":"mutable","name":"routerAddr","nameLocation":"41682:10:161","nodeType":"VariableDeclaration","scope":78631,"src":"41674:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78611,"name":"address","nodeType":"ElementaryTypeName","src":"41674:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41673:20:161"},"returnParameters":{"id":78617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78631,"src":"41716:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":78615,"nodeType":"UserDefinedTypeName","pathNode":{"id":78614,"name":"IWrappedVara","nameLocations":["41716:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"41716:12:161"},"referencedDeclaration":75006,"src":"41716:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"41715:14:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78661,"nodeType":"FunctionDefinition","src":"42082:253:161","nodes":[],"body":{"id":78660,"nodeType":"Block","src":"42165:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78641,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78636,"src":"42179:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42188:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42179:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78657,"nodeType":"IfStatement","src":"42175:133:161","trueBody":{"id":78656,"nodeType":"Block","src":"42191:117:161","statements":[{"assignments":[78645,null],"declarations":[{"constant":false,"id":78645,"mutability":"mutable","name":"success","nameLocation":"42211:7:161","nodeType":"VariableDeclaration","scope":78656,"src":"42206:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78644,"name":"bool","nodeType":"ElementaryTypeName","src":"42206:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78653,"initialValue":{"arguments":[{"hexValue":"","id":78651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42266:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":78646,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"42223:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42235:4:161","memberName":"call","nodeType":"MemberAccess","src":"42223:16:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":78648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42245:5:161","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":78649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78636,"src":"42259:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"42223:42:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42223:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"42205:64:161"},{"expression":{"id":78654,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"42290:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78640,"id":78655,"nodeType":"Return","src":"42283:14:161"}]}},{"expression":{"hexValue":"74727565","id":78658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42324:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78640,"id":78659,"nodeType":"Return","src":"42317:11:161"}]},"documentation":{"id":78632,"nodeType":"StructuredDocumentation","src":"41846:231:161","text":" @dev Transfer ETH to destination address.\n It has gas limit of 5_000 to prevent DoS attacks.\n @param destination The address to transfer ETH to.\n @param value The amount of ETH to transfer."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"42091:14:161","parameters":{"id":78637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78634,"mutability":"mutable","name":"destination","nameLocation":"42114:11:161","nodeType":"VariableDeclaration","scope":78661,"src":"42106:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78633,"name":"address","nodeType":"ElementaryTypeName","src":"42106:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78636,"mutability":"mutable","name":"value","nameLocation":"42135:5:161","nodeType":"VariableDeclaration","scope":78661,"src":"42127:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78635,"name":"uint128","nodeType":"ElementaryTypeName","src":"42127:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"42105:36:161"},"returnParameters":{"id":78640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78661,"src":"42159:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78638,"name":"bool","nodeType":"ElementaryTypeName","src":"42159:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42158:6:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78722,"nodeType":"FunctionDefinition","src":"42636:1106:161","nodes":[],"body":{"id":78721,"nodeType":"Block","src":"42678:1064:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42692:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42696:5:161","memberName":"value","nodeType":"MemberAccess","src":"42692:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42704:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42692:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42709:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42713:4:161","memberName":"data","nodeType":"MemberAccess","src":"42709:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42718:6:161","memberName":"length","nodeType":"MemberAccess","src":"42709:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42728:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42709:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42692:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42853:8:161","subExpression":{"id":78690,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"42854:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78692,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42865:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42869:4:161","memberName":"data","nodeType":"MemberAccess","src":"42865:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42874:6:161","memberName":"length","nodeType":"MemberAccess","src":"42865:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":78695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42884:4:161","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"42865:23:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42853:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78718,"nodeType":"Block","src":"43683:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78715,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74289,"src":"43704:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43704:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78717,"nodeType":"RevertStatement","src":"43697:28:161"}]},"id":78719,"nodeType":"IfStatement","src":"42849:887:161","trueBody":{"id":78714,"nodeType":"Block","src":"42890:787:161","statements":[{"assignments":[78700],"declarations":[{"constant":false,"id":78700,"mutability":"mutable","name":"callReply","nameLocation":"43353:9:161","nodeType":"VariableDeclaration","scope":78714,"src":"43345:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78699,"name":"uint256","nodeType":"ElementaryTypeName","src":"43345:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"documentation":" @dev We only allow arbitrary calls to `!isSmall` `Mirror` contracts,\n which are more likely to come from their ABI interfaces.\n The minimum call data length is 0x24 (36 bytes) because:\n - 0x04 (4 bytes) for the function selector [0x00..0x04)\n - 0x20 (32 bytes) for the bool `callReply` [0x04..0x24)","id":78701,"nodeType":"VariableDeclarationStatement","src":"43345:17:161"},{"AST":{"nativeSrc":"43402:63:161","nodeType":"YulBlock","src":"43402:63:161","statements":[{"nativeSrc":"43420:31:161","nodeType":"YulAssignment","src":"43420:31:161","value":{"arguments":[{"kind":"number","nativeSrc":"43446:4:161","nodeType":"YulLiteral","src":"43446:4:161","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"43433:12:161","nodeType":"YulIdentifier","src":"43433:12:161"},"nativeSrc":"43433:18:161","nodeType":"YulFunctionCall","src":"43433:18:161"},"variableNames":[{"name":"callReply","nativeSrc":"43420:9:161","nodeType":"YulIdentifier","src":"43420:9:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78700,"isOffset":false,"isSlot":false,"src":"43420:9:161","valueSize":1}],"flags":["memory-safe"],"id":78702,"nodeType":"InlineAssembly","src":"43377:88:161"},{"assignments":[78704],"declarations":[{"constant":false,"id":78704,"mutability":"mutable","name":"messageId","nameLocation":"43487:9:161","nodeType":"VariableDeclaration","scope":78714,"src":"43479:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43479:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78712,"initialValue":{"arguments":[{"expression":{"id":78706,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"43512:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43516:4:161","memberName":"data","nodeType":"MemberAccess","src":"43512:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78708,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78700,"src":"43522:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43535:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43522:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78705,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77922,"src":"43499:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":78711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43499:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43479:58:161"},{"AST":{"nativeSrc":"43577:90:161","nodeType":"YulBlock","src":"43577:90:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43602:4:161","nodeType":"YulLiteral","src":"43602:4:161","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"43608:9:161","nodeType":"YulIdentifier","src":"43608:9:161"}],"functionName":{"name":"mstore","nativeSrc":"43595:6:161","nodeType":"YulIdentifier","src":"43595:6:161"},"nativeSrc":"43595:23:161","nodeType":"YulFunctionCall","src":"43595:23:161"},"nativeSrc":"43595:23:161","nodeType":"YulExpressionStatement","src":"43595:23:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43642:4:161","nodeType":"YulLiteral","src":"43642:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"43648:4:161","nodeType":"YulLiteral","src":"43648:4:161","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"43635:6:161","nodeType":"YulIdentifier","src":"43635:6:161"},"nativeSrc":"43635:18:161","nodeType":"YulFunctionCall","src":"43635:18:161"},"nativeSrc":"43635:18:161","nodeType":"YulExpressionStatement","src":"43635:18:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78704,"isOffset":false,"isSlot":false,"src":"43608:9:161","valueSize":1}],"flags":["memory-safe"],"id":78713,"nodeType":"InlineAssembly","src":"43552:115:161"}]}},"id":78720,"nodeType":"IfStatement","src":"42688:1048:161","trueBody":{"id":78689,"nodeType":"Block","src":"42731:112:161","statements":[{"assignments":[78678],"declarations":[{"constant":false,"id":78678,"mutability":"mutable","name":"value","nameLocation":"42753:5:161","nodeType":"VariableDeclaration","scope":78689,"src":"42745:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78677,"name":"uint128","nodeType":"ElementaryTypeName","src":"42745:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78684,"initialValue":{"arguments":[{"expression":{"id":78681,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42769:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42773:5:161","memberName":"value","nodeType":"MemberAccess","src":"42769:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42761:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":78679,"name":"uint128","nodeType":"ElementaryTypeName","src":"42761:7:161","typeDescriptions":{}}},"id":78683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42761:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"42745:34:161"},{"eventCall":{"arguments":[{"id":78686,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78678,"src":"42826:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78685,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"42799:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42799:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78688,"nodeType":"EmitStatement","src":"42794:38:161"}]}}]},"documentation":{"id":78662,"nodeType":"StructuredDocumentation","src":"42341:290:161","text":" @dev Fallback function for top-up owned balance in native currency (ETH)\n and for sending arbitrary calls to `!isSmall` `Mirror` contracts\n as messages to Sails framework.\n See the description of `Mirror.isSmall` field for details."},"implemented":true,"kind":"fallback","modifiers":[{"id":78665,"kind":"modifierInvocation","modifierName":{"id":78664,"name":"whenNotPaused","nameLocations":["42664:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"42664:13:161"},"nodeType":"ModifierInvocation","src":"42664:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78663,"nodeType":"ParameterList","parameters":[],"src":"42644:2:161"},"returnParameters":{"id":78666,"nodeType":"ParameterList","parameters":[],"src":"42678:0:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77300,"name":"IMirror","nameLocations":["2640:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"2640:7:161"},"id":77301,"nodeType":"InheritanceSpecifier","src":"2640:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":77299,"nodeType":"StructuredDocumentation","src":"621:1999:161","text":" @dev Mirror smart contract is responsible for storing the minimal state of programs on our platform\n and transitioning from one state to another by calling `performStateTransition(...)`. It's built\n on actor-model architecture, and in Ethereum, we implement this through \"request-response\" model.\n This means we have two types of events:\n - \"Requested\" events - when user calls one of the methods marked as \"Primary Gear logic\" we emit such an event,\n and all our nodes process it off-chain\n - \"Responded\" events - when we receive response from our nodes and transmit it back to Ethereum.\n All logic called within `performStateTransition(...)` and leading to methods marked as\n \"Private calls related to performStateTransition\" are such events.\n It's important not to confuse these two, as this is how we implement the actor model in Ethereum.\n Mirror economic model has two balances:\n - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`.\n This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`.\n - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain.\n It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform.\n You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the\n Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users\n can use it for free. This is called the \"reverse-gas model\". Developer can also require the presence of `value` in\n the owned balance when calling methods in a WASM smart contract to protect their program from spam."},"fullyImplemented":true,"linearizedBaseContracts":[78723,74395],"name":"Mirror","nameLocation":"2630:6:161","scope":78724,"usedErrors":[74253,74256,74259,74262,74265,74268,74271,74274,74277,74279,74281,74283,74285,74287,74289],"usedEvents":[74141,74154,74165,74172,74177,74182,74193,74202,74213,74222,74229,74236,74243,74250]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":161} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUpWithPermit","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v","type":"uint8","internalType":"uint8"},{"name":"_r","type":"bytes32","internalType":"bytes32"},{"name":"_s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getOutgoingActionsMerkleRoot","inputs":[{"name":"_stateHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isOutgoingActionsProcessed","inputs":[{"name":"_messageId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"transitionHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"processOutgoingAction","inputs":[{"name":"_stateHash","type":"bytes32","internalType":"bytes32"},{"name":"_totalLeaves","type":"uint256","internalType":"uint256"},{"name":"_leafIndex","type":"uint256","internalType":"uint256"},{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyCallFailed","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"OutgoingActionAlreadyProcessed","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OutgoingActionInvalidMerkleProof","inputs":[]},{"type":"error","name":"OutgoingActionInvalidPayload","inputs":[]},{"type":"error","name":"OutgoingActionMerkleRootNotFound","inputs":[{"name":"stateHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008d57601f611ebb38819003918201601f19168301916001600160401b038311848410176100915780849260209460405283398101031261008d57516001600160a01b038116810361008d57608052604051611e1590816100a68239608051818181610259015281816103e7015281816112a40152818161132e015281816113cf01526114730152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610181575b5061001861128f565b34151580610179575b1561005b577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016e575b1561015f57610078611445565b6001541580159061014b575b1561013c576001600160801b03341661009c816113b7565b600154903060601b5f528160145260345f20915f198114610128576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610084565b6399dd405f60e01b5f5260045ffd5b50602436101561006b565b503615610021565b5f905f3560e01c9081630403e33a14611165575080630d408e191461113b57806336a52a181461110f57806342129d00146110135780634b885b9a146107d95780635ce6c327146107b6578063701da98e14610799578063704ed542146107435780637a8e0cdd146106ad57806391d5a64c146106525780639ce110d714610629578063affed0e01461060b578063bfa28576146104bc578063c6049692146103a0578063e43f343314610335578063ed3513fc1461028b5763f887ea400361000f57346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b50346102885760a0366003190112610288576064356001600160401b038111610331576102bc903690600401611190565b608435916001600160401b03831161032d573660238401121561032d578260040135916001600160401b038311610329573660248460051b860101116103295760246103129401916044356024356004356115ba565b1561031a5780f35b63564dcfad60e01b8152600490fd5b8480fd5b8380fd5b5080fd5b503461028857806003193601126102885761034e61128f565b60025460ff8116156103915761037a90476001600160801b03169060081c6001600160a01b03166119a7565b156103825780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102885760a0366003190112610288576103ba6111bd565b6044359060ff82168092036104b8576103d161128f565b6103d9611445565b826001600160a01b0361040b7f000000000000000000000000000000000000000000000000000000000000000061153a565b16803b1561033157819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af161048e575b505f516020611df55f395f51905f5291610484602092611460565b604051908152a180f35b91610484846104ae602094965f516020611df55f395f51905f5296611256565b9492505091610469565b8280fd5b5034610288576080366003190112610288576004356001600160a01b03811690819003610331576024356001600160a01b038116908190036104b85760443580151580910361032d57606435926001600160801b0384168094036103295761052261132c565b600354906001600160a01b0382166105fc5760ff8260a01c166105ed577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b0384166105de576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806105c3575080f35b60205f516020611df55f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b50346102885780600319360112610288576020600154604051908152f35b50346102885780600319360112610288576003546040516001600160a01b039091168152602090f35b50346102885760203660031901126102885761066c61128f565b610674611445565b61067c611521565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610288576024356001600160401b038111610331576106fa7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611190565b61070592919261128f565b61070d611445565b610715611521565b6001600160801b03341690610729826113b7565b61073d604051928392339660043585611228565b0390a280f35b5034610288576020366003190112610288575f516020611df55f395f51905f52602061076d6111bd565b61077561128f565b61077d611445565b61078681611460565b6001600160801b0360405191168152a180f35b503461028857806003193601126102885760209054604051908152f35b5034610288578060031936011261028857602060ff600254166040519015158152f35b506020366003190112610dab576001600160401b0360043511610dab576004353603610100600319820112610dab5761081061132c565b61081e6004356004016111d3565b306001600160a01b03909116036110045760a4600435019061083f826111e7565b610fe9575b60043560e401359060221901811215610dab576001600160401b03600482813501013511610dab57600481813501013560051b3603602482600435010113610dab576004803582010135600581901b81900460201490151715610128576108b4600482813501013560051b611805565b905f935f5b6004838135010135811015610dc357600581901b6004358401908101602401359036036101021901811215610dab5760049084823501010190601f19823603019160e08312610dab576040519760c089018981106001600160401b03821117610daf57604090815260208301358a52820135906001600160a01b0382168203610dab5760208a0191825260608301356001600160401b038111610dab5760209084010136601f82011215610dab5761097890369060208135910161140f565b9160408b019283526080840135956001600160801b0387168703610dab5760409060608d01978852607f190112610dab5760405195604087018781106001600160401b03821117610daf5760405260a0850135875260c08501356001600160e01b031981168103610dab578760808e60208301938452015260e086019c8d3580151596878203610dab5760019a602098610a8d958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b608882015203016015810184520182611256565b51902088820152019760a0820135610ab257506020610aac9101611871565b016108b9565b610abb906111e7565b15610ca8576001600160f81b0319610ad560c0830161185c565b5f1a60f81b16156060905f14610c3257505f80610b02610afb606085016020860161182a565b369161140f565b610b0e604085016111d3565b6001600160801b03610b22608087016111f4565b16602083519301916207a120f1610b37611388565b5015610b44575b50610aac565b610b65610b53604083016111d3565b610b5f608084016111f4565b906119a7565b15610bcf575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610b9a608084016111f4565b60a06001600160e01b0319610bb160c0870161185c565b16946001600160801b0384519316835201356020820152a25f610b3e565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610bfc604083016111d3565b610c08608084016111f4565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610b6b565b5f8091610ca3610c48606086016020870161182a565b9290610c86610c5960c0890161185c565b91604051958694634a646c7f60e01b602087015260208b0135602487015260448601526084850191611208565b9063ffffffff60e01b16606483015203601f198101835282611256565b610b02565b610cb7610b53604083016111d3565b15610d48575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610cee606083016020840161182a565b610cfa608085016111f4565b60a06001600160e01b0319610d1160c0880161185c565b16956001600160801b03610d32604051968796606088526060880191611208565b93166020850152013560408301520390a2610aac565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d75604083016111d3565b610d81608084016111f4565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610cbd565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509350600490813501013560051b9020602460043501359060c46004350135825f5260046020528060405f205560446004350193610e00856111e7565b15610fb6576020955083610e186064600435016111d3565b610e20611445565b600280546001600160a81b031916600883811b610100600160a81b031691909117600117918290555f9291476001600160801b031691610e6b9183911c6001600160a01b03166119a7565b15610f69575b50505b81815403610f38575b5050610e96610e906004356004016111d3565b956111e7565b90610ea56064600435016111d3565b610ebc610eb66084600435016111f4565b926111e7565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a8152610f2d60ba82611256565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093086604051868152a1835f610e7d565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a15f80610e71565b6001600160a01b03610fcc6004356064016111d3565b16610fda5783602096610e74565b6304c3c7a160e41b5f5260045ffd5b610fff610ffa6084600435016111f4565b6113b7565b610844565b63ed488aa360e01b5f5260045ffd5b6040366003190112610dab576004356001600160401b038111610dab5761103e903690600401611190565b9060243590811515809203610dab5761105561128f565b61105d611445565b600154158015906110fb575b1561013c576001600160801b03341690611082826113b7565b600154933060601b5f528460145260345f20935f198614610128576110e27f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5493600160209801600155604051938785526080898601526080850191611208565b93604083015260608201528033930390a2604051908152f35b506003546001600160a01b03163314611069565b34610dab575f366003190112610dab5760025460405160089190911c6001600160a01b03168152602090f35b34610dab576020366003190112610dab576004355f526004602052602060405f2054604051908152f35b34610dab576020366003190112610dab576020906004355f526005825260ff60405f20541615158152f35b9181601f84011215610dab578235916001600160401b038311610dab5760208381860195010111610dab57565b600435906001600160801b0382168203610dab57565b356001600160a01b0381168103610dab5790565b358015158103610dab5790565b356001600160801b0381168103610dab5790565b908060209392818452848401375f828201840152601f01601f1916010190565b9260409261124f916001600160801b03939796978652606060208701526060860191611208565b9416910152565b90601f801991011681019081106001600160401b03821117610daf57604052565b90816020910312610dab57518015158103610dab5790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611321575f916112f2575b506112e357565b63d93c066560e01b5f5260045ffd5b611314915060203d60201161131a575b61130c8183611256565b810190611277565b5f6112dc565b503d611302565b6040513d5f823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361135e57565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610daf57601f01601f191660200190565b3d156113b2573d906113998261136d565b916113a76040519384611256565b82523d5f602084013e565b606090565b6001600160801b0316806113c85750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16113f8611388565b501561140057565b6308eb200360e41b5f5260045ffd5b92919261141b8261136d565b916114296040519384611256565b829481845281830111610dab578281602093845f960137010152565b60ff6002541661145157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806114715750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b036114a98561153a565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af1908115611321575f91611502575b50156114f357565b6303a25d1960e31b5f5260045ffd5b61151b915060203d60201161131a5761130c8183611256565b5f6114eb565b6001541561152b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115611321575f91611578575b506001600160a01b031690565b90506020813d6020116115b2575b8161159360209383611256565b81010312610dab57516001600160a01b0381168103610dab575f61156b565b3d9150611586565b909496959380156117fa57833560f81c92600284149687156117ed5760448311156117ed57600186013596875f52600560205260ff60405f2054166117da5788999a60356021899a9b990135990135958660801c9b6117c1575b871595861561179d576046811061178c57604611610dab575b805f52600460205260405f205490811561177a57509061165b95949392915f95159788611719575b506119d4565b1561170a57845f52600560205260405f20600160ff19825416179055611686575b5050505050600190565b600103611694575b8061167c565b61169f575b8061168e565b826116ac9160601c6119a7565b156116f557604080519182526001600160801b039290921660208201527fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839190a15f8080611699565b633a72506360e11b5f5260045260245260445ffd5b639adc849f60e01b5f5260045ffd5b8a60018b03611729575b50611655565b611734575b8a611723565b90955060405160208101918d83526001600160601b03198d1660408301526001600160801b031916605482015260448152611770606482611256565b519020945f61172e565b6307e63dbd60e51b5f5260045260245ffd5b505050505050505050505050505f90565b600189146117ac575b5061162d565b606a811061178c57606a11610dab575f6117a6565b6045860315611614575050505050505050505050505f90565b87631bce979960e11b5f5260045260245ffd5b505f985050505050505050565b505f96505050505050565b6040519190601f01601f191682016001600160401b03811183821017610dab57604052565b903590601e1981360301821215610dab57018035906001600160401b038211610dab57602001918136038313610dab57565b356001600160e01b031981168103610dab5790565b61187a81611a63565b156118825750565b61188e60c082016111e7565b6118fb575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736118f66118c3602084016111d3565b6118d0604085018561182a565b6118df606087959395016111f4565b9060405194859460018060a01b0316973585611228565b0390a2565b602081015f8061190a836111d3565b81611918604087018761182a565b9190826040519384928337810182815203926207a120f1611937611388565b50156119435750611893565b61196d7f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8916111d3565b611979606084016111f4565b60408051943585526001600160801b0390911660208501526001600160a01b039091169290819081016118f6565b906001600160801b031690816119be575050600190565b5f8080938193611388f16119d0611388565b5090565b91949590929384811015611a58575f969092905b86881015611a4e57808860051b860135906001808716148015611a42575b15611a2d57505f5260205260018060405f20945b811c965f1901811c0197019694926119e8565b9091505f5260205260018060405f2094611a1a565b50876001870114611a06565b1495509350505050565b509450505050505f90565b611a70604082018261182a565b90916001600160a01b0380611a87602084016111d3565b16149081611dd6575b5080611dcd575b15611dc75781358060f81c90600182101580611dbc575b15611db45760f31c611fe016600181018310611db4576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611d8a575b80611d60575b80611d36575b80611d0c575b80611cf5575b80611ccb575b80611ca1575b80611c77575b80611c4d575b80611c23575b80611bf9575b80611bcf575b15611bc6578190035f190191826001611b4e82611805565b93870101833760218501359460418101359160018103611b755750505090919250a1600190565b60028103611b8657505050a2600190565b600381979593969497145f14611ba257505090919293a3600190565b600414611bb5575b505050505050600190565b6061013594a45f8080808080611baa565b50505050505f90565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611b36565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611b30565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611b2a565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611b24565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611b1e565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611b18565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611b12565b505f516020611df55f395f51905f52841415611b0c565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611b06565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611b00565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611afa565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611af4565b505050505f90565b506004821115611aae565b50505f90565b50801515611a97565b6001600160801b0391506060611dec91016111f4565b16155f611a9056fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2730:49993:160:-:0;;;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;10729:16;;2730:49993;;;;;;;;10729:16;2730:49993;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2730:49993:160;;;;;;-1:-1:-1;2730:49993:160;;;;;-1:-1:-1;2730:49993:160","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610181575b5061001861128f565b34151580610179575b1561005b577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016e575b1561015f57610078611445565b6001541580159061014b575b1561013c576001600160801b03341661009c816113b7565b600154903060601b5f528160145260345f20915f198114610128576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610084565b6399dd405f60e01b5f5260045ffd5b50602436101561006b565b503615610021565b5f905f3560e01c9081630403e33a14611165575080630d408e191461113b57806336a52a181461110f57806342129d00146110135780634b885b9a146107d95780635ce6c327146107b6578063701da98e14610799578063704ed542146107435780637a8e0cdd146106ad57806391d5a64c146106525780639ce110d714610629578063affed0e01461060b578063bfa28576146104bc578063c6049692146103a0578063e43f343314610335578063ed3513fc1461028b5763f887ea400361000f57346102885780600319360112610288576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b50346102885760a0366003190112610288576064356001600160401b038111610331576102bc903690600401611190565b608435916001600160401b03831161032d573660238401121561032d578260040135916001600160401b038311610329573660248460051b860101116103295760246103129401916044356024356004356115ba565b1561031a5780f35b63564dcfad60e01b8152600490fd5b8480fd5b8380fd5b5080fd5b503461028857806003193601126102885761034e61128f565b60025460ff8116156103915761037a90476001600160801b03169060081c6001600160a01b03166119a7565b156103825780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102885760a0366003190112610288576103ba6111bd565b6044359060ff82168092036104b8576103d161128f565b6103d9611445565b826001600160a01b0361040b7f000000000000000000000000000000000000000000000000000000000000000061153a565b16803b1561033157819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af161048e575b505f516020611df55f395f51905f5291610484602092611460565b604051908152a180f35b91610484846104ae602094965f516020611df55f395f51905f5296611256565b9492505091610469565b8280fd5b5034610288576080366003190112610288576004356001600160a01b03811690819003610331576024356001600160a01b038116908190036104b85760443580151580910361032d57606435926001600160801b0384168094036103295761052261132c565b600354906001600160a01b0382166105fc5760ff8260a01c166105ed577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b0384166105de576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806105c3575080f35b60205f516020611df55f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b50346102885780600319360112610288576020600154604051908152f35b50346102885780600319360112610288576003546040516001600160a01b039091168152602090f35b50346102885760203660031901126102885761066c61128f565b610674611445565b61067c611521565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610288576024356001600160401b038111610331576106fa7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611190565b61070592919261128f565b61070d611445565b610715611521565b6001600160801b03341690610729826113b7565b61073d604051928392339660043585611228565b0390a280f35b5034610288576020366003190112610288575f516020611df55f395f51905f52602061076d6111bd565b61077561128f565b61077d611445565b61078681611460565b6001600160801b0360405191168152a180f35b503461028857806003193601126102885760209054604051908152f35b5034610288578060031936011261028857602060ff600254166040519015158152f35b506020366003190112610dab576001600160401b0360043511610dab576004353603610100600319820112610dab5761081061132c565b61081e6004356004016111d3565b306001600160a01b03909116036110045760a4600435019061083f826111e7565b610fe9575b60043560e401359060221901811215610dab576001600160401b03600482813501013511610dab57600481813501013560051b3603602482600435010113610dab576004803582010135600581901b81900460201490151715610128576108b4600482813501013560051b611805565b905f935f5b6004838135010135811015610dc357600581901b6004358401908101602401359036036101021901811215610dab5760049084823501010190601f19823603019160e08312610dab576040519760c089018981106001600160401b03821117610daf57604090815260208301358a52820135906001600160a01b0382168203610dab5760208a0191825260608301356001600160401b038111610dab5760209084010136601f82011215610dab5761097890369060208135910161140f565b9160408b019283526080840135956001600160801b0387168703610dab5760409060608d01978852607f190112610dab5760405195604087018781106001600160401b03821117610daf5760405260a0850135875260c08501356001600160e01b031981168103610dab578760808e60208301938452015260e086019c8d3580151596878203610dab5760019a602098610a8d958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b608882015203016015810184520182611256565b51902088820152019760a0820135610ab257506020610aac9101611871565b016108b9565b610abb906111e7565b15610ca8576001600160f81b0319610ad560c0830161185c565b5f1a60f81b16156060905f14610c3257505f80610b02610afb606085016020860161182a565b369161140f565b610b0e604085016111d3565b6001600160801b03610b22608087016111f4565b16602083519301916207a120f1610b37611388565b5015610b44575b50610aac565b610b65610b53604083016111d3565b610b5f608084016111f4565b906119a7565b15610bcf575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610b9a608084016111f4565b60a06001600160e01b0319610bb160c0870161185c565b16946001600160801b0384519316835201356020820152a25f610b3e565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610bfc604083016111d3565b610c08608084016111f4565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610b6b565b5f8091610ca3610c48606086016020870161182a565b9290610c86610c5960c0890161185c565b91604051958694634a646c7f60e01b602087015260208b0135602487015260448601526084850191611208565b9063ffffffff60e01b16606483015203601f198101835282611256565b610b02565b610cb7610b53604083016111d3565b15610d48575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610cee606083016020840161182a565b610cfa608085016111f4565b60a06001600160e01b0319610d1160c0880161185c565b16956001600160801b03610d32604051968796606088526060880191611208565b93166020850152013560408301520390a2610aac565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d75604083016111d3565b610d81608084016111f4565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610cbd565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509350600490813501013560051b9020602460043501359060c46004350135825f5260046020528060405f205560446004350193610e00856111e7565b15610fb6576020955083610e186064600435016111d3565b610e20611445565b600280546001600160a81b031916600883811b610100600160a81b031691909117600117918290555f9291476001600160801b031691610e6b9183911c6001600160a01b03166119a7565b15610f69575b50505b81815403610f38575b5050610e96610e906004356004016111d3565b956111e7565b90610ea56064600435016111d3565b610ebc610eb66084600435016111f4565b926111e7565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a8152610f2d60ba82611256565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093086604051868152a1835f610e7d565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a15f80610e71565b6001600160a01b03610fcc6004356064016111d3565b16610fda5783602096610e74565b6304c3c7a160e41b5f5260045ffd5b610fff610ffa6084600435016111f4565b6113b7565b610844565b63ed488aa360e01b5f5260045ffd5b6040366003190112610dab576004356001600160401b038111610dab5761103e903690600401611190565b9060243590811515809203610dab5761105561128f565b61105d611445565b600154158015906110fb575b1561013c576001600160801b03341690611082826113b7565b600154933060601b5f528460145260345f20935f198614610128576110e27f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5493600160209801600155604051938785526080898601526080850191611208565b93604083015260608201528033930390a2604051908152f35b506003546001600160a01b03163314611069565b34610dab575f366003190112610dab5760025460405160089190911c6001600160a01b03168152602090f35b34610dab576020366003190112610dab576004355f526004602052602060405f2054604051908152f35b34610dab576020366003190112610dab576020906004355f526005825260ff60405f20541615158152f35b9181601f84011215610dab578235916001600160401b038311610dab5760208381860195010111610dab57565b600435906001600160801b0382168203610dab57565b356001600160a01b0381168103610dab5790565b358015158103610dab5790565b356001600160801b0381168103610dab5790565b908060209392818452848401375f828201840152601f01601f1916010190565b9260409261124f916001600160801b03939796978652606060208701526060860191611208565b9416910152565b90601f801991011681019081106001600160401b03821117610daf57604052565b90816020910312610dab57518015158103610dab5790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611321575f916112f2575b506112e357565b63d93c066560e01b5f5260045ffd5b611314915060203d60201161131a575b61130c8183611256565b810190611277565b5f6112dc565b503d611302565b6040513d5f823e3d90fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361135e57565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610daf57601f01601f191660200190565b3d156113b2573d906113998261136d565b916113a76040519384611256565b82523d5f602084013e565b606090565b6001600160801b0316806113c85750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16113f8611388565b501561140057565b6308eb200360e41b5f5260045ffd5b92919261141b8261136d565b916114296040519384611256565b829481845281830111610dab578281602093845f960137010152565b60ff6002541661145157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806114715750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b036114a98561153a565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af1908115611321575f91611502575b50156114f357565b6303a25d1960e31b5f5260045ffd5b61151b915060203d60201161131a5761130c8183611256565b5f6114eb565b6001541561152b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa908115611321575f91611578575b506001600160a01b031690565b90506020813d6020116115b2575b8161159360209383611256565b81010312610dab57516001600160a01b0381168103610dab575f61156b565b3d9150611586565b909496959380156117fa57833560f81c92600284149687156117ed5760448311156117ed57600186013596875f52600560205260ff60405f2054166117da5788999a60356021899a9b990135990135958660801c9b6117c1575b871595861561179d576046811061178c57604611610dab575b805f52600460205260405f205490811561177a57509061165b95949392915f95159788611719575b506119d4565b1561170a57845f52600560205260405f20600160ff19825416179055611686575b5050505050600190565b600103611694575b8061167c565b61169f575b8061168e565b826116ac9160601c6119a7565b156116f557604080519182526001600160801b039290921660208201527fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839190a15f8080611699565b633a72506360e11b5f5260045260245260445ffd5b639adc849f60e01b5f5260045ffd5b8a60018b03611729575b50611655565b611734575b8a611723565b90955060405160208101918d83526001600160601b03198d1660408301526001600160801b031916605482015260448152611770606482611256565b519020945f61172e565b6307e63dbd60e51b5f5260045260245ffd5b505050505050505050505050505f90565b600189146117ac575b5061162d565b606a811061178c57606a11610dab575f6117a6565b6045860315611614575050505050505050505050505f90565b87631bce979960e11b5f5260045260245ffd5b505f985050505050505050565b505f96505050505050565b6040519190601f01601f191682016001600160401b03811183821017610dab57604052565b903590601e1981360301821215610dab57018035906001600160401b038211610dab57602001918136038313610dab57565b356001600160e01b031981168103610dab5790565b61187a81611a63565b156118825750565b61188e60c082016111e7565b6118fb575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736118f66118c3602084016111d3565b6118d0604085018561182a565b6118df606087959395016111f4565b9060405194859460018060a01b0316973585611228565b0390a2565b602081015f8061190a836111d3565b81611918604087018761182a565b9190826040519384928337810182815203926207a120f1611937611388565b50156119435750611893565b61196d7f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8916111d3565b611979606084016111f4565b60408051943585526001600160801b0390911660208501526001600160a01b039091169290819081016118f6565b906001600160801b031690816119be575050600190565b5f8080938193611388f16119d0611388565b5090565b91949590929384811015611a58575f969092905b86881015611a4e57808860051b860135906001808716148015611a42575b15611a2d57505f5260205260018060405f20945b811c965f1901811c0197019694926119e8565b9091505f5260205260018060405f2094611a1a565b50876001870114611a06565b1495509350505050565b509450505050505f90565b611a70604082018261182a565b90916001600160a01b0380611a87602084016111d3565b16149081611dd6575b5080611dcd575b15611dc75781358060f81c90600182101580611dbc575b15611db45760f31c611fe016600181018310611db4576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611d8a575b80611d60575b80611d36575b80611d0c575b80611cf5575b80611ccb575b80611ca1575b80611c77575b80611c4d575b80611c23575b80611bf9575b80611bcf575b15611bc6578190035f190191826001611b4e82611805565b93870101833760218501359460418101359160018103611b755750505090919250a1600190565b60028103611b8657505050a2600190565b600381979593969497145f14611ba257505090919293a3600190565b600414611bb5575b505050505050600190565b6061013594a45f8080808080611baa565b50505050505f90565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611b36565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611b30565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611b2a565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611b24565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611b1e565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611b18565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611b12565b505f516020611df55f395f51905f52841415611b0c565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611b06565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611b00565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611afa565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611af4565b505050505f90565b506004821115611aae565b50505f90565b50801515611a97565b6001600160801b0391506060611dec91016111f4565b16155f611a9056fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2730:49993:160:-:0;;;;;;;;;;-1:-1:-1;12987:69:160;;;:::i;:::-;51671:9;:13;;:37;;;-1:-1:-1;51667:1048:160;;;51778:33;2730:49993;;;-1:-1:-1;;;;;51671:9:160;2730:49993;;;51778:33;2730:49993;51667:1048;2730:49993;51833:7;2730:49993;;;;51832:8;:35;;;51667:1048;51828:887;;;11903:67;;:::i;:::-;11698:5;2730:49993;11698:9;;;:38;;;51828:887;2730:49993;;;-1:-1:-1;;;;;51671:9:160;2730:49993;29490:6;;;:::i;:::-;11698:5;2730:49993;29711:154;;;;51683:1;29711:154;;;;;51683:1;29711:154;2730:49993;;;;;;;11698:5;2730:49993;11698:5;2730:49993;29897:70;2730:49993;;;;;;;;;;;;;;;;;;51683:1;2730:49993;;;;51683:1;2730:49993;;;;;;;;;;;;;;;;;;;;52356:88;52501:14;;29711:154;2730:49993;;;29926:10;;29897:70;;;;51683:1;52531:115;2730:49993;51683:1;52531:115;2730:49993;;;;51683:1;2730:49993;;;;;51683:1;2730:49993;;;;;51683:1;2730:49993;;51683:1;2730:49993;11698:38;-1:-1:-1;51833:7:160;2730:49993;-1:-1:-1;;;;;2730:49993:160;11711:10;:25;11698:38;;51828:887;52683:21;;;51683:1;52683:21;2730:49993;51683:1;52683:21;51832:35;2730:49993;51863:4;2730:49993;51844:23;;51832:35;;51671:37;2730:49993;;51688:20;51671:37;;2730:49993;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6178:31;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;19679:89;2730:49993;;;;;;;;;19679:89;:::i;:::-;2730:49993;;;;;;-1:-1:-1;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12987:69;;:::i;:::-;12468:6;2730:49993;;;;;;;30748:37;;30500:21;-1:-1:-1;;;;;2730:49993:160;;;;-1:-1:-1;;;;;2730:49993:160;30748:37;:::i;:::-;2730:49993;;;;;;-1:-1:-1;;;2730:49993:160;;;;;;-1:-1:-1;;;2730:49993:160;;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;;;:::i;:::-;;;;;;;;;;;;12987:69;;:::i;:::-;11903:67;;:::i;:::-;2730:49993;-1:-1:-1;;;;;18329:14:160;18336:6;18329:14;:::i;:::-;2730:49993;18329:79;;;;;2730:49993;;18329:79;2730:49993;;;;;;;;;18329:79;;18351:10;2730:49993;18329:79;;2730:49993;18371:4;2730:49993;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18329:79;;;;2730:49993;18445:6;-1:-1:-1;;;;;;;;;;;18445:6:160;;2730:49993;18445:6;;:::i;:::-;2730:49993;;;;;18468:39;2730:49993;;18329:79;;18445:6;18329:79;;2730:49993;18329:79;;-1:-1:-1;;;;;;;;;;;18329:79:160;;:::i;:::-;;;;;;;;2730:49993;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;12608:63;;:::i;:::-;21000:11;2730:49993;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;811:66:11;2730:49993:160;;-1:-1:-1;;;;;2730:49993:160;;811:66:11;;-1:-1:-1;;;;;;811:66:11;;;;;;;;;-1:-1:-1;;;811:66:11;;21000:11:160;811:66:11;-1:-1:-1;;;;;;811:66:11;;;;21450:30:160;21446:124;;2730:49993;;;21446:124;2730:49993;-1:-1:-1;;;;;;;;;;;2730:49993:160;;;;;;21501:58;2730:49993;;811:66:11;-1:-1:-1;;;811:66:11;;2730:49993:160;811:66:11;;2730:49993:160;-1:-1:-1;;;2730:49993:160;;;;;;-1:-1:-1;;;2730:49993:160;;;;;;;;;;;;;;;;;;;6508:20;2730:49993;;;;;;;;;;;;;;;;;;;;7000:26;2730:49993;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;12987:69;;:::i;:::-;11903:67;;:::i;:::-;10909:83;;:::i;:::-;2730:49993;;;;;;16911:46;2730:49993;16946:10;16911:46;;2730:49993;;;-1:-1:-1;2730:49993:160;;-1:-1:-1;;2730:49993:160;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;16438:64;2730:49993;;;;;;:::i;:::-;12987:69;;;;;:::i;:::-;11903:67;;:::i;:::-;10909:83;;:::i;:::-;-1:-1:-1;;;;;16377:9:160;2730:49993;16415:6;;;;:::i;:::-;16438:64;2730:49993;;16473:10;;;;2730:49993;;;16438:64;;:::i;:::-;;;;2730:49993;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;-1:-1:-1;;;;;;;;;;;2730:49993:160;;;:::i;:::-;12987:69;;:::i;:::-;11903:67;;:::i;:::-;13459:5;;;:::i;:::-;-1:-1:-1;;;;;2730:49993:160;;;;;;17387:39;2730:49993;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6618:18;2730:49993;;;;;;;;;;;-1:-1:-1;2730:49993:160;;-1:-1:-1;;2730:49993:160;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;;12608:63;;:::i;:::-;22073:19;2730:49993;;;;22073:19;:::i;:::-;22104:4;-1:-1:-1;;;;;2730:49993:160;;;22073:36;2730:49993;;22261:38;2730:49993;;22261:38;;;;;:::i;:::-;22257:113;;2730:49993;;;22491:20;;2730:49993;;-1:-1:-1;;2730:49993:160;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31589:35;2730:49993;;;;;;;;;31589:35;:::i;:::-;31634:18;2730:49993;31668:13;2730:49993;31700:3;2730:49993;;;;;;;31683:15;;;;;2730:49993;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;22261:38;2730:49993;;;;;;;;;-1:-1:-1;;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21213:273:169;2730:49993:160;;;;22261:38;2730:49993;;;;;;;21312:15:169;;2730:49993:160;;;;;;;;;;;;;;;21213:273:169;;;;;;2730:49993:160;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;21213:273:169;;;;;;;;;;:::i;:::-;2730:49993:160;21190:306:169;;4093:83:85;;;;2730:49993:160;;22261:38;2730:49993;;;22261:38;;2730:49993;;32392:7;2730:49993;;32392:7;:::i;:::-;2730:49993;31668:13;;32318:162;47149:13;;;:::i;:::-;;;;-1:-1:-1;;;;;;47200:26:160;2730:49993;;;47200:26;:::i;:::-;2730:49993;47200:29;2730:49993;;;47200:34;2730:49993;47284:433;;;;;2730:49993;;;;47332:16;2730:49993;;;;;;47332:16;:::i;:::-;2730:49993;;;:::i;:::-;47749:20;2730:49993;;;47749:20;:::i;:::-;-1:-1:-1;;;;;47796:14:160;2730:49993;;;47796:14;:::i;:::-;2730:49993;;47749:71;;;;;47780:7;47749:71;;;:::i;:::-;;47839:8;47835:513;;47284:433;47145:1562;32318:162;;47835:513;47890:52;47905:20;2730:49993;;;47905:20;:::i;:::-;47927:14;2730:49993;;;47927:14;:::i;:::-;47890:52;;:::i;:::-;47964:16;47960:125;;47835:513;48248:85;2730:49993;48264:14;2730:49993;;;48264:14;:::i;:::-;22261:38;-1:-1:-1;;;;;;48306:26:160;2730:49993;;;48306:26;:::i;:::-;2730:49993;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;48248:85;47835:513;;;47960:125;48009:57;48029:20;2730:49993;;;48029:20;:::i;:::-;48051:14;2730:49993;;;48051:14;:::i;:::-;2730:49993;;;-1:-1:-1;;;;;2730:49993:160;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;48009:57;47960:125;;47284:433;2730:49993;;;47549:153;47640:16;2730:49993;;;;;;47640:16;:::i;:::-;2730:49993;;;47658:26;2730:49993;;;47658:26;:::i;:::-;2730:49993;;;47593:32;;;;;;2730:49993;47549:153;;;2730:49993;;;;47549:153;;;2730:49993;;;;;;;;;;:::i;:::-;;;;;;;;;;47549:153;2730:49993;;47549:153;;;;;;:::i;:::-;47284:433;;47145:1562;48401:52;48416:20;2730:49993;;;48416:20;:::i;48401:52::-;48471:16;48467:117;;47145:1562;48603:93;48609:16;2730:49993;;;;;;48609:16;:::i;:::-;48627:14;2730:49993;;;48627:14;:::i;:::-;22261:38;-1:-1:-1;;;;;;48669:26:160;2730:49993;;;48669:26;:::i;:::-;2730:49993;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;48603:93;;;32318:162;;48467:117;48512:57;48532:20;2730:49993;;;48532:20;:::i;:::-;48554:14;2730:49993;;;48554:14;:::i;:::-;2730:49993;;;-1:-1:-1;;;;;2730:49993:160;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;48512:57;48467:117;;2730:49993;;;;;;;;;;;;;;;;31683:15;;;;2730:49993;31683:15;2730:49993;;;;;;;1083:131:88;;22657:24:160;2730:49993;;22657:24;2730:49993;;22683:22;2730:49993;;22683:22;2730:49993;;;;;;;;;;;;22786:18;2730:49993;;22786:18;;;;;:::i;:::-;;;;2730:49993;;;;22834:21;;2730:49993;;22834:21;;:::i;:::-;11903:67;;:::i;:::-;49622:13;2730:49993;;-1:-1:-1;;;;;;2730:49993:160;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;-1:-1:-1;;2730:49993:160;30500:21;-1:-1:-1;;;;;2730:49993:160;;30748:37;;2730:49993;;;-1:-1:-1;;;;;2730:49993:160;30748:37;:::i;:::-;49846:8;49842:231;;22782:183;;;;2730:49993;;;23053:37;23049:110;;22782:183;2730:49993;;23368:18;23297:19;2730:49993;;;;23297:19;:::i;:::-;23368:18;;:::i;:::-;2730:49993;23400:21;;2730:49993;;23400:21;;:::i;:::-;23475:38;23435:26;;2730:49993;;23435:26;;:::i;:::-;23475:38;;:::i;:::-;2730:49993;;;24009:274:169;;;;2730:49993:160;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;24009:274:169;;;;;;:::i;:::-;2730:49993:160;23986:307:169;;2730:49993:160;;;;;;23049:110;2730:49993;50433:23;2730:49993;;;;;;50433:23;23049:110;;;;49842:231;2730:49993;;;-1:-1:-1;;;;;2730:49993:160;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;50007:55;;;49842:231;;;;22782:183;-1:-1:-1;;;;;22895:21:160;2730:49993;;22895:21;;;:::i;:::-;2730:49993;;;22782:183;2730:49993;22782:183;;;2730:49993;;;;;;;;;22257:113;22332:26;;;2730:49993;;22332:26;;:::i;:::-;;:::i;:::-;22257:113;;2730:49993;;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;12987:69;;:::i;:::-;11903:67;;:::i;:::-;11698:5;2730:49993;11698:9;;;:38;;;2730:49993;;;;-1:-1:-1;;;;;29452:9:160;2730:49993;29490:6;;;;:::i;:::-;11698:5;2730:49993;29711:154;;;;2730:49993;29711:154;;;;;2730:49993;29711:154;2730:49993;;;;;;;;29897:70;2730:49993;11698:5;2730:49993;;;11698:5;2730:49993;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;29711:154;2730:49993;;;29926:10;;29897:70;;;;2730:49993;;;;;;11698:38;-1:-1:-1;11725:11:160;2730:49993;-1:-1:-1;;;;;2730:49993:160;11711:10;:25;11698:38;;2730:49993;;;;;;-1:-1:-1;;2730:49993:160;;;;6890:24;2730:49993;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:49993:160;;;;;;;;;;14990:18;2730:49993;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;:::o;:::-;;-1:-1:-1;;;;;2730:49993:160;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2730:49993:160;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2730:49993:160;;;;;;;;-1:-1:-1;;2730:49993:160;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;13148:108::-;2730:49993;;-1:-1:-1;;;13207:24:160;;;2730:49993;13207:24;2730:49993;13215:6;-1:-1:-1;;;;;2730:49993:160;13207:24;;;;;;;-1:-1:-1;13207:24:160;;;13148:108;13206:25;2730:49993;;13148:108::o;2730:49993::-;;;;-1:-1:-1;2730:49993:160;13207:24;-1:-1:-1;2730:49993:160;13207:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2730:49993;;;;;;;;;12763:102;12832:6;-1:-1:-1;;;;;2730:49993:160;12818:10;:20;2730:49993;;12763:102::o;2730:49993::-;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;-1:-1:-1;;2730:49993:160;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2730:49993:160;;;;:::o;:::-;;;:::o;13959:215::-;-1:-1:-1;;;;;2730:49993:160;14023:10;14019:149;;13959:215;:::o;14019:149::-;14032:1;14067:6;;;;;:29;;;;:::i;:::-;;2730:49993;;;13959:215::o;2730:49993::-;;;;14032:1;2730:49993;;14032:1;2730:49993;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2730:49993:160;;;;;;:::o;12057:89::-;2730:49993;12115:6;2730:49993;;;;12057:89::o;2730:49993::-;;;;-1:-1:-1;2730:49993:160;;-1:-1:-1;2730:49993:160;13592:228;-1:-1:-1;;;;;2730:49993:160;13655:10;13651:163;;13592:228;:::o;13651:163::-;13703:6;;2730:49993;;13696:54;-1:-1:-1;;;;;13696:14:160;13703:6;13696:14;:::i;:::-;2730:49993;;-1:-1:-1;;;13696:54:160;;13724:10;13696:54;;;2730:49993;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;;;;;13664:1;;2730:49993;13696:54;;;;;;;13664:1;13696:54;;;13651:163;2730:49993;;;;13592:228::o;2730:49993::-;;;;13664:1;2730:49993;13696:54;13664:1;2730:49993;13696:54;;;;2730:49993;13696:54;2730:49993;13696:54;;;;;;;:::i;:::-;;;;11098:107;11163:5;2730:49993;11163:9;2730:49993;;11098:107::o;2730:49993::-;;;;-1:-1:-1;2730:49993:160;;-1:-1:-1;2730:49993:160;50637:182;2730:49993;;-1:-1:-1;;;50739:33:160;;2730:49993;50739:33;;2730:49993;;50739:33;;2730:49993;;-1:-1:-1;;;;;2730:49993:160;50739:33;;;;;;;-1:-1:-1;50739:33:160;;;50637:182;-1:-1:-1;;;;;;2730:49993:160;;50637:182::o;50739:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:49993;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;50739:33;;;;;;-1:-1:-1;50739:33:160;;23711:5148;;;;;;23953:19;;23947:65;;24052:251;;;;24533:27;3985:4;24533:27;;24531:30;;;24527:73;;4859:2;24616:36;;24614:39;24610:82;;24813:105;;;;2730:49993;;;;24937:18;2730:49993;;;;;;;;4859:2;;25176:262;;;25646:100;25176:262;;;;;;;25646:100;;;2730:49993;;3439:3;2730:49993;25968:146;;;23711:5148;26626:33;;;26622:424;;;;5570:2;26681:41;;26675:95;;5570:2;3658;;;26622:424;2730:49993;;;27484:12;2730:49993;;;;;;27526:24;;;5570:2;;27608:26;;28025:102;27608:26;;;;;2730:49993;27645:349;;;;;;26622:424;28025:102;;:::i;:::-;5570:2;;;2730:49993;;;24937:18;2730:49993;;;;;24813:105;2730:49993;;;;;;;;28243:588;;26622:424;28841:11;;;;;24813:105;23711:5148;:::o;28243:588::-;24813:105;28352:29;28348:483;;28243:588;;;;28348:483;28445:386;;28348:483;;;;28445:386;25176:262;28670:34;25176:262;;;28670:34;:::i;:::-;5570:2;;;2730:49993;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;5570:2;;;2730:49993;28790:30;;2730:49993;28790:30;28445:386;;;;;5570:2;;;;2730:49993;5570:2;27484:12;2730:49993;5570:2;2730:49993;4859:2;2730:49993;5570:2;;;;;2730:49993;5570:2;27484:12;2730:49993;5570:2;27645:349;27763:29;24813:105;27763:29;;27759:235;;27645:349;;;;27759:235;27865:129;;27759:235;;;;27865:129;2730:49993;;;;;;21851:50:169;;2730:49993:160;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;4859:2;21851:50:169;;;;;;:::i;:::-;2730:49993:160;21841:61:169;;27865:129:160;;;;5570:2;;;;2730:49993;5570:2;27484:12;2730:49993;;;5570:2;26675:95;26743:12;;;;;;;;;;;;;2730:49993;26743:12;:::o;26622:424::-;24813:105;26847:29;;26843:203;;26622:424;;;;26843:203;5775:3;26898:37;;26892:91;;5775:3;3658:2;;;26843:203;;;25968:146;5933:2;26021:35;;26015:89;25968:146;26015:89;26077:12;;;;;;;;;;;;2730:49993;26077:12;:::o;4859:2::-;;;;;2730:49993;4859:2;;2730:49993;;;4859:2;24610:82;-1:-1:-1;2730:49993:160;;-1:-1:-1;;;;;;;;24669:12:160:o;23947:65::-;-1:-1:-1;2730:49993:160;;-1:-1:-1;;;;;;23989:12:160:o;863:809:85:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:85;;;-1:-1:-1;;;;;1052:614:85;;;;;;;;;;863:809::o;2730:49993:160:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2730:49993:160;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;2730:49993:160;;;;;;;:::o;33103:1125::-;33361:36;;;:::i;:::-;33360:37;33356:866;;33103:1125;:::o;33356:866::-;33667:13;;;;;:::i;:::-;33663:453;;33356:866;34135:76;;34156:20;;;;;:::i;:::-;34178:16;;;;;;:::i;:::-;34196:14;;;;;;;;:::i;:::-;2730:49993;34178:16;2730:49993;;;;;;;;;;;;34135:76;;:::i;:::-;;;;33103:1125::o;33663:453::-;33718:20;;;-1:-1:-1;33718:20:160;;;;:::i;:::-;33758:16;;;;;;;:::i;:::-;2730:49993;;;33758:16;2730:49993;;;;;;;;;;;33718:57;;33749:7;33718:57;;;:::i;:::-;;33798:8;33794:308;;33663:453;;;33794:308;34018:20;33987:68;34018:20;;:::i;:::-;34040:14;;;;;:::i;:::-;33758:16;2730:49993;;;;;;-1:-1:-1;;;;;2730:49993:160;;;5570:2;;;2730:49993;-1:-1:-1;;;;;2730:49993:160;;;;;;;5570:2;;33987:68;5570:2;51061:253;;-1:-1:-1;;;;;2730:49993:160;51158:10;;51154:133;;51296:11;;51303:4;51061:253;:::o;51154:133::-;2730:49993;51202:46;;;;;51224:5;51202:46;;;:::i;:::-;;51262:14;:::o;1364:381:166:-;;;;;;;1583:27;;;;1579:70;;2730:49993:160;;2336:28:166;;;2490:3;2472:16;;;;;;2509:20;2730:49993:160;;;;;;;2672:1:166;2730:49993:160;;;2829:17:166;:45;;;;2490:3;2825:207;;;889:135:41;2730:49993:160;889:135:41;;;2672:1:166;889:135:41;;2730:49993:160;889:135:41;2825:207:166;;2730:49993:160;;;;;3052:42;2730:49993;;;2490:3:166;2730:49993:160;2457:13:166;;;;;2825:207;889:135:41;;;2730:49993:160;889:135:41;;;2672:1:166;889:135:41;;2730:49993:160;889:135:41;2825:207:166;;;2829:45;2730:49993:160;;2672:1:166;2730:49993:160;;2850:24:166;2829:45;;2472:16;1666:72;;-1:-1:-1;2472:16:166;-1:-1:-1;;;;1364:381:166:o;1579:70::-;1626:12;;;;;;;2730:49993:160;1626:12:166;:::o;37307:3794:160:-;37446:16;;;;;;:::i;:::-;2730:49993;;-1:-1:-1;;;;;2730:49993:160;37479:20;;;;;:::i;:::-;2730:49993;37479:38;:61;;;;37307:3794;37479:83;;;;37307:3794;37477:86;37473:129;;37642:249;;;;;37907:17;37923:1;37907:17;;;:38;;;37307:3794;37905:41;37901:84;;3052:42;;;;37923:1;2730:49993;;38126:37;;38120:83;;37923:1;38322:95;;;38988:31;38998:21;38988:31;;;:90;;;37307:3794;38988:147;;;37307:3794;38988:204;;;37307:3794;38988:265;;;37307:3794;38988:331;;;37307:3794;38988:373;;;37307:3794;38988:425;;;37307:3794;38988:465;;;37307:3794;38988:515;;;37307:3794;38988:562;;;37307:3794;38988:633;;;37307:3794;38988:687;;;37307:3794;38973:712;38969:755;;3052:42;;;-1:-1:-1;;3052:42:160;;;37923:1;39894:21;3052:42;39894:21;:::i;:::-;39925:117;;;;;;40261:216;;;;;;;;;;37923:1;40491:17;;37923:1;;40524:83;;;;;;;;37923:1;37307:3794;:::o;40487:586::-;40643:1;40627:17;;40643:1;;40660:91;;;;37923:1;37307:3794;:::o;40623:450::-;40787:1;40771:17;;;;;;;;40767:306;40787:1;;;40804:99;;;;;;;37923:1;37307:3794;:::o;40767:306::-;40939:1;40923:17;40919:154;;40767:306;;;;;;;37923:1;37307:3794;:::o;40919:154::-;40261:216;;;40956:107;;40919:154;;;;;;;;38969:755;39701:12;;;;;2730:49993;39701:12;:::o;38988:687::-;39637:38;39647:28;39637:38;;;38988:687;;:633;39566:55;39576:45;39566:55;;;38988:633;;:562;39519:31;39529:21;39519:31;;;38988:562;;:515;39469:34;39479:24;39469:34;;;38988:515;;:465;39429:24;39439:14;39429:24;;;38988:465;;:425;39377:36;39387:26;39377:36;;;38988:425;;:373;39335:26;39345:16;39335:26;;;38988:373;;:331;39269:50;-1:-1:-1;;;;;;;;;;;39269:50:160;;;38988:331;;:265;39208:45;39218:35;39208:45;;;38988:265;;:204;39151:41;39161:31;39151:41;;;38988:204;;:147;39094:41;39104:31;39094:41;;;38988:147;;:90;39035:43;39045:33;39035:43;;;38988:90;;38120:83;38180:12;;;;2730:49993;38180:12;:::o;37907:38::-;37928:17;37944:1;37928:17;;;37907:38;;37473:129;37579:12;;2730:49993;37579:12;:::o;37479:83::-;37544:18;;;;37479:83;;:61;-1:-1:-1;;;;;37521:14:160;;;;;;;:::i;:::-;2730:49993;37521:19;37479:61;;","linkReferences":{},"immutableReferences":{"79367":[{"start":601,"length":32},{"start":999,"length":32},{"start":4772,"length":32},{"start":4910,"length":32},{"start":5071,"length":32},{"start":5235,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":"c6049692","exited()":"5ce6c327","getOutgoingActionsMerkleRoot(bytes32)":"0d408e19","inheritor()":"36a52a18","initialize(address,address,bool,uint128)":"bfa28576","initializer()":"9ce110d7","isOutgoingActionsProcessed(bytes32)":"0403e33a","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,bytes32,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"4b885b9a","processOutgoingAction(bytes32,uint256,uint256,bytes,bytes32[])":"ed3513fc","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"OutgoingActionAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutgoingActionInvalidMerkleProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutgoingActionInvalidPayload\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"OutgoingActionMerkleRootNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"executableBalanceTopUpWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_stateHash\",\"type\":\"bytes32\"}],\"name\":\"getOutgoingActionsMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_messageId\",\"type\":\"bytes32\"}],\"name\":\"isOutgoingActionsProcessed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"transitionHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_stateHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_totalLeaves\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_leafIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"_proof\",\"type\":\"bytes32[]\"}],\"name\":\"processOutgoingAction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Mirror smart contract is responsible for storing the minimal state of programs on our platform and transitioning from one state to another by calling `performStateTransition(...)`. It's built on actor-model architecture, and in Ethereum, we implement this through \\\"request-response\\\" model. This means we have two types of events: - \\\"Requested\\\" events - when user calls one of the methods marked as \\\"Primary Gear logic\\\" we emit such an event, and all our nodes process it off-chain - \\\"Responded\\\" events - when we receive response from our nodes and transmit it back to Ethereum. All logic called within `performStateTransition(...)` and leading to methods marked as \\\"Private calls related to performStateTransition\\\" are such events. It's important not to confuse these two, as this is how we implement the actor model in Ethereum. Mirror economic model has two balances: - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`. This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`. - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain. It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform. You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users can use it for free. This is called the \\\"reverse-gas model\\\". Developer can also require the presence of `value` in the owned balance when calling methods in a WASM smart contract to protect their program from spam.\",\"errors\":{\"CallerNotRouter()\":[{\"details\":\"Thrown when the caller is not the `Router`.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the `Router` contract is paused and pause-protected Mirror call is attempted.\"}],\"EtherTransferToRouterFailed()\":[{\"details\":\"Thrown when the transfer of Ether to the `Router` fails.\"}],\"InitMessageNotCreated()\":[{\"details\":\"Thrown when the first (init) message is not created by the initializer.\"}],\"InitMessageNotCreatedAndCallerNotInitializer()\":[{\"details\":\"Thrown when the first (init) message is not created and the caller is not the initializer.\"}],\"OutgoingActionAlreadyProcessed(bytes32)\":[{\"details\":\"Thrown when the outgoing action (messageId) is already processed.\"}],\"OutgoingActionInvalidMerkleProof()\":[{\"details\":\"Thrown when the merkle proof is invalid for outgoing actions.\"}],\"OutgoingActionMerkleRootNotFound(bytes32)\":[{\"details\":\"Thrown when the merkle root is not found for the state hash.\"}],\"ProgramExited()\":[{\"details\":\"Thrown when the program is exited and the call is attempted.\"}],\"ProgramNotExited()\":[{\"details\":\"Thrown when the program is not exited and the call is attempted.\"}],\"TransferLockedValueToInheritorExternalFailed()\":[{\"details\":\"Thrown when the transfer of locked value to the inheritor fails (in external call).\"}],\"WVaraTransferFailed()\":[{\"details\":\"Thrown when the transfer of Vara to the `Router` fails.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens.\",\"params\":{\"value\":\"The amount of tokens the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program.\"}},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about new message sent from program.\"}},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about failed message call from program.\"}},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued.\",\"params\":{\"callReply\":\"Indicates whether the message is sent with callReply flag. NOTE: It's event for NODES: it requires to insert message in the program's queue.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"source\":\"Message source address.\",\"value\":\"Message value.\"}},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether.\",\"params\":{\"value\":\"The amount of Ether the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"}},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message.\",\"params\":{\"payload\":\"Reply message payload.\",\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about new reply sent from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts.\",\"params\":{\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about failed reply call from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued.\",\"params\":{\"payload\":\"The payload of the reply.\",\"repliedTo\":\"The ID of the message being replied to.\",\"source\":\"The address of the reply sender.\",\"value\":\"The value of the reply. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"}},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call\",\"params\":{\"destination\":\"The address of the destination.\",\"value\":\"The amount of value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"}},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed.\",\"params\":{\"stateHash\":\"The new state hash of the program. NOTE: It's event for USERS: it informs about state changes.\"}},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit.\",\"params\":{\"inheritor\":\"The address of the inheritor.\",\"value\":\"The amount of locked value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"}},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value claimed. NOTE: It's event for USERS: it informs about value claimed.\"}},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"source\":\"The address of the claim sender. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}}},\"kind\":\"dev\",\"methods\":{\"claimValue(bytes32)\":{\"details\":\"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.\",\"params\":{\"_claimedId\":\"Message ID of the value to be claimed.\"}},\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable `Router` address.\",\"params\":{\"_router\":\"The address of the `Router` contract.\"}},\"executableBalanceTopUp(uint128)\":{\"details\":\"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\",\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"getOutgoingActionsMerkleRoot(bytes32)\":{\"details\":\"Returns the outgoing actions merkle root for the specified state hash. Returns `bytes32(0)` if no merkle root was provided for the given state hash.\",\"params\":{\"_stateHash\":\"Target state hash.\"},\"returns\":{\"_0\":\"merkleRoot Outgoing actions merkle root for the specified state hash.\"}},\"initialize(address,address,bool,uint128)\":{\"details\":\"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.\",\"params\":{\"_abiInterface\":\"The address of the ABI interface. This address will be displayed as \\\"proxy implementation\\\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.\",\"_initialExecutableBalance\":\"The initial executable balance to be transferred to the program.\",\"_initializer\":\"The address of the initializer. Only this address will be able to send the first (init) message.\",\"_isSmall\":\"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\"}},\"isOutgoingActionsProcessed(bytes32)\":{\"details\":\"Checks if outgoing action was already processed.\",\"params\":{\"_messageId\":\"Message ID to check.\"},\"returns\":{\"_0\":\"isProcessed `true` if outgoing action was already processed, `false` otherwise.\"}},\"performStateTransition((address,bytes32,bool,address,uint128,bool,bytes32,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))\":{\"details\":\"Performs state transition for the `Mirror` contract.\",\"params\":{\"_transition\":\"The state transition data.\"},\"returns\":{\"transitionHash\":\"The hash of the performed state transition.\"}},\"processOutgoingAction(bytes32,uint256,uint256,bytes,bytes32[])\":{\"details\":\"Processes outgoing action.\",\"params\":{\"_leafIndex\":\"The index of the leaf for which to process outgoing action.\",\"_payload\":\"The payload for the outgoing action.\",\"_proof\":\"The merkle proof for the claim.\",\"_stateHash\":\"The state hash for which to process outgoing action.\",\"_totalLeaves\":\"The total number of leaves in the merkle tree.\"}},\"sendMessage(bytes,bool)\":{\"details\":\"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.\",\"params\":{\"_callReply\":\"Whether to set `call` flag in the reply message.\",\"_payload\":\"The payload of the message.\"},\"returns\":{\"messageId\":\"Message ID of the sent message.\"}},\"sendReply(bytes32,bytes)\":{\"details\":\"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.\",\"params\":{\"_payload\":\"The payload of the reply message.\",\"_repliedTo\":\"Message ID to which the reply is sent.\"}},\"transferLockedValueToInheritor()\":{\"details\":\"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted.\"}},\"stateVariables\":{\"CALL_BIT_SHIFT\":{\"details\":\"`bool call` bit shift.\"},\"CALL_SIZE\":{\"details\":\"`bool call` size.\"},\"COMMON_HEADER_SIZE\":{\"details\":\"`MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE` common header size.\"},\"DESTINATION_BIT_SHIFT\":{\"details\":\"`address destination` bit shift.\"},\"DESTINATION_SIZE\":{\"details\":\"`address destination` size.\"},\"DISCRIMINANT_BIT_SHIFT\":{\"details\":\"`uint8 discriminant` bit shift.\"},\"DISCRIMINANT_SIZE\":{\"details\":\"`uint8 discriminant` size.\"},\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events and re-remit then as Solidity events: - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"MAILBOXED_MESSAGE\":{\"details\":\"Mailboxed message discriminant.\"},\"MAILBOXED_MESSAGE_SIZE\":{\"details\":\"`DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE` size.\"},\"MESSAGE_ID_SIZE\":{\"details\":\"`bytes32 messageId` size.\"},\"OFFSET1\":{\"details\":\"`DISCRIMINANT_SIZE` offset.\"},\"OFFSET2\":{\"details\":\"`DISCRIMINANT_SIZE + MESSAGE_ID_SIZE` offset.\"},\"OFFSET3\":{\"details\":\"`DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE` offset.\"},\"OFFSET4\":{\"details\":\"`DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE + REPLY_CODE_SIZE` offset.\"},\"REPLY_CODE_BIT_SHIFT\":{\"details\":\"`bytes4 replyCode` bit shift.\"},\"REPLY_CODE_SIZE\":{\"details\":\"`bytes4 replyCode` size.\"},\"REPLY_MESSAGE\":{\"details\":\"Reply message discriminant.\"},\"REPLY_MESSAGE_SIZE\":{\"details\":\"`DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE + REPLY_CODE_SIZE + REPLY_TO_SIZE` size.\"},\"REPLY_TO_SIZE\":{\"details\":\"`bytes32 replyTo` size.\"},\"VALUE_BIT_SHIFT\":{\"details\":\"`uint128 value` bit shift.\"},\"VALUE_CLAIM\":{\"details\":\"Value claim discriminant.\"},\"VALUE_CLAIM_SIZE\":{\"details\":\"`DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE` size.\"},\"VALUE_SIZE\":{\"details\":\"`uint128 value` size.\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit. Inheritor specifies the address to which all available program value should be transferred.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"Flag that indicates what type this `Mirror` smart contract is: - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation (which is usually more expensive in terms of gas to create). This is generally the more popular way and is the one you will most likely use if you are writing programs using the Sails framework. This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`. User writes WASM smart contract on Sails framework called \\\"\\u0421ounter\\\": - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)` and waits for the code to be validated. User also generates \\\"Solidity ABI Interface\\\" to allow incrementing counter or calling other methods within WASM smart contract. Next, we assume user uploads `CounterAbi` smart contract to Ethereum: ```solidity interface ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId); function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId); // ... other methods } contract CounterAbi is ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {} function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {} } ``` User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`, where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \\\"proxy implementation\\\", and Etherscan will think that `Mirror` has `CounterAbi` methods. User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract: `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror` to create new message and pass the Solidity call to the WASM smart contract on the Sails framework. WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`. - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation (which is usually less expensive in terms of gas to create). This case is suitable if the user develops WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the `Router` contract, which is the sole authority to modify the state of this contract and transfer funds from it. forge-lint: disable-next-item(screaming-snake-case-immutable)\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11\",\"dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54\",\"dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xcab25323c350222e48ad9dfd84325ffd36b4e34d4ae3a0a49932d8a1c95e501e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://71df44d61da238cb41cf2701c7cb15af7815f1b7cab46d3a0c0fa5ba0a15aed7\",\"dweb:/ipfs/QmT78yRqQoPHGafTzKyjUK6Dnm7XLpV4RnUQsEZ62PHWUi\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19\",\"dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x207372db771ce54eccb09949f33d7a5ff061ef41ef4e0c8667e61bdecfac5a14\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://060739bb2e805fa32d2d1630287dd203652705adc0fff2aed7281823769c5124\",\"dweb:/ipfs/QmYoUTBmKRdANUwR7ZpfD8rRipR7hJQxNQTHL1vjSKWZnt\"]},\"src/libraries/BinaryMerkleTree.sol\":{\"keccak256\":\"0x84bd1a4269f1b59d65d7df859b6174b804d82d016ff679be68024f02d44deb9a\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://9969e08497c53cad2fb3ea9bfd5d2ae42198f84d04db51d467912d75ecafbf5f\",\"dweb:/ipfs/QmV7zUKEhRg9cKc65zpMxMTfwZ86TTSMZH2rSxobqENS8q\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd\",\"dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"type":"error","name":"OutgoingActionAlreadyProcessed"},{"inputs":[],"type":"error","name":"OutgoingActionInvalidMerkleProof"},{"inputs":[],"type":"error","name":"OutgoingActionInvalidPayload"},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32"}],"type":"error","name":"OutgoingActionMerkleRootNotFound"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32"},{"internalType":"uint128","name":"value","type":"uint128"}],"type":"error","name":"ValueClaimFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"ReplyCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUpWithPermit"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_stateHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getOutgoingActionsMerkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_messageId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isOutgoingActionsProcessed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"transitionHash","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_stateHash","type":"bytes32"},{"internalType":"uint256","name":"_totalLeaves","type":"uint256"},{"internalType":"uint256","name":"_leafIndex","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"processOutgoingAction"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"devdoc":{"kind":"dev","methods":{"claimValue(bytes32)":{"details":"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.","params":{"_claimedId":"Message ID of the value to be claimed."}},"constructor":{"details":"Minimal constructor that only sets the immutable `Router` address.","params":{"_router":"The address of the `Router` contract."}},"executableBalanceTopUp(uint128)":{"details":"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":{"details":"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter.","_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"getOutgoingActionsMerkleRoot(bytes32)":{"details":"Returns the outgoing actions merkle root for the specified state hash. Returns `bytes32(0)` if no merkle root was provided for the given state hash.","params":{"_stateHash":"Target state hash."},"returns":{"_0":"merkleRoot Outgoing actions merkle root for the specified state hash."}},"initialize(address,address,bool,uint128)":{"details":"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.","params":{"_abiInterface":"The address of the ABI interface. This address will be displayed as \"proxy implementation\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.","_initialExecutableBalance":"The initial executable balance to be transferred to the program.","_initializer":"The address of the initializer. Only this address will be able to send the first (init) message.","_isSmall":"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details."}},"isOutgoingActionsProcessed(bytes32)":{"details":"Checks if outgoing action was already processed.","params":{"_messageId":"Message ID to check."},"returns":{"_0":"isProcessed `true` if outgoing action was already processed, `false` otherwise."}},"performStateTransition((address,bytes32,bool,address,uint128,bool,bytes32,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":{"details":"Performs state transition for the `Mirror` contract.","params":{"_transition":"The state transition data."},"returns":{"transitionHash":"The hash of the performed state transition."}},"processOutgoingAction(bytes32,uint256,uint256,bytes,bytes32[])":{"details":"Processes outgoing action.","params":{"_leafIndex":"The index of the leaf for which to process outgoing action.","_payload":"The payload for the outgoing action.","_proof":"The merkle proof for the claim.","_stateHash":"The state hash for which to process outgoing action.","_totalLeaves":"The total number of leaves in the merkle tree."}},"sendMessage(bytes,bool)":{"details":"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.","params":{"_callReply":"Whether to set `call` flag in the reply message.","_payload":"The payload of the message."},"returns":{"messageId":"Message ID of the sent message."}},"sendReply(bytes32,bytes)":{"details":"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.","params":{"_payload":"The payload of the reply message.","_repliedTo":"Message ID to which the reply is sent."}},"transferLockedValueToInheritor()":{"details":"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/Hashes.sol":{"keccak256":"0x8cbd338f083224b4b6f0ff42cbda641a0a6c31ffcdca197452b97fe4d0918269","urls":["bzz-raw://f517dec5ba0c6491395acbf7f1d621f4e89e8f218bf5303c867b1c5ad70c6b11","dweb:/ipfs/QmWmXHRLEw8W6ckth7NyYTU88YfvuS7xSsfae5ksL8qNUe"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x562b4c864c9cf04fd7c13cc5e6295303715f525b4d4d2a99769254cd23ca33a1","urls":["bzz-raw://9efe7c5a5d36c165ad9905475c0b8998111c9a1e66a2316fadd1e6e3353cee54","dweb:/ipfs/QmfUMurQ4SeXnSFaPfbp4XPzaWjwRBbR7XzrGXuCZ8B1VW"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xcab25323c350222e48ad9dfd84325ffd36b4e34d4ae3a0a49932d8a1c95e501e","urls":["bzz-raw://71df44d61da238cb41cf2701c7cb15af7815f1b7cab46d3a0c0fa5ba0a15aed7","dweb:/ipfs/QmT78yRqQoPHGafTzKyjUK6Dnm7XLpV4RnUQsEZ62PHWUi"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4","urls":["bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19","dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Mirror.sol":{"keccak256":"0x207372db771ce54eccb09949f33d7a5ff061ef41ef4e0c8667e61bdecfac5a14","urls":["bzz-raw://060739bb2e805fa32d2d1630287dd203652705adc0fff2aed7281823769c5124","dweb:/ipfs/QmYoUTBmKRdANUwR7ZpfD8rRipR7hJQxNQTHL1vjSKWZnt"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/BinaryMerkleTree.sol":{"keccak256":"0x84bd1a4269f1b59d65d7df859b6174b804d82d016ff679be68024f02d44deb9a","urls":["bzz-raw://9969e08497c53cad2fb3ea9bfd5d2ae42198f84d04db51d467912d75ecafbf5f","dweb:/ipfs/QmV7zUKEhRg9cKc65zpMxMTfwZ86TTSMZH2rSxobqENS8q"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d","urls":["bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd","dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":79370,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":79373,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":79376,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":79379,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":79382,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":79385,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"},{"astId":79389,"contract":"src/Mirror.sol:Mirror","label":"_merkleRoots","offset":0,"slot":"4","type":"t_mapping(t_bytes32,t_bytes32)"},{"astId":79393,"contract":"src/Mirror.sol:Mirror","label":"_processedMessages","offset":0,"slot":"5","type":"t_mapping(t_bytes32,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_bytes32)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":81014,"exportedSymbols":{"BinaryMerkleTree":[85098],"ERC1967Utils":[1269],"Gear":[86834],"Hashes":[62498],"ICallbacks":[75665],"IMirror":[76363],"IRouter":[76958],"IWrappedVara":[76974],"Memory":[62272],"Mirror":[81013],"StorageSlot":[6848]},"nodeType":"SourceUnit","src":"114:52610:160","nodes":[{"id":79245,"nodeType":"PragmaDirective","src":"114:24:160","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":79247,"nodeType":"ImportDirective","src":"140:84:160","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":1270,"symbolAliases":[{"foreign":{"id":79246,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"148:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79249,"nodeType":"ImportDirective","src":"225:74:160","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":79248,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"233:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79251,"nodeType":"ImportDirective","src":"300:60:160","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":62273,"symbolAliases":[{"foreign":{"id":79250,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"308:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79253,"nodeType":"ImportDirective","src":"361:73:160","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":62499,"symbolAliases":[{"foreign":{"id":79252,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62498,"src":"369:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79255,"nodeType":"ImportDirective","src":"435:46:160","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":75666,"symbolAliases":[{"foreign":{"id":79254,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75665,"src":"443:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79257,"nodeType":"ImportDirective","src":"482:40:160","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":76364,"symbolAliases":[{"foreign":{"id":79256,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"490:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79259,"nodeType":"ImportDirective","src":"523:40:160","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":76959,"symbolAliases":[{"foreign":{"id":79258,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76958,"src":"531:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79261,"nodeType":"ImportDirective","src":"564:50:160","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":76975,"symbolAliases":[{"foreign":{"id":79260,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"572:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79263,"nodeType":"ImportDirective","src":"615:68:160","nodes":[],"absolutePath":"src/libraries/BinaryMerkleTree.sol","file":"src/libraries/BinaryMerkleTree.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":85099,"symbolAliases":[{"foreign":{"id":79262,"name":"BinaryMerkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85098,"src":"623:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79265,"nodeType":"ImportDirective","src":"684:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":81014,"sourceUnit":86835,"symbolAliases":[{"foreign":{"id":79264,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"692:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81013,"nodeType":"ContractDefinition","src":"2730:49993:160","nodes":[{"id":79272,"nodeType":"VariableDeclaration","src":"3009:85:160","nodes":[],"constant":true,"documentation":{"id":79269,"nodeType":"StructuredDocumentation","src":"2763:241:160","text":" @dev Special address to which Sails contract sends messages so that Mirror can decode events\n and re-remit then as Solidity events:\n - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"3035:14:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79270,"name":"address","nodeType":"ElementaryTypeName","src":"3009:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":79271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3052:42:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":79276,"nodeType":"VariableDeclaration","src":"3161:54:160","nodes":[],"constant":true,"documentation":{"id":79273,"nodeType":"StructuredDocumentation","src":"3101:55:160","text":" @dev `uint8 discriminant` bit shift."},"mutability":"constant","name":"DISCRIMINANT_BIT_SHIFT","nameLocation":"3187:22:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79274,"name":"uint256","nodeType":"ElementaryTypeName","src":"3161:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323438","id":79275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3212:3:160","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"visibility":"internal"},{"id":79280,"nodeType":"VariableDeclaration","src":"3282:52:160","nodes":[],"constant":true,"documentation":{"id":79277,"nodeType":"StructuredDocumentation","src":"3221:56:160","text":" @dev `address destination` bit shift."},"mutability":"constant","name":"DESTINATION_BIT_SHIFT","nameLocation":"3308:21:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79278,"name":"uint256","nodeType":"ElementaryTypeName","src":"3282:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3936","id":79279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3332:2:160","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"visibility":"internal"},{"id":79284,"nodeType":"VariableDeclaration","src":"3395:47:160","nodes":[],"constant":true,"documentation":{"id":79281,"nodeType":"StructuredDocumentation","src":"3340:50:160","text":" @dev `uint128 value` bit shift."},"mutability":"constant","name":"VALUE_BIT_SHIFT","nameLocation":"3421:15:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79282,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313238","id":79283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3439:3:160","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"visibility":"internal"},{"id":79288,"nodeType":"VariableDeclaration","src":"3499:46:160","nodes":[],"constant":true,"documentation":{"id":79285,"nodeType":"StructuredDocumentation","src":"3448:46:160","text":" @dev `bool call` bit shift."},"mutability":"constant","name":"CALL_BIT_SHIFT","nameLocation":"3525:14:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79286,"name":"uint256","nodeType":"ElementaryTypeName","src":"3499:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313230","id":79287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3542:3:160","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"visibility":"internal"},{"id":79292,"nodeType":"VariableDeclaration","src":"3609:51:160","nodes":[],"constant":true,"documentation":{"id":79289,"nodeType":"StructuredDocumentation","src":"3551:53:160","text":" @dev `bytes4 replyCode` bit shift."},"mutability":"constant","name":"REPLY_CODE_BIT_SHIFT","nameLocation":"3635:20:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79290,"name":"uint256","nodeType":"ElementaryTypeName","src":"3609:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3838","id":79291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3658:2:160","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},"visibility":"internal"},{"id":79296,"nodeType":"VariableDeclaration","src":"3727:50:160","nodes":[],"constant":true,"documentation":{"id":79293,"nodeType":"StructuredDocumentation","src":"3667:55:160","text":" @dev Mailboxed message discriminant."},"mutability":"constant","name":"MAILBOXED_MESSAGE","nameLocation":"3753:17:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79294,"name":"uint256","nodeType":"ElementaryTypeName","src":"3727:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783030","id":79295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3773:4:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"internal"},{"id":79300,"nodeType":"VariableDeclaration","src":"3839:46:160","nodes":[],"constant":true,"documentation":{"id":79297,"nodeType":"StructuredDocumentation","src":"3783:51:160","text":" @dev Reply message discriminant."},"mutability":"constant","name":"REPLY_MESSAGE","nameLocation":"3865:13:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79298,"name":"uint256","nodeType":"ElementaryTypeName","src":"3839:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":79299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3881:4:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"id":79304,"nodeType":"VariableDeclaration","src":"3945:44:160","nodes":[],"constant":true,"documentation":{"id":79301,"nodeType":"StructuredDocumentation","src":"3891:49:160","text":" @dev Value claim discriminant."},"mutability":"constant","name":"VALUE_CLAIM","nameLocation":"3971:11:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79302,"name":"uint256","nodeType":"ElementaryTypeName","src":"3945:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783032","id":79303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3985:4:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"internal"},{"id":79308,"nodeType":"VariableDeclaration","src":"4051:47:160","nodes":[],"constant":true,"documentation":{"id":79305,"nodeType":"StructuredDocumentation","src":"3996:50:160","text":" @dev `uint8 discriminant` size."},"mutability":"constant","name":"DISCRIMINANT_SIZE","nameLocation":"4077:17:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79306,"name":"uint256","nodeType":"ElementaryTypeName","src":"4051:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":79307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4097:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":79312,"nodeType":"VariableDeclaration","src":"4158:46:160","nodes":[],"constant":true,"documentation":{"id":79309,"nodeType":"StructuredDocumentation","src":"4104:49:160","text":" @dev `bytes32 messageId` size."},"mutability":"constant","name":"MESSAGE_ID_SIZE","nameLocation":"4184:15:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79310,"name":"uint256","nodeType":"ElementaryTypeName","src":"4158:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3332","id":79311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4202:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"internal"},{"id":79316,"nodeType":"VariableDeclaration","src":"4266:47:160","nodes":[],"constant":true,"documentation":{"id":79313,"nodeType":"StructuredDocumentation","src":"4210:51:160","text":" @dev `address destination` size."},"mutability":"constant","name":"DESTINATION_SIZE","nameLocation":"4292:16:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4266:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3230","id":79315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4311:2:160","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"internal"},{"id":79320,"nodeType":"VariableDeclaration","src":"4369:41:160","nodes":[],"constant":true,"documentation":{"id":79317,"nodeType":"StructuredDocumentation","src":"4319:45:160","text":" @dev `uint128 value` size."},"mutability":"constant","name":"VALUE_SIZE","nameLocation":"4395:10:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79318,"name":"uint256","nodeType":"ElementaryTypeName","src":"4369:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3136","id":79319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4408:2:160","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"visibility":"internal"},{"id":79324,"nodeType":"VariableDeclaration","src":"4462:39:160","nodes":[],"constant":true,"documentation":{"id":79321,"nodeType":"StructuredDocumentation","src":"4416:41:160","text":" @dev `bool call` size."},"mutability":"constant","name":"CALL_SIZE","nameLocation":"4488:9:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79322,"name":"uint256","nodeType":"ElementaryTypeName","src":"4462:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":79323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4500:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":79328,"nodeType":"VariableDeclaration","src":"4560:45:160","nodes":[],"constant":true,"documentation":{"id":79325,"nodeType":"StructuredDocumentation","src":"4507:48:160","text":" @dev `bytes4 replyCode` size."},"mutability":"constant","name":"REPLY_CODE_SIZE","nameLocation":"4586:15:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4560:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"34","id":79327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4604:1:160","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"internal"},{"id":79332,"nodeType":"VariableDeclaration","src":"4663:44:160","nodes":[],"constant":true,"documentation":{"id":79329,"nodeType":"StructuredDocumentation","src":"4611:47:160","text":" @dev `bytes32 replyTo` size."},"mutability":"constant","name":"REPLY_TO_SIZE","nameLocation":"4689:13:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79330,"name":"uint256","nodeType":"ElementaryTypeName","src":"4663:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3332","id":79331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4705:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"visibility":"internal"},{"id":79336,"nodeType":"VariableDeclaration","src":"4812:49:160","nodes":[],"constant":true,"documentation":{"id":79333,"nodeType":"StructuredDocumentation","src":"4714:93:160","text":" @dev `MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE` common header size."},"mutability":"constant","name":"COMMON_HEADER_SIZE","nameLocation":"4838:18:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79334,"name":"uint256","nodeType":"ElementaryTypeName","src":"4812:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3638","id":79335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4859:2:160","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"visibility":"internal"},{"id":79340,"nodeType":"VariableDeclaration","src":"4924:37:160","nodes":[],"constant":true,"documentation":{"id":79337,"nodeType":"StructuredDocumentation","src":"4868:51:160","text":" @dev `DISCRIMINANT_SIZE` offset."},"mutability":"constant","name":"OFFSET1","nameLocation":"4950:7:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79338,"name":"uint256","nodeType":"ElementaryTypeName","src":"4924:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":79339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4960:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":79344,"nodeType":"VariableDeclaration","src":"5041:38:160","nodes":[],"constant":true,"documentation":{"id":79341,"nodeType":"StructuredDocumentation","src":"4967:69:160","text":" @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE` offset."},"mutability":"constant","name":"OFFSET2","nameLocation":"5067:7:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79342,"name":"uint256","nodeType":"ElementaryTypeName","src":"5041:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3333","id":79343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5077:2:160","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"33"},"visibility":"internal"},{"id":79348,"nodeType":"VariableDeclaration","src":"5178:38:160","nodes":[],"constant":true,"documentation":{"id":79345,"nodeType":"StructuredDocumentation","src":"5085:88:160","text":" @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE` offset."},"mutability":"constant","name":"OFFSET3","nameLocation":"5204:7:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79346,"name":"uint256","nodeType":"ElementaryTypeName","src":"5178:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3533","id":79347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5214:2:160","typeDescriptions":{"typeIdentifier":"t_rational_53_by_1","typeString":"int_const 53"},"value":"53"},"visibility":"internal"},{"id":79352,"nodeType":"VariableDeclaration","src":"5358:38:160","nodes":[],"constant":true,"documentation":{"id":79349,"nodeType":"StructuredDocumentation","src":"5222:131:160","text":" @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE + REPLY_CODE_SIZE` offset."},"mutability":"constant","name":"OFFSET4","nameLocation":"5384:7:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79350,"name":"uint256","nodeType":"ElementaryTypeName","src":"5358:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3734","id":79351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5394:2:160","typeDescriptions":{"typeIdentifier":"t_rational_74_by_1","typeString":"int_const 74"},"value":"74"},"visibility":"internal"},{"id":79356,"nodeType":"VariableDeclaration","src":"5519:53:160","nodes":[],"constant":true,"documentation":{"id":79353,"nodeType":"StructuredDocumentation","src":"5403:111:160","text":" @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE` size."},"mutability":"constant","name":"MAILBOXED_MESSAGE_SIZE","nameLocation":"5545:22:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79354,"name":"uint256","nodeType":"ElementaryTypeName","src":"5519:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3730","id":79355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5570:2:160","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":79360,"nodeType":"VariableDeclaration","src":"5728:50:160","nodes":[],"constant":true,"documentation":{"id":79357,"nodeType":"StructuredDocumentation","src":"5578:145:160","text":" @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE + CALL_SIZE + REPLY_CODE_SIZE + REPLY_TO_SIZE` size."},"mutability":"constant","name":"REPLY_MESSAGE_SIZE","nameLocation":"5754:18:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79358,"name":"uint256","nodeType":"ElementaryTypeName","src":"5728:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313036","id":79359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5775:3:160","typeDescriptions":{"typeIdentifier":"t_rational_106_by_1","typeString":"int_const 106"},"value":"106"},"visibility":"internal"},{"id":79364,"nodeType":"VariableDeclaration","src":"5888:47:160","nodes":[],"constant":true,"documentation":{"id":79361,"nodeType":"StructuredDocumentation","src":"5784:99:160","text":" @dev `DISCRIMINANT_SIZE + MESSAGE_ID_SIZE + DESTINATION_SIZE + VALUE_SIZE` size."},"mutability":"constant","name":"VALUE_CLAIM_SIZE","nameLocation":"5914:16:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79362,"name":"uint256","nodeType":"ElementaryTypeName","src":"5888:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3639","id":79363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5933:2:160","typeDescriptions":{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"},"value":"69"},"visibility":"internal"},{"id":79367,"nodeType":"VariableDeclaration","src":"6178:31:160","nodes":[],"baseFunctions":[76232],"constant":false,"documentation":{"id":79365,"nodeType":"StructuredDocumentation","src":"5942:231:160","text":" @dev Address of the `Router` contract, which is the sole authority\n to modify the state of this contract and transfer funds from it.\n forge-lint: disable-next-item(screaming-snake-case-immutable)"},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"6203:6:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79366,"name":"address","nodeType":"ElementaryTypeName","src":"6178:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":79370,"nodeType":"VariableDeclaration","src":"6274:24:160","nodes":[],"baseFunctions":[76238],"constant":false,"documentation":{"id":79368,"nodeType":"StructuredDocumentation","src":"6216:53:160","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"6289:9:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6274:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":79373,"nodeType":"VariableDeclaration","src":"6508:20:160","nodes":[],"baseFunctions":[76244],"constant":false,"documentation":{"id":79371,"nodeType":"StructuredDocumentation","src":"6305:198:160","text":" @dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"6523:5:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79372,"name":"uint256","nodeType":"ElementaryTypeName","src":"6508:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":79376,"nodeType":"VariableDeclaration","src":"6618:18:160","nodes":[],"baseFunctions":[76250],"constant":false,"documentation":{"id":79374,"nodeType":"StructuredDocumentation","src":"6535:78:160","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"6630:6:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79375,"name":"bool","nodeType":"ElementaryTypeName","src":"6618:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":79379,"nodeType":"VariableDeclaration","src":"6890:24:160","nodes":[],"baseFunctions":[76256],"constant":false,"documentation":{"id":79377,"nodeType":"StructuredDocumentation","src":"6691:194:160","text":" @dev The address of the inheritor, which is set by the program on exit.\n Inheritor specifies the address to which all available program value should be transferred."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"6905:9:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79378,"name":"address","nodeType":"ElementaryTypeName","src":"6890:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":79382,"nodeType":"VariableDeclaration","src":"7000:26:160","nodes":[],"baseFunctions":[76262],"constant":false,"documentation":{"id":79380,"nodeType":"StructuredDocumentation","src":"6921:74:160","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"7015:11:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79381,"name":"address","nodeType":"ElementaryTypeName","src":"7000:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":79385,"nodeType":"VariableDeclaration","src":"10361:12:160","nodes":[],"constant":false,"documentation":{"id":79383,"nodeType":"StructuredDocumentation","src":"7033:3323:160","text":" @dev Flag that indicates what type this `Mirror` smart contract is:\n - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation\n (which is usually more expensive in terms of gas to create). This is generally the\n more popular way and is the one you will most likely use if you are writing programs using the Sails framework.\n This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and\n new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`.\n User writes WASM smart contract on Sails framework called \"Сounter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)`\n and waits for the code to be validated.\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`,\n where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \"proxy implementation\",\n and Etherscan will think that `Mirror` has `CounterAbi` methods.\n User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract:\n `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call\n and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror`\n to create new message and pass the Solidity call to the WASM smart contract on the Sails framework.\n WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`.\n - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation\n (which is usually less expensive in terms of gas to create). This case is suitable if the user develops\n WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors\n (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`."},"mutability":"mutable","name":"isSmall","nameLocation":"10366:7:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79384,"name":"bool","nodeType":"ElementaryTypeName","src":"10361:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":79389,"nodeType":"VariableDeclaration","src":"10380:69:160","nodes":[],"constant":false,"mutability":"mutable","name":"_merkleRoots","nameLocation":"10437:12:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"typeName":{"id":79388,"keyName":"stateHash","keyNameLocation":"10396:9:160","keyType":{"id":79386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10388:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"10380:48:160","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"valueName":"merkleRoot","valueNameLocation":"10417:10:160","valueType":{"id":79387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10409:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"private"},{"id":79393,"nodeType":"VariableDeclaration","src":"10455:73:160","nodes":[],"constant":false,"mutability":"mutable","name":"_processedMessages","nameLocation":"10510:18:160","scope":81013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":79392,"keyName":"messageId","keyNameLocation":"10471:9:160","keyType":{"id":79390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10463:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"10455:46:160","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"isProcessed","valueNameLocation":"10489:11:160","valueType":{"id":79391,"name":"bool","nodeType":"ElementaryTypeName","src":"10484:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":79404,"nodeType":"FunctionDefinition","src":"10690:62:160","nodes":[],"body":{"id":79403,"nodeType":"Block","src":"10719:33:160","nodes":[],"statements":[{"expression":{"id":79401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79399,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79367,"src":"10729:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79400,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79396,"src":"10738:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10729:16:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79402,"nodeType":"ExpressionStatement","src":"10729:16:160"}]},"documentation":{"id":79394,"nodeType":"StructuredDocumentation","src":"10535:150:160","text":" @dev Minimal constructor that only sets the immutable `Router` address.\n @param _router The address of the `Router` contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":79397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79396,"mutability":"mutable","name":"_router","nameLocation":"10710:7:160","nodeType":"VariableDeclaration","scope":79404,"src":"10702:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79395,"name":"address","nodeType":"ElementaryTypeName","src":"10702:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10701:17:160"},"returnParameters":{"id":79398,"nodeType":"ParameterList","parameters":[],"src":"10719:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79412,"nodeType":"ModifierDefinition","src":"10909:83:160","nodes":[],"body":{"id":79411,"nodeType":"Block","src":"10941:51:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79407,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79425,"src":"10951:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10951:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79409,"nodeType":"ExpressionStatement","src":"10951:23:160"},{"id":79410,"nodeType":"PlaceholderStatement","src":"10984:1:160"}]},"documentation":{"id":79405,"nodeType":"StructuredDocumentation","src":"10781:123:160","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"10918:20:160","parameters":{"id":79406,"nodeType":"ParameterList","parameters":[],"src":"10938:2:160"},"virtual":false,"visibility":"internal"},{"id":79425,"nodeType":"FunctionDefinition","src":"11098:107:160","nodes":[],"body":{"id":79424,"nodeType":"Block","src":"11145:60:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79417,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79373,"src":"11163:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11171:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11163:9:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79420,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"11174:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11174:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11155:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79423,"nodeType":"ExpressionStatement","src":"11155:43:160"}]},"documentation":{"id":79413,"nodeType":"StructuredDocumentation","src":"10998:95:160","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"11107:21:160","parameters":{"id":79414,"nodeType":"ParameterList","parameters":[],"src":"11128:2:160"},"returnParameters":{"id":79415,"nodeType":"ParameterList","parameters":[],"src":"11145:0:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":79433,"nodeType":"ModifierDefinition","src":"11372:109:160","nodes":[],"body":{"id":79432,"nodeType":"Block","src":"11417:64:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79428,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79451,"src":"11427:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11427:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79430,"nodeType":"ExpressionStatement","src":"11427:36:160"},{"id":79431,"nodeType":"PlaceholderStatement","src":"11473:1:160"}]},"documentation":{"id":79426,"nodeType":"StructuredDocumentation","src":"11211:156:160","text":" @dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"11381:33:160","parameters":{"id":79427,"nodeType":"ParameterList","parameters":[],"src":"11414:2:160"},"virtual":false,"visibility":"internal"},{"id":79451,"nodeType":"FunctionDefinition","src":"11620:172:160","nodes":[],"body":{"id":79450,"nodeType":"Block","src":"11680:112:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":79445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79438,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79373,"src":"11698:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11706:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11698:9:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79441,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11711:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11715:6:160","memberName":"sender","nodeType":"MemberAccess","src":"11711:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":79443,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79382,"src":"11725:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11711:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11698:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79446,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76172,"src":"11738:44:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11738:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79437,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11690:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11690:95:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79449,"nodeType":"ExpressionStatement","src":"11690:95:160"}]},"documentation":{"id":79434,"nodeType":"StructuredDocumentation","src":"11487:128:160","text":" @dev Internal function to check if the init message has been created before or the caller is the initializer."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"11629:34:160","parameters":{"id":79435,"nodeType":"ParameterList","parameters":[],"src":"11663:2:160"},"returnParameters":{"id":79436,"nodeType":"ParameterList","parameters":[],"src":"11680:0:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":79459,"nodeType":"ModifierDefinition","src":"11903:67:160","nodes":[],"body":{"id":79458,"nodeType":"Block","src":"11927:43:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79454,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79471,"src":"11937:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11937:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79456,"nodeType":"ExpressionStatement","src":"11937:15:160"},{"id":79457,"nodeType":"PlaceholderStatement","src":"11962:1:160"}]},"documentation":{"id":79452,"nodeType":"StructuredDocumentation","src":"11798:100:160","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"11912:12:160","parameters":{"id":79453,"nodeType":"ParameterList","parameters":[],"src":"11924:2:160"},"virtual":false,"visibility":"internal"},{"id":79471,"nodeType":"FunctionDefinition","src":"12057:89:160","nodes":[],"body":{"id":79470,"nodeType":"Block","src":"12096:50:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":79465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12114:7:160","subExpression":{"id":79464,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79376,"src":"12115:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79466,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76175,"src":"12123:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12123:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79463,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12106:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12106:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79469,"nodeType":"ExpressionStatement","src":"12106:33:160"}]},"documentation":{"id":79460,"nodeType":"StructuredDocumentation","src":"11976:76:160","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"12066:13:160","parameters":{"id":79461,"nodeType":"ParameterList","parameters":[],"src":"12079:2:160"},"returnParameters":{"id":79462,"nodeType":"ParameterList","parameters":[],"src":"12096:0:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":79479,"nodeType":"ModifierDefinition","src":"12257:67:160","nodes":[],"body":{"id":79478,"nodeType":"Block","src":"12281:43:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79474,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79490,"src":"12291:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12291:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79476,"nodeType":"ExpressionStatement","src":"12291:15:160"},{"id":79477,"nodeType":"PlaceholderStatement","src":"12316:1:160"}]},"documentation":{"id":79472,"nodeType":"StructuredDocumentation","src":"12152:100:160","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"12266:12:160","parameters":{"id":79473,"nodeType":"ParameterList","parameters":[],"src":"12278:2:160"},"virtual":false,"visibility":"internal"},{"id":79490,"nodeType":"FunctionDefinition","src":"12411:91:160","nodes":[],"body":{"id":79489,"nodeType":"Block","src":"12450:52:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":79484,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79376,"src":"12468:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79485,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76178,"src":"12476:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12476:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79483,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12460:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12460:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79488,"nodeType":"ExpressionStatement","src":"12460:35:160"}]},"documentation":{"id":79480,"nodeType":"StructuredDocumentation","src":"12330:76:160","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"12420:13:160","parameters":{"id":79481,"nodeType":"ParameterList","parameters":[],"src":"12433:2:160"},"returnParameters":{"id":79482,"nodeType":"ParameterList","parameters":[],"src":"12450:0:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":79498,"nodeType":"ModifierDefinition","src":"12608:63:160","nodes":[],"body":{"id":79497,"nodeType":"Block","src":"12630:41:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79493,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79512,"src":"12640:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79495,"nodeType":"ExpressionStatement","src":"12640:13:160"},{"id":79496,"nodeType":"PlaceholderStatement","src":"12663:1:160"}]},"documentation":{"id":79491,"nodeType":"StructuredDocumentation","src":"12508:95:160","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"12617:10:160","parameters":{"id":79492,"nodeType":"ParameterList","parameters":[],"src":"12627:2:160"},"virtual":false,"visibility":"internal"},{"id":79512,"nodeType":"FunctionDefinition","src":"12763:102:160","nodes":[],"body":{"id":79511,"nodeType":"Block","src":"12800:65:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79503,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12818:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12822:6:160","memberName":"sender","nodeType":"MemberAccess","src":"12818:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":79505,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79367,"src":"12832:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12818:20:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79507,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76181,"src":"12840:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12840:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12810:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12810:48:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79510,"nodeType":"ExpressionStatement","src":"12810:48:160"}]},"documentation":{"id":79499,"nodeType":"StructuredDocumentation","src":"12677:81:160","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"12772:11:160","parameters":{"id":79500,"nodeType":"ParameterList","parameters":[],"src":"12783:2:160"},"returnParameters":{"id":79501,"nodeType":"ParameterList","parameters":[],"src":"12800:0:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":79520,"nodeType":"ModifierDefinition","src":"12987:69:160","nodes":[],"body":{"id":79519,"nodeType":"Block","src":"13012:44:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79515,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79536,"src":"13022:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13022:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79517,"nodeType":"ExpressionStatement","src":"13022:16:160"},{"id":79518,"nodeType":"PlaceholderStatement","src":"13048:1:160"}]},"documentation":{"id":79513,"nodeType":"StructuredDocumentation","src":"12871:111:160","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"12996:13:160","parameters":{"id":79514,"nodeType":"ParameterList","parameters":[],"src":"13009:2:160"},"virtual":false,"visibility":"internal"},{"id":79536,"nodeType":"FunctionDefinition","src":"13148:108:160","nodes":[],"body":{"id":79535,"nodeType":"Block","src":"13188:68:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":79530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13206:25:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79526,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79367,"src":"13215:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79525,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76958,"src":"13207:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$76958_$","typeString":"type(contract IRouter)"}},"id":79527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13207:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$76958","typeString":"contract IRouter"}},"id":79528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13223:6:160","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":76721,"src":"13207:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":79529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13207:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79531,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76184,"src":"13233:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13233:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79524,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13198:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13198:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79534,"nodeType":"ExpressionStatement","src":"13198:51:160"}]},"documentation":{"id":79521,"nodeType":"StructuredDocumentation","src":"13062:81:160","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"13157:14:160","parameters":{"id":79522,"nodeType":"ParameterList","parameters":[],"src":"13171:2:160"},"returnParameters":{"id":79523,"nodeType":"ParameterList","parameters":[],"src":"13188:0:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":79547,"nodeType":"ModifierDefinition","src":"13394:89:160","nodes":[],"body":{"id":79546,"nodeType":"Block","src":"13433:50:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":79542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79539,"src":"13459:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":79541,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79577,"src":"13443:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":79543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13443:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79544,"nodeType":"ExpressionStatement","src":"13443:22:160"},{"id":79545,"nodeType":"PlaceholderStatement","src":"13475:1:160"}]},"documentation":{"id":79537,"nodeType":"StructuredDocumentation","src":"13262:127:160","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"13403:14:160","parameters":{"id":79540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79539,"mutability":"mutable","name":"value","nameLocation":"13426:5:160","nodeType":"VariableDeclaration","scope":79547,"src":"13418:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79538,"name":"uint128","nodeType":"ElementaryTypeName","src":"13418:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13417:15:160"},"virtual":false,"visibility":"internal"},{"id":79577,"nodeType":"FunctionDefinition","src":"13592:228:160","nodes":[],"body":{"id":79576,"nodeType":"Block","src":"13641:179:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":79555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79550,"src":"13655:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":79554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13664:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13655:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79575,"nodeType":"IfStatement","src":"13651:163:160","trueBody":{"id":79574,"nodeType":"Block","src":"13667:147:160","statements":[{"assignments":[79557],"declarations":[{"constant":false,"id":79557,"mutability":"mutable","name":"success","nameLocation":"13686:7:160","nodeType":"VariableDeclaration","scope":79574,"src":"13681:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79556,"name":"bool","nodeType":"ElementaryTypeName","src":"13681:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":79567,"initialValue":{"arguments":[{"expression":{"id":79562,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13724:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13728:6:160","memberName":"sender","nodeType":"MemberAccess","src":"13724:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79564,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79367,"src":"13736:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79550,"src":"13744:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":79559,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79367,"src":"13703:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79558,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80921,"src":"13696:6:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$76974_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":79560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13696:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":79561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13711:12:160","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"13696:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":79566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13696:54:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13681:69:160"},{"expression":{"arguments":[{"id":79569,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79557,"src":"13772:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79570,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76187,"src":"13781:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13781:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79568,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13764:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79573,"nodeType":"ExpressionStatement","src":"13764:39:160"}]}}]},"documentation":{"id":79548,"nodeType":"StructuredDocumentation","src":"13489:98:160","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"13601:15:160","parameters":{"id":79551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79550,"mutability":"mutable","name":"value","nameLocation":"13625:5:160","nodeType":"VariableDeclaration","scope":79577,"src":"13617:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79549,"name":"uint128","nodeType":"ElementaryTypeName","src":"13617:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13616:15:160"},"returnParameters":{"id":79552,"nodeType":"ParameterList","parameters":[],"src":"13641:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79604,"nodeType":"FunctionDefinition","src":"13959:215:160","nodes":[],"body":{"id":79603,"nodeType":"Block","src":"14009:165:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":79585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79583,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79580,"src":"14023:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":79584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14032:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14023:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79602,"nodeType":"IfStatement","src":"14019:149:160","trueBody":{"id":79601,"nodeType":"Block","src":"14035:133:160","statements":[{"assignments":[79587,null],"declarations":[{"constant":false,"id":79587,"mutability":"mutable","name":"success","nameLocation":"14055:7:160","nodeType":"VariableDeclaration","scope":79601,"src":"14050:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79586,"name":"bool","nodeType":"ElementaryTypeName","src":"14050:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":79594,"initialValue":{"arguments":[{"hexValue":"","id":79592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14093:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":79588,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79367,"src":"14067:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14074:4:160","memberName":"call","nodeType":"MemberAccess","src":"14067:11:160","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":79591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":79590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79580,"src":"14086:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"14067:25:160","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14067:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"14049:47:160"},{"expression":{"arguments":[{"id":79596,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79587,"src":"14118:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79597,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76190,"src":"14127:27:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14110:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14110:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79600,"nodeType":"ExpressionStatement","src":"14110:47:160"}]}}]},"documentation":{"id":79578,"nodeType":"StructuredDocumentation","src":"13826:128:160","text":" @dev Non-zero Ether value must be transferred from source to `Router` in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"13968:16:160","parameters":{"id":79581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79580,"mutability":"mutable","name":"value","nameLocation":"13993:5:160","nodeType":"VariableDeclaration","scope":79604,"src":"13985:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79579,"name":"uint128","nodeType":"ElementaryTypeName","src":"13985:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13984:15:160"},"returnParameters":{"id":79582,"nodeType":"ParameterList","parameters":[],"src":"14009:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79617,"nodeType":"FunctionDefinition","src":"14526:138:160","nodes":[],"body":{"id":79616,"nodeType":"Block","src":"14616:48:160","nodes":[],"statements":[{"expression":{"baseExpression":{"id":79612,"name":"_merkleRoots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79389,"src":"14633:12:160","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":79614,"indexExpression":{"id":79613,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79607,"src":"14646:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14633:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79611,"id":79615,"nodeType":"Return","src":"14626:31:160"}]},"baseFunctions":[76270],"documentation":{"id":79605,"nodeType":"StructuredDocumentation","src":"14208:313:160","text":" @dev Returns the outgoing actions merkle root for the specified state hash.\n Returns `bytes32(0)` if no merkle root was provided for the given state hash.\n @param _stateHash Target state hash.\n @return merkleRoot Outgoing actions merkle root for the specified state hash."},"functionSelector":"0d408e19","implemented":true,"kind":"function","modifiers":[],"name":"getOutgoingActionsMerkleRoot","nameLocation":"14535:28:160","parameters":{"id":79608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79607,"mutability":"mutable","name":"_stateHash","nameLocation":"14572:10:160","nodeType":"VariableDeclaration","scope":79617,"src":"14564:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14564:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14563:20:160"},"returnParameters":{"id":79611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79617,"src":"14607:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14607:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14606:9:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79630,"nodeType":"FunctionDefinition","src":"14888:139:160","nodes":[],"body":{"id":79629,"nodeType":"Block","src":"14973:54:160","nodes":[],"statements":[{"expression":{"baseExpression":{"id":79625,"name":"_processedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79393,"src":"14990:18:160","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":79627,"indexExpression":{"id":79626,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79620,"src":"15009:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14990:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79624,"id":79628,"nodeType":"Return","src":"14983:37:160"}]},"baseFunctions":[76278],"documentation":{"id":79618,"nodeType":"StructuredDocumentation","src":"14670:213:160","text":" @dev Checks if outgoing action was already processed.\n @param _messageId Message ID to check.\n @return isProcessed `true` if outgoing action was already processed, `false` otherwise."},"functionSelector":"0403e33a","implemented":true,"kind":"function","modifiers":[],"name":"isOutgoingActionsProcessed","nameLocation":"14897:26:160","parameters":{"id":79621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79620,"mutability":"mutable","name":"_messageId","nameLocation":"14932:10:160","nodeType":"VariableDeclaration","scope":79630,"src":"14924:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14924:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14923:20:160"},"returnParameters":{"id":79624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79630,"src":"14967:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79622,"name":"bool","nodeType":"ElementaryTypeName","src":"14967:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14966:6:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79648,"nodeType":"FunctionDefinition","src":"15412:216:160","nodes":[],"body":{"id":79647,"nodeType":"Block","src":"15570:58:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":79643,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79633,"src":"15600:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79644,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79635,"src":"15610:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79642,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80315,"src":"15587:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":79645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15587:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79641,"id":79646,"nodeType":"Return","src":"15580:41:160"}]},"baseFunctions":[76288],"documentation":{"id":79631,"nodeType":"StructuredDocumentation","src":"15082:325:160","text":" @dev Sends message to the program.\n As result of execution, the `MessageQueueingRequested` event will be emitted.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":79638,"kind":"modifierInvocation","modifierName":{"id":79637,"name":"whenNotPaused","nameLocations":["15516:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":79520,"src":"15516:13:160"},"nodeType":"ModifierInvocation","src":"15516:13:160"}],"name":"sendMessage","nameLocation":"15421:11:160","parameters":{"id":79636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79633,"mutability":"mutable","name":"_payload","nameLocation":"15448:8:160","nodeType":"VariableDeclaration","scope":79648,"src":"15433:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79632,"name":"bytes","nodeType":"ElementaryTypeName","src":"15433:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79635,"mutability":"mutable","name":"_callReply","nameLocation":"15463:10:160","nodeType":"VariableDeclaration","scope":79648,"src":"15458:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79634,"name":"bool","nodeType":"ElementaryTypeName","src":"15458:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15432:42:160"},"returnParameters":{"id":79641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79640,"mutability":"mutable","name":"messageId","nameLocation":"15555:9:160","nodeType":"VariableDeclaration","scope":79648,"src":"15547:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15547:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15546:19:160"},"scope":81013,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":79683,"nodeType":"FunctionDefinition","src":"16169:340:160","nodes":[],"body":{"id":79682,"nodeType":"Block","src":"16342:167:160","nodes":[],"statements":[{"assignments":[79663],"declarations":[{"constant":false,"id":79663,"mutability":"mutable","name":"_value","nameLocation":"16360:6:160","nodeType":"VariableDeclaration","scope":79682,"src":"16352:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79662,"name":"uint128","nodeType":"ElementaryTypeName","src":"16352:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":79669,"initialValue":{"arguments":[{"expression":{"id":79666,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16377:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16381:5:160","memberName":"value","nodeType":"MemberAccess","src":"16377:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16369:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":79664,"name":"uint128","nodeType":"ElementaryTypeName","src":"16369:7:160","typeDescriptions":{}}},"id":79668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16369:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"16352:35:160"},{"expression":{"arguments":[{"id":79671,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79663,"src":"16415:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":79670,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79604,"src":"16398:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":79672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16398:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79673,"nodeType":"ExpressionStatement","src":"16398:24:160"},{"eventCall":{"arguments":[{"id":79675,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79651,"src":"16461:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79676,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16473:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16477:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16473:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79678,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79653,"src":"16485:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79679,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79663,"src":"16495:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":79674,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76088,"src":"16438:22:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":79680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16438:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79681,"nodeType":"EmitStatement","src":"16433:69:160"}]},"baseFunctions":[76296],"documentation":{"id":79649,"nodeType":"StructuredDocumentation","src":"15634:530:160","text":" @dev Sends reply message to the program.\n Note that this function does not return `bytes32 messageId` of the sent message,\n if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)`\n or use SDK in `ethexe/sdk/src/mirror.rs`.\n As result of execution, the `ReplyQueueingRequested` event will be emitted.\n @param _repliedTo Message ID to which the reply is sent.\n @param _payload The payload of the reply message."},"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":79656,"kind":"modifierInvocation","modifierName":{"id":79655,"name":"whenNotPaused","nameLocations":["16274:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":79520,"src":"16274:13:160"},"nodeType":"ModifierInvocation","src":"16274:13:160"},{"id":79658,"kind":"modifierInvocation","modifierName":{"id":79657,"name":"onlyIfActive","nameLocations":["16296:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":79459,"src":"16296:12:160"},"nodeType":"ModifierInvocation","src":"16296:12:160"},{"id":79660,"kind":"modifierInvocation","modifierName":{"id":79659,"name":"onlyAfterInitMessage","nameLocations":["16317:20:160"],"nodeType":"IdentifierPath","referencedDeclaration":79412,"src":"16317:20:160"},"nodeType":"ModifierInvocation","src":"16317:20:160"}],"name":"sendReply","nameLocation":"16178:9:160","parameters":{"id":79654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79651,"mutability":"mutable","name":"_repliedTo","nameLocation":"16196:10:160","nodeType":"VariableDeclaration","scope":79683,"src":"16188:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16188:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79653,"mutability":"mutable","name":"_payload","nameLocation":"16223:8:160","nodeType":"VariableDeclaration","scope":79683,"src":"16208:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79652,"name":"bytes","nodeType":"ElementaryTypeName","src":"16208:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16187:45:160"},"returnParameters":{"id":79661,"nodeType":"ParameterList","parameters":[],"src":"16342:0:160"},"scope":81013,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":79702,"nodeType":"FunctionDefinition","src":"16799:165:160","nodes":[],"body":{"id":79701,"nodeType":"Block","src":"16896:68:160","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":79696,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"16934:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79697,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16946:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16950:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16946:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":79695,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76095,"src":"16911:22:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":79699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16911:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79700,"nodeType":"EmitStatement","src":"16906:51:160"}]},"baseFunctions":[76302],"documentation":{"id":79684,"nodeType":"StructuredDocumentation","src":"16582:212:160","text":" @dev Claim value from message in mailbox.\n As result of execution, the `ValueClaimingRequested` event will be emitted.\n @param _claimedId Message ID of the value to be claimed."},"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":79689,"kind":"modifierInvocation","modifierName":{"id":79688,"name":"whenNotPaused","nameLocations":["16848:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":79520,"src":"16848:13:160"},"nodeType":"ModifierInvocation","src":"16848:13:160"},{"id":79691,"kind":"modifierInvocation","modifierName":{"id":79690,"name":"onlyIfActive","nameLocations":["16862:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":79459,"src":"16862:12:160"},"nodeType":"ModifierInvocation","src":"16862:12:160"},{"id":79693,"kind":"modifierInvocation","modifierName":{"id":79692,"name":"onlyAfterInitMessage","nameLocations":["16875:20:160"],"nodeType":"IdentifierPath","referencedDeclaration":79412,"src":"16875:20:160"},"nodeType":"ModifierInvocation","src":"16875:20:160"}],"name":"claimValue","nameLocation":"16808:10:160","parameters":{"id":79687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79686,"mutability":"mutable","name":"_claimedId","nameLocation":"16827:10:160","nodeType":"VariableDeclaration","scope":79702,"src":"16819:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16819:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16818:20:160"},"returnParameters":{"id":79694,"nodeType":"ParameterList","parameters":[],"src":"16896:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79720,"nodeType":"FunctionDefinition","src":"17265:168:160","nodes":[],"body":{"id":79719,"nodeType":"Block","src":"17372:61:160","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":79716,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79705,"src":"17419:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":79715,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76105,"src":"17387:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":79717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17387:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79718,"nodeType":"EmitStatement","src":"17382:44:160"}]},"baseFunctions":[76308],"documentation":{"id":79703,"nodeType":"StructuredDocumentation","src":"16970:290:160","text":" @dev Tops up the executable balance of the program.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."},"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":79708,"kind":"modifierInvocation","modifierName":{"id":79707,"name":"whenNotPaused","nameLocations":["17322:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":79520,"src":"17322:13:160"},"nodeType":"ModifierInvocation","src":"17322:13:160"},{"id":79710,"kind":"modifierInvocation","modifierName":{"id":79709,"name":"onlyIfActive","nameLocations":["17336:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":79459,"src":"17336:12:160"},"nodeType":"ModifierInvocation","src":"17336:12:160"},{"arguments":[{"id":79712,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79705,"src":"17364:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":79713,"kind":"modifierInvocation","modifierName":{"id":79711,"name":"retrievingVara","nameLocations":["17349:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":79547,"src":"17349:14:160"},"nodeType":"ModifierInvocation","src":"17349:22:160"}],"name":"executableBalanceTopUp","nameLocation":"17274:22:160","parameters":{"id":79706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79705,"mutability":"mutable","name":"_value","nameLocation":"17305:6:160","nodeType":"VariableDeclaration","scope":79720,"src":"17297:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79704,"name":"uint128","nodeType":"ElementaryTypeName","src":"17297:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"17296:16:160"},"returnParameters":{"id":79714,"nodeType":"ParameterList","parameters":[],"src":"17372:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79768,"nodeType":"FunctionDefinition","src":"18140:374:160","nodes":[],"body":{"id":79767,"nodeType":"Block","src":"18315:199:160","nodes":[],"statements":[{"clauses":[{"block":{"id":79754,"nodeType":"Block","src":"18409:2:160","statements":[]},"errorName":"","id":79755,"nodeType":"TryCatchClause","src":"18409:2:160"},{"block":{"id":79756,"nodeType":"Block","src":"18418:2:160","statements":[]},"errorName":"","id":79757,"nodeType":"TryCatchClause","src":"18412:8:160"}],"externalCall":{"arguments":[{"expression":{"id":79742,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18351:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18355:6:160","memberName":"sender","nodeType":"MemberAccess","src":"18351:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":79746,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18371:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81013","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81013","typeString":"contract Mirror"}],"id":79745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18363:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79744,"name":"address","nodeType":"ElementaryTypeName","src":"18363:7:160","typeDescriptions":{}}},"id":79747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18363:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79748,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79723,"src":"18378:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":79749,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79725,"src":"18386:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79750,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79727,"src":"18397:2:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":79751,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79729,"src":"18401:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79752,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79731,"src":"18405:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":79739,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79367,"src":"18336:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79738,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80921,"src":"18329:6:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$76974_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":79740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18329:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":79741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18344:6:160","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"18329:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":79753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18329:79:160","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79758,"nodeType":"TryStatement","src":"18325:95:160"},{"expression":{"arguments":[{"id":79760,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79723,"src":"18445:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":79759,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79577,"src":"18429:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":79761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18429:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79762,"nodeType":"ExpressionStatement","src":"18429:23:160"},{"eventCall":{"arguments":[{"id":79764,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79723,"src":"18500:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":79763,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76105,"src":"18468:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":79765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18468:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79766,"nodeType":"EmitStatement","src":"18463:44:160"}]},"baseFunctions":[76322],"documentation":{"id":79721,"nodeType":"StructuredDocumentation","src":"17439:696:160","text":" @dev Tops up the executable balance of the program.\n Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router`\n using permit signature, which can save one transaction for user.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"c6049692","implemented":true,"kind":"function","modifiers":[{"id":79734,"kind":"modifierInvocation","modifierName":{"id":79733,"name":"whenNotPaused","nameLocations":["18276:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":79520,"src":"18276:13:160"},"nodeType":"ModifierInvocation","src":"18276:13:160"},{"id":79736,"kind":"modifierInvocation","modifierName":{"id":79735,"name":"onlyIfActive","nameLocations":["18298:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":79459,"src":"18298:12:160"},"nodeType":"ModifierInvocation","src":"18298:12:160"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"18149:32:160","parameters":{"id":79732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79723,"mutability":"mutable","name":"_value","nameLocation":"18190:6:160","nodeType":"VariableDeclaration","scope":79768,"src":"18182:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79722,"name":"uint128","nodeType":"ElementaryTypeName","src":"18182:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":79725,"mutability":"mutable","name":"_deadline","nameLocation":"18206:9:160","nodeType":"VariableDeclaration","scope":79768,"src":"18198:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79724,"name":"uint256","nodeType":"ElementaryTypeName","src":"18198:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79727,"mutability":"mutable","name":"_v","nameLocation":"18223:2:160","nodeType":"VariableDeclaration","scope":79768,"src":"18217:8:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":79726,"name":"uint8","nodeType":"ElementaryTypeName","src":"18217:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":79729,"mutability":"mutable","name":"_r","nameLocation":"18235:2:160","nodeType":"VariableDeclaration","scope":79768,"src":"18227:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18227:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79731,"mutability":"mutable","name":"_s","nameLocation":"18247:2:160","nodeType":"VariableDeclaration","scope":79768,"src":"18239:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79730,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18239:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18181:69:160"},"returnParameters":{"id":79737,"nodeType":"ParameterList","parameters":[],"src":"18315:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79786,"nodeType":"FunctionDefinition","src":"18760:208:160","nodes":[],"body":{"id":79785,"nodeType":"Block","src":"18825:143:160","nodes":[],"statements":[{"assignments":[null,79775],"declarations":[null,{"constant":false,"id":79775,"mutability":"mutable","name":"success","nameLocation":"18843:7:160","nodeType":"VariableDeclaration","scope":79785,"src":"18838:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79774,"name":"bool","nodeType":"ElementaryTypeName","src":"18838:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":79778,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79776,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80348,"src":"18854:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":79777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18854:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"18835:52:160"},{"expression":{"arguments":[{"id":79780,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79775,"src":"18905:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79781,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"18914:44:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18914:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18897:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18897:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79784,"nodeType":"ExpressionStatement","src":"18897:64:160"}]},"baseFunctions":[76326],"documentation":{"id":79769,"nodeType":"StructuredDocumentation","src":"18520:235:160","text":" @dev Transfers locked value to the inheritor.\n Note that this function can be called only after program exited.\n As result of execution, the `LockedValueTransferRequested` event will be emitted."},"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":79772,"kind":"modifierInvocation","modifierName":{"id":79771,"name":"whenNotPaused","nameLocations":["18811:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":79520,"src":"18811:13:160"},"nodeType":"ModifierInvocation","src":"18811:13:160"}],"name":"transferLockedValueToInheritor","nameLocation":"18769:30:160","parameters":{"id":79770,"nodeType":"ParameterList","parameters":[],"src":"18799:2:160"},"returnParameters":{"id":79773,"nodeType":"ParameterList","parameters":[],"src":"18825:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79814,"nodeType":"FunctionDefinition","src":"19448:381:160","nodes":[],"body":{"id":79813,"nodeType":"Block","src":"19648:181:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":79803,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79789,"src":"19713:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79804,"name":"_totalLeaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79791,"src":"19725:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79805,"name":"_leafIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79793,"src":"19739:10:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79806,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79795,"src":"19751:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79807,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79798,"src":"19761:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"id":79802,"name":"_tryParseAndProcessOutgoingAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"19679:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$_t_array$_t_bytes32_$dyn_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes32,uint256,uint256,bytes calldata,bytes32[] calldata) returns (bool)"}},"id":79808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19679:89:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79809,"name":"OutgoingActionInvalidPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76220,"src":"19782:28:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19782:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79801,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19658:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19658:164:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79812,"nodeType":"ExpressionStatement","src":"19658:164:160"}]},"baseFunctions":[76341],"documentation":{"id":79787,"nodeType":"StructuredDocumentation","src":"19043:400:160","text":" @dev Processes outgoing action.\n @param _stateHash The state hash for which to process outgoing action.\n @param _totalLeaves The total number of leaves in the merkle tree.\n @param _leafIndex The index of the leaf for which to process outgoing action.\n @param _payload The payload for the outgoing action.\n @param _proof The merkle proof for the claim."},"functionSelector":"ed3513fc","implemented":true,"kind":"function","modifiers":[],"name":"processOutgoingAction","nameLocation":"19457:21:160","parameters":{"id":79799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79789,"mutability":"mutable","name":"_stateHash","nameLocation":"19496:10:160","nodeType":"VariableDeclaration","scope":79814,"src":"19488:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19488:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79791,"mutability":"mutable","name":"_totalLeaves","nameLocation":"19524:12:160","nodeType":"VariableDeclaration","scope":79814,"src":"19516:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79790,"name":"uint256","nodeType":"ElementaryTypeName","src":"19516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79793,"mutability":"mutable","name":"_leafIndex","nameLocation":"19554:10:160","nodeType":"VariableDeclaration","scope":79814,"src":"19546:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79792,"name":"uint256","nodeType":"ElementaryTypeName","src":"19546:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79795,"mutability":"mutable","name":"_payload","nameLocation":"19589:8:160","nodeType":"VariableDeclaration","scope":79814,"src":"19574:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79794,"name":"bytes","nodeType":"ElementaryTypeName","src":"19574:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79798,"mutability":"mutable","name":"_proof","nameLocation":"19626:6:160","nodeType":"VariableDeclaration","scope":79814,"src":"19607:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":79796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19607:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79797,"nodeType":"ArrayTypeName","src":"19607:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"19478:160:160"},"returnParameters":{"id":79800,"nodeType":"ParameterList","parameters":[],"src":"19648:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79893,"nodeType":"FunctionDefinition","src":"20827:749:160","nodes":[],"body":{"id":79892,"nodeType":"Block","src":"20982:594:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79829,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79382,"src":"21000:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21023:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21015:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79830,"name":"address","nodeType":"ElementaryTypeName","src":"21015:7:160","typeDescriptions":{}}},"id":79833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21015:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21000:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79835,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76208,"src":"21027:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21027:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20992:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20992:59:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79838,"nodeType":"ExpressionStatement","src":"20992:59:160"},{"expression":{"arguments":[{"id":79841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21070:8:160","subExpression":{"id":79840,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79385,"src":"21071:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79842,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"21080:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21080:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21062:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21062:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79845,"nodeType":"ExpressionStatement","src":"21062:38:160"},{"assignments":[79850],"declarations":[{"constant":false,"id":79850,"mutability":"mutable","name":"implementationSlot","nameLocation":"21143:18:160","nodeType":"VariableDeclaration","scope":79892,"src":"21111:50:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":79849,"nodeType":"UserDefinedTypeName","pathNode":{"id":79848,"name":"StorageSlot.AddressSlot","nameLocations":["21111:11:160","21123:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":6730,"src":"21111:23:160"},"referencedDeclaration":6730,"src":"21111:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":79856,"initialValue":{"arguments":[{"expression":{"id":79853,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1269,"src":"21203:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$1269_$","typeString":"type(library ERC1967Utils)"}},"id":79854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21216:19:160","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":990,"src":"21203:32:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79851,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"21176:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":79852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21188:14:160","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":6759,"src":"21176:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6730_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":79855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21176:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21111:125:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79858,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79850,"src":"21255:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":79859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21274:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6729,"src":"21255:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21291:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21283:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79860,"name":"address","nodeType":"ElementaryTypeName","src":"21283:7:160","typeDescriptions":{}}},"id":79863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21283:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21255:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79865,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76212,"src":"21295:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21295:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79857,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21247:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21247:73:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79868,"nodeType":"ExpressionStatement","src":"21247:73:160"},{"expression":{"id":79871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79869,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79382,"src":"21331:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79870,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79817,"src":"21345:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21331:26:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79872,"nodeType":"ExpressionStatement","src":"21331:26:160"},{"expression":{"id":79875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79873,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79385,"src":"21367:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79874,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79821,"src":"21377:8:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21367:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79876,"nodeType":"ExpressionStatement","src":"21367:18:160"},{"expression":{"id":79881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79877,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79850,"src":"21395:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$6730_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":79879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21414:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6729,"src":"21395:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79880,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79819,"src":"21422:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21395:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79882,"nodeType":"ExpressionStatement","src":"21395:40:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":79885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79883,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79823,"src":"21450:25:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":79884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21479:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21450:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79891,"nodeType":"IfStatement","src":"21446:124:160","trueBody":{"id":79890,"nodeType":"Block","src":"21482:88:160","statements":[{"eventCall":{"arguments":[{"id":79887,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79823,"src":"21533:25:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":79886,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76105,"src":"21501:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":79888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21501:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79889,"nodeType":"EmitStatement","src":"21496:63:160"}]}}]},"baseFunctions":[76353],"documentation":{"id":79815,"nodeType":"StructuredDocumentation","src":"19889:933:160","text":" @dev Initializes the contract with the given parameters.\n Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default,\n so we do the initialization separately after creating `Mirror` in this method.\n @param _initializer The address of the initializer. Only this address will be able to send the first (init) message.\n @param _abiInterface The address of the ABI interface. This address will be displayed as \"proxy implementation\"\n and is necessary to show the available methods of `Mirror` smart contract on Etherscan.\n In case it is a Sails framework smart contract, the user can set his own ABI.\n @param _isSmall The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\n @param _initialExecutableBalance The initial executable balance to be transferred to the program."},"functionSelector":"bfa28576","implemented":true,"kind":"function","modifiers":[{"id":79826,"kind":"modifierInvocation","modifierName":{"id":79825,"name":"onlyRouter","nameLocations":["20967:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":79498,"src":"20967:10:160"},"nodeType":"ModifierInvocation","src":"20967:10:160"}],"name":"initialize","nameLocation":"20836:10:160","parameters":{"id":79824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79817,"mutability":"mutable","name":"_initializer","nameLocation":"20855:12:160","nodeType":"VariableDeclaration","scope":79893,"src":"20847:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79816,"name":"address","nodeType":"ElementaryTypeName","src":"20847:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79819,"mutability":"mutable","name":"_abiInterface","nameLocation":"20877:13:160","nodeType":"VariableDeclaration","scope":79893,"src":"20869:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79818,"name":"address","nodeType":"ElementaryTypeName","src":"20869:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79821,"mutability":"mutable","name":"_isSmall","nameLocation":"20897:8:160","nodeType":"VariableDeclaration","scope":79893,"src":"20892:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79820,"name":"bool","nodeType":"ElementaryTypeName","src":"20892:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":79823,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"20915:25:160","nodeType":"VariableDeclaration","scope":79893,"src":"20907:33:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79822,"name":"uint128","nodeType":"ElementaryTypeName","src":"20907:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"20846:95:160"},"returnParameters":{"id":79827,"nodeType":"ParameterList","parameters":[],"src":"20982:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79993,"nodeType":"FunctionDefinition","src":"21790:1808:160","nodes":[],"body":{"id":79992,"nodeType":"Block","src":"21962:1636:160","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79905,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22073:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22085:7:160","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85819,"src":"22073:19:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":79909,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22104:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81013","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81013","typeString":"contract Mirror"}],"id":79908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22096:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79907,"name":"address","nodeType":"ElementaryTypeName","src":"22096:7:160","typeDescriptions":{}}},"id":79910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22096:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22073:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79912,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76214,"src":"22111:14:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22111:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79904,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22065:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22065:63:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79915,"nodeType":"ExpressionStatement","src":"22065:63:160"},{"condition":{"expression":{"id":79916,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22261:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22273:26:160","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85834,"src":"22261:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":79924,"nodeType":"IfStatement","src":"22257:113:160","trueBody":{"id":79923,"nodeType":"Block","src":"22301:69:160","statements":[{"expression":{"arguments":[{"expression":{"id":79919,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22332:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22344:14:160","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85831,"src":"22332:26:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":79918,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79604,"src":"22315:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":79921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22315:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79922,"nodeType":"ExpressionStatement","src":"22315:44:160"}]}},{"assignments":[79927],"declarations":[{"constant":false,"id":79927,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"22456:18:160","nodeType":"VariableDeclaration","scope":79992,"src":"22448:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22448:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":79932,"initialValue":{"arguments":[{"expression":{"id":79929,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22491:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22503:8:160","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":85842,"src":"22491:20:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$85779_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$85779_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":79928,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80446,"src":"22477:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$85779_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":79931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22477:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22448:64:160"},{"documentation":" @dev Sets merkle root of outgoing actions for the new state hash.","expression":{"arguments":[{"expression":{"id":79934,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22657:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22669:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85822,"src":"22657:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79936,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22683:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22695:10:160","memberName":"merkleRoot","nodeType":"MemberAccess","referencedDeclaration":85837,"src":"22683:22:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79933,"name":"_updateOutgoingActionsMerkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80851,"src":"22624:32:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":79938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22624:82:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79939,"nodeType":"ExpressionStatement","src":"22624:82:160"},{"condition":{"expression":{"id":79940,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22786:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22798:6:160","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":85825,"src":"22786:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":79960,"nodeType":"Block","src":"22873:92:160","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79949,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22895:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85828,"src":"22895:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22928:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22920:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79951,"name":"address","nodeType":"ElementaryTypeName","src":"22920:7:160","typeDescriptions":{}}},"id":79954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22920:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22895:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79956,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76216,"src":"22932:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22932:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79948,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22887:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22887:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79959,"nodeType":"ExpressionStatement","src":"22887:67:160"}]},"id":79961,"nodeType":"IfStatement","src":"22782:183:160","trueBody":{"id":79947,"nodeType":"Block","src":"22806:61:160","statements":[{"expression":{"arguments":[{"expression":{"id":79943,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"22834:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22846:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85828,"src":"22834:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79942,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80884,"src":"22820:13:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22820:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79946,"nodeType":"ExpressionStatement","src":"22820:36:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79962,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79370,"src":"23053:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":79963,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23066:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23078:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85822,"src":"23066:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23053:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":79972,"nodeType":"IfStatement","src":"23049:110:160","trueBody":{"id":79971,"nodeType":"Block","src":"23092:67:160","statements":[{"expression":{"arguments":[{"expression":{"id":79967,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23123:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23135:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85822,"src":"23123:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79966,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80899,"src":"23106:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":79969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23106:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79970,"nodeType":"ExpressionStatement","src":"23106:42:160"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":79975,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23297:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23309:7:160","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85819,"src":"23297:19:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":79977,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23330:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23342:12:160","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85822,"src":"23330:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79979,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23368:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23380:6:160","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":85825,"src":"23368:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":79981,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23400:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23412:9:160","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85828,"src":"23400:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":79983,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23435:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23447:14:160","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85831,"src":"23435:26:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":79985,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23475:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23487:26:160","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85834,"src":"23475:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":79987,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79897,"src":"23527:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":79988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23539:10:160","memberName":"merkleRoot","nodeType":"MemberAccess","referencedDeclaration":85837,"src":"23527:22:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79989,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79927,"src":"23563:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79973,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"23259:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":79974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23264:19:160","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":86185,"src":"23259:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32) pure returns (bytes32)"}},"id":79990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:332:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79903,"id":79991,"nodeType":"Return","src":"23252:339:160"}]},"baseFunctions":[76362],"documentation":{"id":79894,"nodeType":"StructuredDocumentation","src":"21582:203:160","text":" @dev Performs state transition for the `Mirror` contract.\n @param _transition The state transition data.\n @return transitionHash The hash of the performed state transition."},"functionSelector":"4b885b9a","implemented":true,"kind":"function","modifiers":[{"id":79900,"kind":"modifierInvocation","modifierName":{"id":79899,"name":"onlyRouter","nameLocations":["21906:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":79498,"src":"21906:10:160"},"nodeType":"ModifierInvocation","src":"21906:10:160"}],"name":"performStateTransition","nameLocation":"21799:22:160","parameters":{"id":79898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79897,"mutability":"mutable","name":"_transition","nameLocation":"21852:11:160","nodeType":"VariableDeclaration","scope":79993,"src":"21822:41:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":79896,"nodeType":"UserDefinedTypeName","pathNode":{"id":79895,"name":"Gear.StateTransition","nameLocations":["21822:4:160","21827:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":85843,"src":"21822:20:160"},"referencedDeclaration":85843,"src":"21822:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"21821:43:160"},"returnParameters":{"id":79903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79902,"mutability":"mutable","name":"transitionHash","nameLocation":"21942:14:160","nodeType":"VariableDeclaration","scope":79993,"src":"21934:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21934:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21933:24:160"},"scope":81013,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":80265,"nodeType":"FunctionDefinition","src":"23711:5148:160","nodes":[],"body":{"id":80264,"nodeType":"Block","src":"23937:4922:160","nodes":[],"statements":[{"condition":{"id":80014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23951:22:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80009,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"23953:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23962:6:160","memberName":"length","nodeType":"MemberAccess","src":"23953:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23971:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23953:19:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80013,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23952:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80018,"nodeType":"IfStatement","src":"23947:65:160","trueBody":{"id":80017,"nodeType":"Block","src":"23975:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23996:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80008,"id":80016,"nodeType":"Return","src":"23989:12:160"}]}},{"assignments":[80020],"declarations":[{"constant":false,"id":80020,"mutability":"mutable","name":"discriminant","nameLocation":"24030:12:160","nodeType":"VariableDeclaration","scope":80264,"src":"24022:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80019,"name":"uint256","nodeType":"ElementaryTypeName","src":"24022:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80021,"nodeType":"VariableDeclarationStatement","src":"24022:20:160"},{"AST":{"nativeSrc":"24077:226:160","nodeType":"YulBlock","src":"24077:226:160","statements":[{"nativeSrc":"24219:74:160","nodeType":"YulAssignment","src":"24219:74:160","value":{"arguments":[{"name":"DISCRIMINANT_BIT_SHIFT","nativeSrc":"24239:22:160","nodeType":"YulIdentifier","src":"24239:22:160"},{"arguments":[{"name":"_payload.offset","nativeSrc":"24276:15:160","nodeType":"YulIdentifier","src":"24276:15:160"}],"functionName":{"name":"calldataload","nativeSrc":"24263:12:160","nodeType":"YulIdentifier","src":"24263:12:160"},"nativeSrc":"24263:29:160","nodeType":"YulFunctionCall","src":"24263:29:160"}],"functionName":{"name":"shr","nativeSrc":"24235:3:160","nodeType":"YulIdentifier","src":"24235:3:160"},"nativeSrc":"24235:58:160","nodeType":"YulFunctionCall","src":"24235:58:160"},"variableNames":[{"name":"discriminant","nativeSrc":"24219:12:160","nodeType":"YulIdentifier","src":"24219:12:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79276,"isOffset":false,"isSlot":false,"src":"24239:22:160","valueSize":1},{"declaration":80001,"isOffset":true,"isSlot":false,"src":"24276:15:160","suffix":"offset","valueSize":1},{"declaration":80020,"isOffset":false,"isSlot":false,"src":"24219:12:160","valueSize":1}],"flags":["memory-safe"],"id":80022,"nodeType":"InlineAssembly","src":"24052:251:160"},{"condition":{"id":80027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24531:30:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80023,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"24533:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80024,"name":"VALUE_CLAIM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79304,"src":"24549:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24533:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80026,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24532:29:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80031,"nodeType":"IfStatement","src":"24527:73:160","trueBody":{"id":80030,"nodeType":"Block","src":"24563:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24584:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80008,"id":80029,"nodeType":"Return","src":"24577:12:160"}]}},{"condition":{"id":80037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24614:39:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80032,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"24616:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24625:6:160","memberName":"length","nodeType":"MemberAccess","src":"24616:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":80034,"name":"COMMON_HEADER_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79336,"src":"24634:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24616:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80036,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24615:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80041,"nodeType":"IfStatement","src":"24610:82:160","trueBody":{"id":80040,"nodeType":"Block","src":"24655:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24676:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80008,"id":80039,"nodeType":"Return","src":"24669:12:160"}]}},{"assignments":[80043],"declarations":[{"constant":false,"id":80043,"mutability":"mutable","name":"messageId","nameLocation":"24794:9:160","nodeType":"VariableDeclaration","scope":80264,"src":"24786:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24786:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80044,"nodeType":"VariableDeclarationStatement","src":"24786:17:160"},{"AST":{"nativeSrc":"24838:80:160","nodeType":"YulBlock","src":"24838:80:160","statements":[{"nativeSrc":"24852:56:160","nodeType":"YulAssignment","src":"24852:56:160","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"24882:15:160","nodeType":"YulIdentifier","src":"24882:15:160"},{"name":"OFFSET1","nativeSrc":"24899:7:160","nodeType":"YulIdentifier","src":"24899:7:160"}],"functionName":{"name":"add","nativeSrc":"24878:3:160","nodeType":"YulIdentifier","src":"24878:3:160"},"nativeSrc":"24878:29:160","nodeType":"YulFunctionCall","src":"24878:29:160"}],"functionName":{"name":"calldataload","nativeSrc":"24865:12:160","nodeType":"YulIdentifier","src":"24865:12:160"},"nativeSrc":"24865:43:160","nodeType":"YulFunctionCall","src":"24865:43:160"},"variableNames":[{"name":"messageId","nativeSrc":"24852:9:160","nodeType":"YulIdentifier","src":"24852:9:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79340,"isOffset":false,"isSlot":false,"src":"24899:7:160","valueSize":1},{"declaration":80001,"isOffset":true,"isSlot":false,"src":"24882:15:160","suffix":"offset","valueSize":1},{"declaration":80043,"isOffset":false,"isSlot":false,"src":"24852:9:160","valueSize":1}],"flags":["memory-safe"],"id":80045,"nodeType":"InlineAssembly","src":"24813:105:160"},{"expression":{"arguments":[{"id":80050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24936:30:160","subExpression":{"baseExpression":{"id":80047,"name":"_processedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79393,"src":"24937:18:160","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":80049,"indexExpression":{"id":80048,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80043,"src":"24956:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24937:29:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80052,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80043,"src":"24999:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80051,"name":"OutgoingActionAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76198,"src":"24968:30:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":80053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24968:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80046,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24928:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24928:82:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80055,"nodeType":"ExpressionStatement","src":"24928:82:160"},{"assignments":[80057],"declarations":[{"constant":false,"id":80057,"mutability":"mutable","name":"destination","nameLocation":"25155:11:160","nodeType":"VariableDeclaration","scope":80264,"src":"25147:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80056,"name":"address","nodeType":"ElementaryTypeName","src":"25147:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80058,"nodeType":"VariableDeclarationStatement","src":"25147:19:160"},{"AST":{"nativeSrc":"25201:237:160","nodeType":"YulBlock","src":"25201:237:160","statements":[{"nativeSrc":"25342:86:160","nodeType":"YulAssignment","src":"25342:86:160","value":{"arguments":[{"name":"DESTINATION_BIT_SHIFT","nativeSrc":"25361:21:160","nodeType":"YulIdentifier","src":"25361:21:160"},{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"25401:15:160","nodeType":"YulIdentifier","src":"25401:15:160"},{"name":"OFFSET2","nativeSrc":"25418:7:160","nodeType":"YulIdentifier","src":"25418:7:160"}],"functionName":{"name":"add","nativeSrc":"25397:3:160","nodeType":"YulIdentifier","src":"25397:3:160"},"nativeSrc":"25397:29:160","nodeType":"YulFunctionCall","src":"25397:29:160"}],"functionName":{"name":"calldataload","nativeSrc":"25384:12:160","nodeType":"YulIdentifier","src":"25384:12:160"},"nativeSrc":"25384:43:160","nodeType":"YulFunctionCall","src":"25384:43:160"}],"functionName":{"name":"shr","nativeSrc":"25357:3:160","nodeType":"YulIdentifier","src":"25357:3:160"},"nativeSrc":"25357:71:160","nodeType":"YulFunctionCall","src":"25357:71:160"},"variableNames":[{"name":"destination","nativeSrc":"25342:11:160","nodeType":"YulIdentifier","src":"25342:11:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79280,"isOffset":false,"isSlot":false,"src":"25361:21:160","valueSize":1},{"declaration":79344,"isOffset":false,"isSlot":false,"src":"25418:7:160","valueSize":1},{"declaration":80001,"isOffset":true,"isSlot":false,"src":"25401:15:160","suffix":"offset","valueSize":1},{"declaration":80057,"isOffset":false,"isSlot":false,"src":"25342:11:160","valueSize":1}],"flags":["memory-safe"],"id":80059,"nodeType":"InlineAssembly","src":"25176:262:160"},{"assignments":[80061],"declarations":[{"constant":false,"id":80061,"mutability":"mutable","name":"word","nameLocation":"25632:4:160","nodeType":"VariableDeclaration","scope":80264,"src":"25624:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80060,"name":"uint256","nodeType":"ElementaryTypeName","src":"25624:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80062,"nodeType":"VariableDeclarationStatement","src":"25624:12:160"},{"AST":{"nativeSrc":"25671:75:160","nodeType":"YulBlock","src":"25671:75:160","statements":[{"nativeSrc":"25685:51:160","nodeType":"YulAssignment","src":"25685:51:160","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"25710:15:160","nodeType":"YulIdentifier","src":"25710:15:160"},{"name":"OFFSET3","nativeSrc":"25727:7:160","nodeType":"YulIdentifier","src":"25727:7:160"}],"functionName":{"name":"add","nativeSrc":"25706:3:160","nodeType":"YulIdentifier","src":"25706:3:160"},"nativeSrc":"25706:29:160","nodeType":"YulFunctionCall","src":"25706:29:160"}],"functionName":{"name":"calldataload","nativeSrc":"25693:12:160","nodeType":"YulIdentifier","src":"25693:12:160"},"nativeSrc":"25693:43:160","nodeType":"YulFunctionCall","src":"25693:43:160"},"variableNames":[{"name":"word","nativeSrc":"25685:4:160","nodeType":"YulIdentifier","src":"25685:4:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79348,"isOffset":false,"isSlot":false,"src":"25727:7:160","valueSize":1},{"declaration":80001,"isOffset":true,"isSlot":false,"src":"25710:15:160","suffix":"offset","valueSize":1},{"declaration":80061,"isOffset":false,"isSlot":false,"src":"25685:4:160","valueSize":1}],"flags":["memory-safe"],"id":80063,"nodeType":"InlineAssembly","src":"25646:100:160"},{"assignments":[80065],"declarations":[{"constant":false,"id":80065,"mutability":"mutable","name":"value","nameLocation":"25917:5:160","nodeType":"VariableDeclaration","scope":80264,"src":"25909:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80064,"name":"uint128","nodeType":"ElementaryTypeName","src":"25909:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80072,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80068,"name":"word","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80061,"src":"25933:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":80069,"name":"VALUE_BIT_SHIFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79284,"src":"25941:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25933:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25925:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80066,"name":"uint128","nodeType":"ElementaryTypeName","src":"25925:7:160","typeDescriptions":{}}},"id":80071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25925:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"25909:48:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80073,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"25972:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80074,"name":"VALUE_CLAIM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79304,"src":"25988:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25972:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80087,"nodeType":"IfStatement","src":"25968:146:160","trueBody":{"id":80086,"nodeType":"Block","src":"26001:113:160","statements":[{"condition":{"id":80081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"26019:38:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80076,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"26021:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26030:6:160","memberName":"length","nodeType":"MemberAccess","src":"26021:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80078,"name":"VALUE_CLAIM_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79364,"src":"26040:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26021:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80080,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26020:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80085,"nodeType":"IfStatement","src":"26015:89:160","trueBody":{"id":80084,"nodeType":"Block","src":"26059:45:160","statements":[{"expression":{"hexValue":"66616c7365","id":80082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26084:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80008,"id":80083,"nodeType":"Return","src":"26077:12:160"}]}}]}},{"assignments":[80089],"declarations":[{"constant":false,"id":80089,"mutability":"mutable","name":"call","nameLocation":"26271:4:160","nodeType":"VariableDeclaration","scope":80264,"src":"26266:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80088,"name":"bool","nodeType":"ElementaryTypeName","src":"26266:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80098,"initialValue":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":80097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80092,"name":"word","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80061,"src":"26284:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":80093,"name":"CALL_BIT_SHIFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79288,"src":"26292:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26284:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26278:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":80090,"name":"uint8","nodeType":"ElementaryTypeName","src":"26278:5:160","typeDescriptions":{}}},"id":80095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26278:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26311:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26278:34:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"26266:46:160"},{"assignments":[80100],"declarations":[{"constant":false,"id":80100,"mutability":"mutable","name":"replyCode","nameLocation":"26480:9:160","nodeType":"VariableDeclaration","scope":80264,"src":"26473:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":80099,"name":"bytes4","nodeType":"ElementaryTypeName","src":"26473:6:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":80110,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80105,"name":"word","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80061,"src":"26506:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":80106,"name":"REPLY_CODE_BIT_SHIFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79292,"src":"26514:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26506:28:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26499:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":80103,"name":"uint32","nodeType":"ElementaryTypeName","src":"26499:6:160","typeDescriptions":{}}},"id":80108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26499:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26492:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":80101,"name":"bytes4","nodeType":"ElementaryTypeName","src":"26492:6:160","typeDescriptions":{}}},"id":80109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26492:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"26473:63:160"},{"assignments":[80112],"declarations":[{"constant":false,"id":80112,"mutability":"mutable","name":"payload","nameLocation":"26562:7:160","nodeType":"VariableDeclaration","scope":80264,"src":"26547:22:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80111,"name":"bytes","nodeType":"ElementaryTypeName","src":"26547:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":80116,"initialValue":{"baseExpression":{"id":80113,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"26572:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"30","id":80114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26582:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":80115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"26572:12:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"nodeType":"VariableDeclarationStatement","src":"26547:37:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80117,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"26626:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80118,"name":"MAILBOXED_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79296,"src":"26642:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26626:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80137,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"26847:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80138,"name":"REPLY_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79300,"src":"26863:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26847:29:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80157,"nodeType":"IfStatement","src":"26843:203:160","trueBody":{"id":80156,"nodeType":"Block","src":"26878:168:160","statements":[{"condition":{"id":80145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"26896:40:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80140,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"26898:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26907:6:160","memberName":"length","nodeType":"MemberAccess","src":"26898:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":80142,"name":"REPLY_MESSAGE_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79360,"src":"26917:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26898:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80144,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26897:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80149,"nodeType":"IfStatement","src":"26892:91:160","trueBody":{"id":80148,"nodeType":"Block","src":"26938:45:160","statements":[{"expression":{"hexValue":"66616c7365","id":80146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26963:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80008,"id":80147,"nodeType":"Return","src":"26956:12:160"}]}},{"expression":{"id":80154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80150,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"26996:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":80151,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"27006:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"27006:29:160","startExpression":{"id":80152,"name":"REPLY_MESSAGE_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79360,"src":"27015:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"26996:39:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80155,"nodeType":"ExpressionStatement","src":"26996:39:160"}]}},"id":80158,"nodeType":"IfStatement","src":"26622:424:160","trueBody":{"id":80136,"nodeType":"Block","src":"26661:176:160","statements":[{"condition":{"id":80125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"26679:44:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80120,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"26681:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26690:6:160","memberName":"length","nodeType":"MemberAccess","src":"26681:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":80122,"name":"MAILBOXED_MESSAGE_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79356,"src":"26700:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26681:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80124,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26680:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80129,"nodeType":"IfStatement","src":"26675:95:160","trueBody":{"id":80128,"nodeType":"Block","src":"26725:45:160","statements":[{"expression":{"hexValue":"66616c7365","id":80126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26750:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80008,"id":80127,"nodeType":"Return","src":"26743:12:160"}]}},{"expression":{"id":80134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80130,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"26783:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":80131,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80001,"src":"26793:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"26793:33:160","startExpression":{"id":80132,"name":"MAILBOXED_MESSAGE_SIZE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79356,"src":"26802:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"26783:43:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80135,"nodeType":"ExpressionStatement","src":"26783:43:160"}]}},{"assignments":[80160],"declarations":[{"constant":false,"id":80160,"mutability":"mutable","name":"replyTo","nameLocation":"27333:7:160","nodeType":"VariableDeclaration","scope":80264,"src":"27325:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27325:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80161,"nodeType":"VariableDeclarationStatement","src":"27325:15:160"},{"AST":{"nativeSrc":"27375:78:160","nodeType":"YulBlock","src":"27375:78:160","statements":[{"nativeSrc":"27389:54:160","nodeType":"YulAssignment","src":"27389:54:160","value":{"arguments":[{"arguments":[{"name":"_payload.offset","nativeSrc":"27417:15:160","nodeType":"YulIdentifier","src":"27417:15:160"},{"name":"OFFSET4","nativeSrc":"27434:7:160","nodeType":"YulIdentifier","src":"27434:7:160"}],"functionName":{"name":"add","nativeSrc":"27413:3:160","nodeType":"YulIdentifier","src":"27413:3:160"},"nativeSrc":"27413:29:160","nodeType":"YulFunctionCall","src":"27413:29:160"}],"functionName":{"name":"calldataload","nativeSrc":"27400:12:160","nodeType":"YulIdentifier","src":"27400:12:160"},"nativeSrc":"27400:43:160","nodeType":"YulFunctionCall","src":"27400:43:160"},"variableNames":[{"name":"replyTo","nativeSrc":"27389:7:160","nodeType":"YulIdentifier","src":"27389:7:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79352,"isOffset":false,"isSlot":false,"src":"27434:7:160","valueSize":1},{"declaration":80001,"isOffset":true,"isSlot":false,"src":"27417:15:160","suffix":"offset","valueSize":1},{"declaration":80160,"isOffset":false,"isSlot":false,"src":"27389:7:160","valueSize":1}],"flags":["memory-safe"],"id":80162,"nodeType":"InlineAssembly","src":"27350:103:160"},{"assignments":[80164],"declarations":[{"constant":false,"id":80164,"mutability":"mutable","name":"merkleRoot","nameLocation":"27471:10:160","nodeType":"VariableDeclaration","scope":80264,"src":"27463:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80163,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27463:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80168,"initialValue":{"baseExpression":{"id":80165,"name":"_merkleRoots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79389,"src":"27484:12:160","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":80167,"indexExpression":{"id":80166,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79995,"src":"27497:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27484:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27463:45:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80170,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80164,"src":"27526:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27548:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27540:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27540:7:160","typeDescriptions":{}}},"id":80174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27540:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27526:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80177,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79995,"src":"27585:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80176,"name":"OutgoingActionMerkleRootNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76203,"src":"27552:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":80178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27552:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80169,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27518:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27518:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80180,"nodeType":"ExpressionStatement","src":"27518:79:160"},{"assignments":[80182],"declarations":[{"constant":false,"id":80182,"mutability":"mutable","name":"outgoingActionHash","nameLocation":"27616:18:160","nodeType":"VariableDeclaration","scope":80264,"src":"27608:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27608:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80183,"nodeType":"VariableDeclarationStatement","src":"27608:26:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80184,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"27649:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80185,"name":"MAILBOXED_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79296,"src":"27665:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27649:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80188,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"27763:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80189,"name":"REPLY_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79300,"src":"27779:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27763:29:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80192,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"27869:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80193,"name":"VALUE_CLAIM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79304,"src":"27885:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27869:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80205,"nodeType":"IfStatement","src":"27865:129:160","trueBody":{"id":80204,"nodeType":"Block","src":"27898:96:160","statements":[{"expression":{"id":80202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80195,"name":"outgoingActionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80182,"src":"27912:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":80198,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80043,"src":"27953:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80199,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80057,"src":"27964:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80200,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80065,"src":"27977:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":80196,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"27933:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":80197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27938:14:160","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":86089,"src":"27933:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":80201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27933:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27912:71:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80203,"nodeType":"ExpressionStatement","src":"27912:71:160"}]}},"id":80206,"nodeType":"IfStatement","src":"27759:235:160","trueBody":{"id":80191,"nodeType":"Block","src":"27794:65:160","statements":[]}},"id":80207,"nodeType":"IfStatement","src":"27645:349:160","trueBody":{"id":80187,"nodeType":"Block","src":"27684:69:160","statements":[]}},{"expression":{"arguments":[{"arguments":[{"id":80211,"name":"merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80164,"src":"28062:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80212,"name":"_proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80004,"src":"28074:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":80213,"name":"_totalLeaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79997,"src":"28082:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80214,"name":"_leafIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79999,"src":"28096:10:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80215,"name":"outgoingActionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80182,"src":"28108:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80209,"name":"BinaryMerkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85098,"src":"28025:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BinaryMerkleTree_$85098_$","typeString":"type(library BinaryMerkleTree)"}},"id":80210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28042:19:160","memberName":"verifyProofCalldata","nodeType":"MemberAccess","referencedDeclaration":84847,"src":"28025:36:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32[] calldata,uint256,uint256,bytes32) pure returns (bool)"}},"id":80216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28025:102:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80217,"name":"OutgoingActionInvalidMerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76206,"src":"28141:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28141:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80208,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"28004:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28004:181:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80220,"nodeType":"ExpressionStatement","src":"28004:181:160"},{"expression":{"id":80225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80221,"name":"_processedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79393,"src":"28196:18:160","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":80223,"indexExpression":{"id":80222,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80043,"src":"28215:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28196:29:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":80224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28228:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"28196:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80226,"nodeType":"ExpressionStatement","src":"28196:36:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80227,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"28247:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80228,"name":"MAILBOXED_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79296,"src":"28263:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28247:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80231,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"28352:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80232,"name":"REPLY_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79300,"src":"28368:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28352:29:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80235,"name":"discriminant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80020,"src":"28449:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80236,"name":"VALUE_CLAIM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79304,"src":"28465:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28449:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80259,"nodeType":"IfStatement","src":"28445:386:160","trueBody":{"id":80258,"nodeType":"Block","src":"28478:353:160","statements":[{"assignments":[80239],"declarations":[{"constant":false,"id":80239,"mutability":"mutable","name":"success","nameLocation":"28660:7:160","nodeType":"VariableDeclaration","scope":80258,"src":"28655:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80238,"name":"bool","nodeType":"ElementaryTypeName","src":"28655:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80244,"initialValue":{"arguments":[{"id":80241,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80057,"src":"28685:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80242,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80065,"src":"28698:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80240,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80951,"src":"28670:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":80243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28670:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"28655:49:160"},{"expression":{"arguments":[{"id":80246,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80239,"src":"28726:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80248,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80043,"src":"28752:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80249,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80065,"src":"28763:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80247,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76226,"src":"28735:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$_t_uint128_$returns$_t_error_$","typeString":"function (bytes32,uint128) pure returns (error)"}},"id":80250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28735:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"28718:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28718:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80252,"nodeType":"ExpressionStatement","src":"28718:52:160"},{"eventCall":{"arguments":[{"id":80254,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80043,"src":"28803:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80255,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80065,"src":"28814:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80253,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"28790:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":80256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28790:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80257,"nodeType":"EmitStatement","src":"28785:35:160"}]}},"id":80260,"nodeType":"IfStatement","src":"28348:483:160","trueBody":{"id":80234,"nodeType":"Block","src":"28383:56:160","statements":[]}},"id":80261,"nodeType":"IfStatement","src":"28243:588:160","trueBody":{"id":80230,"nodeType":"Block","src":"28282:60:160","statements":[]}},{"expression":{"hexValue":"74727565","id":80262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28848:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80008,"id":80263,"nodeType":"Return","src":"28841:11:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndProcessOutgoingAction","nameLocation":"23720:33:160","parameters":{"id":80005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79995,"mutability":"mutable","name":"_stateHash","nameLocation":"23771:10:160","nodeType":"VariableDeclaration","scope":80265,"src":"23763:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23763:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79997,"mutability":"mutable","name":"_totalLeaves","nameLocation":"23799:12:160","nodeType":"VariableDeclaration","scope":80265,"src":"23791:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79996,"name":"uint256","nodeType":"ElementaryTypeName","src":"23791:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79999,"mutability":"mutable","name":"_leafIndex","nameLocation":"23829:10:160","nodeType":"VariableDeclaration","scope":80265,"src":"23821:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79998,"name":"uint256","nodeType":"ElementaryTypeName","src":"23821:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80001,"mutability":"mutable","name":"_payload","nameLocation":"23864:8:160","nodeType":"VariableDeclaration","scope":80265,"src":"23849:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80000,"name":"bytes","nodeType":"ElementaryTypeName","src":"23849:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80004,"mutability":"mutable","name":"_proof","nameLocation":"23901:6:160","nodeType":"VariableDeclaration","scope":80265,"src":"23882:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80002,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23882:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80003,"nodeType":"ArrayTypeName","src":"23882:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"23753:160:160"},"returnParameters":{"id":80008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80007,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80265,"src":"23931:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80006,"name":"bool","nodeType":"ElementaryTypeName","src":"23931:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23930:6:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80315,"nodeType":"FunctionDefinition","src":"29234:760:160","nodes":[],"body":{"id":80314,"nodeType":"Block","src":"29417:577:160","nodes":[],"statements":[{"assignments":[80280],"declarations":[{"constant":false,"id":80280,"mutability":"mutable","name":"_value","nameLocation":"29435:6:160","nodeType":"VariableDeclaration","scope":80314,"src":"29427:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80279,"name":"uint128","nodeType":"ElementaryTypeName","src":"29427:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80286,"initialValue":{"arguments":[{"expression":{"id":80283,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29452:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29456:5:160","memberName":"value","nodeType":"MemberAccess","src":"29452:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29444:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80281,"name":"uint128","nodeType":"ElementaryTypeName","src":"29444:7:160","typeDescriptions":{}}},"id":80285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29444:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"29427:35:160"},{"expression":{"arguments":[{"id":80288,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80280,"src":"29490:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80287,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79604,"src":"29473:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29473:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80290,"nodeType":"ExpressionStatement","src":"29473:24:160"},{"assignments":[80292],"declarations":[{"constant":false,"id":80292,"mutability":"mutable","name":"_nonce","nameLocation":"29516:6:160","nodeType":"VariableDeclaration","scope":80314,"src":"29508:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80291,"name":"uint256","nodeType":"ElementaryTypeName","src":"29508:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80294,"initialValue":{"id":80293,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79373,"src":"29525:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29508:22:160"},{"assignments":[80297],"declarations":[{"constant":false,"id":80297,"mutability":"mutable","name":"id","nameLocation":"29699:2:160","nodeType":"VariableDeclaration","scope":80314,"src":"29691:10:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29691:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate unique message ID by formula:\n - `keccak256(abi.encodePacked(address(this), nonce++))`","id":80298,"nodeType":"VariableDeclarationStatement","src":"29691:10:160"},{"AST":{"nativeSrc":"29736:129:160","nodeType":"YulBlock","src":"29736:129:160","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29757:4:160","nodeType":"YulLiteral","src":"29757:4:160","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"29767:2:160","nodeType":"YulLiteral","src":"29767:2:160","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"29771:7:160","nodeType":"YulIdentifier","src":"29771:7:160"},"nativeSrc":"29771:9:160","nodeType":"YulFunctionCall","src":"29771:9:160"}],"functionName":{"name":"shl","nativeSrc":"29763:3:160","nodeType":"YulIdentifier","src":"29763:3:160"},"nativeSrc":"29763:18:160","nodeType":"YulFunctionCall","src":"29763:18:160"}],"functionName":{"name":"mstore","nativeSrc":"29750:6:160","nodeType":"YulIdentifier","src":"29750:6:160"},"nativeSrc":"29750:32:160","nodeType":"YulFunctionCall","src":"29750:32:160"},"nativeSrc":"29750:32:160","nodeType":"YulExpressionStatement","src":"29750:32:160"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29802:4:160","nodeType":"YulLiteral","src":"29802:4:160","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"29808:6:160","nodeType":"YulIdentifier","src":"29808:6:160"}],"functionName":{"name":"mstore","nativeSrc":"29795:6:160","nodeType":"YulIdentifier","src":"29795:6:160"},"nativeSrc":"29795:20:160","nodeType":"YulFunctionCall","src":"29795:20:160"},"nativeSrc":"29795:20:160","nodeType":"YulExpressionStatement","src":"29795:20:160"},{"nativeSrc":"29828:27:160","nodeType":"YulAssignment","src":"29828:27:160","value":{"arguments":[{"kind":"number","nativeSrc":"29844:4:160","nodeType":"YulLiteral","src":"29844:4:160","type":"","value":"0x00"},{"kind":"number","nativeSrc":"29850:4:160","nodeType":"YulLiteral","src":"29850:4:160","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"29834:9:160","nodeType":"YulIdentifier","src":"29834:9:160"},"nativeSrc":"29834:21:160","nodeType":"YulFunctionCall","src":"29834:21:160"},"variableNames":[{"name":"id","nativeSrc":"29828:2:160","nodeType":"YulIdentifier","src":"29828:2:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80292,"isOffset":false,"isSlot":false,"src":"29808:6:160","valueSize":1},{"declaration":80297,"isOffset":false,"isSlot":false,"src":"29828:2:160","valueSize":1}],"flags":["memory-safe"],"id":80299,"nodeType":"InlineAssembly","src":"29711:154:160"},{"expression":{"id":80301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29874:7:160","subExpression":{"id":80300,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79373,"src":"29874:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80302,"nodeType":"ExpressionStatement","src":"29874:7:160"},{"eventCall":{"arguments":[{"id":80304,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80297,"src":"29922:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80305,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29926:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29930:6:160","memberName":"sender","nodeType":"MemberAccess","src":"29926:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80307,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80268,"src":"29938:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":80308,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80280,"src":"29948:6:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":80309,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80270,"src":"29956:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80303,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76077,"src":"29897:24:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":80310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29897:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80311,"nodeType":"EmitStatement","src":"29892:75:160"},{"expression":{"id":80312,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80297,"src":"29985:2:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80278,"id":80313,"nodeType":"Return","src":"29978:9:160"}]},"documentation":{"id":80266,"nodeType":"StructuredDocumentation","src":"28865:364:160","text":" @dev Internal implementation of `sendMessage` function.\n This function is used to send message to the program and emit `MessageQueueingRequested` event.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"implemented":true,"kind":"function","modifiers":[{"id":80273,"kind":"modifierInvocation","modifierName":{"id":80272,"name":"onlyIfActive","nameLocations":["29322:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":79459,"src":"29322:12:160"},"nodeType":"ModifierInvocation","src":"29322:12:160"},{"id":80275,"kind":"modifierInvocation","modifierName":{"id":80274,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["29343:33:160"],"nodeType":"IdentifierPath","referencedDeclaration":79433,"src":"29343:33:160"},"nodeType":"ModifierInvocation","src":"29343:33:160"}],"name":"_sendMessage","nameLocation":"29243:12:160","parameters":{"id":80271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80268,"mutability":"mutable","name":"_payload","nameLocation":"29271:8:160","nodeType":"VariableDeclaration","scope":80315,"src":"29256:23:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80267,"name":"bytes","nodeType":"ElementaryTypeName","src":"29256:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80270,"mutability":"mutable","name":"_callReply","nameLocation":"29286:10:160","nodeType":"VariableDeclaration","scope":80315,"src":"29281:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80269,"name":"bool","nodeType":"ElementaryTypeName","src":"29281:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29255:42:160"},"returnParameters":{"id":80278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80277,"mutability":"mutable","name":"messageId","nameLocation":"29402:9:160","nodeType":"VariableDeclaration","scope":80315,"src":"29394:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29394:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"29393:19:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80348,"nodeType":"FunctionDefinition","src":"30323:470:160","nodes":[],"body":{"id":80347,"nodeType":"Block","src":"30472:321:160","nodes":[],"statements":[{"assignments":[80326],"declarations":[{"constant":false,"id":80326,"mutability":"mutable","name":"balance","nameLocation":"30490:7:160","nodeType":"VariableDeclaration","scope":80347,"src":"30482:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80325,"name":"uint256","nodeType":"ElementaryTypeName","src":"30482:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80332,"initialValue":{"expression":{"arguments":[{"id":80329,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"30508:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$81013","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$81013","typeString":"contract Mirror"}],"id":80328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30500:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80327,"name":"address","nodeType":"ElementaryTypeName","src":"30500:7:160","typeDescriptions":{}}},"id":80330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30500:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30514:7:160","memberName":"balance","nodeType":"MemberAccess","src":"30500:21:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30482:39:160"},{"assignments":[80334],"declarations":[{"constant":false,"id":80334,"mutability":"mutable","name":"balance128","nameLocation":"30689:10:160","nodeType":"VariableDeclaration","scope":80347,"src":"30681:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80333,"name":"uint128","nodeType":"ElementaryTypeName","src":"30681:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80339,"initialValue":{"arguments":[{"id":80337,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80326,"src":"30710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30702:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80335,"name":"uint128","nodeType":"ElementaryTypeName","src":"30702:7:160","typeDescriptions":{}}},"id":80338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30702:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"30681:37:160"},{"expression":{"components":[{"id":80340,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80334,"src":"30736:10:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":80342,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79379,"src":"30763:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80343,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80334,"src":"30774:10:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80341,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80951,"src":"30748:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":80344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30748:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80345,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30735:51:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":80324,"id":80346,"nodeType":"Return","src":"30728:58:160"}]},"documentation":{"id":80316,"nodeType":"StructuredDocumentation","src":"30000:318:160","text":" @dev Internal implementation of `transferLockedValueToInheritor` function.\n Note that this function can be called only after program exited.\n @return valueTransferred The amount of WVARA transferred.\n @return transferSuccess The flag indicating if the transfer was successful."},"implemented":true,"kind":"function","modifiers":[{"id":80319,"kind":"modifierInvocation","modifierName":{"id":80318,"name":"onlyIfExited","nameLocations":["30390:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":79479,"src":"30390:12:160"},"nodeType":"ModifierInvocation","src":"30390:12:160"}],"name":"_transferLockedValueToInheritor","nameLocation":"30332:31:160","parameters":{"id":80317,"nodeType":"ParameterList","parameters":[],"src":"30363:2:160"},"returnParameters":{"id":80324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80321,"mutability":"mutable","name":"valueTransferred","nameLocation":"30428:16:160","nodeType":"VariableDeclaration","scope":80348,"src":"30420:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80320,"name":"uint128","nodeType":"ElementaryTypeName","src":"30420:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80323,"mutability":"mutable","name":"transferSuccess","nameLocation":"30451:15:160","nodeType":"VariableDeclaration","scope":80348,"src":"30446:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80322,"name":"bool","nodeType":"ElementaryTypeName","src":"30446:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30419:48:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80446,"nodeType":"FunctionDefinition","src":"31361:1232:160","nodes":[],"body":{"id":80445,"nodeType":"Block","src":"31445:1148:160","nodes":[],"statements":[{"assignments":[80359],"declarations":[{"constant":false,"id":80359,"mutability":"mutable","name":"messagesLen","nameLocation":"31463:11:160","nodeType":"VariableDeclaration","scope":80445,"src":"31455:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80358,"name":"uint256","nodeType":"ElementaryTypeName","src":"31455:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80362,"initialValue":{"expression":{"id":80360,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80353,"src":"31477:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$85779_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":80361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31487:6:160","memberName":"length","nodeType":"MemberAccess","src":"31477:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31455:38:160"},{"assignments":[80364],"declarations":[{"constant":false,"id":80364,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"31511:18:160","nodeType":"VariableDeclaration","scope":80445,"src":"31503:26:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31503:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80368,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80365,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80359,"src":"31532:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":80366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31546:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"31532:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31503:45:160"},{"assignments":[80370],"declarations":[{"constant":false,"id":80370,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"31566:20:160","nodeType":"VariableDeclaration","scope":80445,"src":"31558:28:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80369,"name":"uint256","nodeType":"ElementaryTypeName","src":"31558:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80375,"initialValue":{"arguments":[{"id":80373,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80364,"src":"31605:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80371,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"31589:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62272_$","typeString":"type(library Memory)"}},"id":80372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31596:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62177,"src":"31589:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":80374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31558:66:160"},{"assignments":[80377],"declarations":[{"constant":false,"id":80377,"mutability":"mutable","name":"offset","nameLocation":"31642:6:160","nodeType":"VariableDeclaration","scope":80445,"src":"31634:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80376,"name":"uint256","nodeType":"ElementaryTypeName","src":"31634:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80379,"initialValue":{"hexValue":"30","id":80378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31651:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"31634:18:160"},{"body":{"id":80436,"nodeType":"Block","src":"31705:785:160","statements":[{"assignments":[80394],"declarations":[{"constant":false,"id":80394,"mutability":"mutable","name":"message","nameLocation":"31741:7:160","nodeType":"VariableDeclaration","scope":80436,"src":"31719:29:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80393,"nodeType":"UserDefinedTypeName","pathNode":{"id":80392,"name":"Gear.Message","nameLocations":["31719:4:160","31724:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":85779,"src":"31719:12:160"},"referencedDeclaration":85779,"src":"31719:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":80398,"initialValue":{"baseExpression":{"id":80395,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80353,"src":"31751:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$85779_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":80397,"indexExpression":{"id":80396,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80381,"src":"31761:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31751:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"31719:44:160"},{"assignments":[80401],"declarations":[{"constant":false,"id":80401,"mutability":"mutable","name":"messageHash","nameLocation":"31869:11:160","nodeType":"VariableDeclaration","scope":80436,"src":"31861:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31861:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":80406,"initialValue":{"arguments":[{"id":80404,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80394,"src":"31900:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":80402,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"31883:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":80403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31888:11:160","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":86067,"src":"31883:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$85779_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":80405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31883:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"31861:47:160"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":80410,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80370,"src":"32072:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80411,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80377,"src":"32094:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80412,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80401,"src":"32102:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80407,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"32046:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62272_$","typeString":"type(library Memory)"}},"id":80409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32053:18:160","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62247,"src":"32046:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":80413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32046:68:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80414,"nodeType":"ExpressionStatement","src":"32046:68:160"},{"id":80419,"nodeType":"UncheckedBlock","src":"32128:55:160","statements":[{"expression":{"id":80417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80415,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80377,"src":"32156:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":80416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32166:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"32156:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80418,"nodeType":"ExpressionStatement","src":"32156:12:160"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80420,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80394,"src":"32322:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32330:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"32322:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32343:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85811,"src":"32322:23:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32349:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32322:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":80434,"nodeType":"Block","src":"32421:59:160","statements":[{"expression":{"arguments":[{"id":80431,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80394,"src":"32457:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":80430,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80836,"src":"32439:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$85779_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":80432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32439:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80433,"nodeType":"ExpressionStatement","src":"32439:26:160"}]},"id":80435,"nodeType":"IfStatement","src":"32318:162:160","trueBody":{"id":80429,"nodeType":"Block","src":"32352:63:160","statements":[{"expression":{"arguments":[{"id":80426,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80394,"src":"32392:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":80425,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80500,"src":"32370:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$85779_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":80427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32370:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80428,"nodeType":"ExpressionStatement","src":"32370:30:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80381,"src":"31683:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":80385,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80359,"src":"31687:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31683:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80437,"initializationExpression":{"assignments":[80381],"declarations":[{"constant":false,"id":80381,"mutability":"mutable","name":"i","nameLocation":"31676:1:160","nodeType":"VariableDeclaration","scope":80437,"src":"31668:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80380,"name":"uint256","nodeType":"ElementaryTypeName","src":"31668:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80383,"initialValue":{"hexValue":"30","id":80382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31680:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"31668:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"31700:3:160","subExpression":{"id":80387,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80381,"src":"31700:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80389,"nodeType":"ExpressionStatement","src":"31700:3:160"},"nodeType":"ForStatement","src":"31663:827:160"},{"expression":{"arguments":[{"id":80440,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80370,"src":"32542:20:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":80441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32564:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":80442,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80364,"src":"32567:18:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80438,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62498,"src":"32507:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62498_$","typeString":"type(library Hashes)"}},"id":80439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32514:27:160","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62453,"src":"32507:34:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":80443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32507:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80357,"id":80444,"nodeType":"Return","src":"32500:86:160"}]},"documentation":{"id":80349,"nodeType":"StructuredDocumentation","src":"31063:293:160","text":" @dev Internal implementation of `_sendMessages` function.\n It sends all outgoing messages from the `Mirror` contract and emits appropriate events.\n @param _messages The array of messages to be sent.\n @return messagesHash The hash of the sent messages."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"31370:13:160","parameters":{"id":80354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80353,"mutability":"mutable","name":"_messages","nameLocation":"31408:9:160","nodeType":"VariableDeclaration","scope":80446,"src":"31384:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$85779_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":80351,"nodeType":"UserDefinedTypeName","pathNode":{"id":80350,"name":"Gear.Message","nameLocations":["31384:4:160","31389:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":85779,"src":"31384:12:160"},"referencedDeclaration":85779,"src":"31384:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_storage_ptr","typeString":"struct Gear.Message"}},"id":80352,"nodeType":"ArrayTypeName","src":"31384:14:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$85779_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"31383:35:160"},"returnParameters":{"id":80357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80446,"src":"31436:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31436:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"31435:9:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80500,"nodeType":"FunctionDefinition","src":"33103:1125:160","nodes":[],"body":{"id":80499,"nodeType":"Block","src":"33174:1054:160","nodes":[],"statements":[{"condition":{"id":80456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"33360:37:160","subExpression":{"arguments":[{"id":80454,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"33388:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":80453,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80705,"src":"33361:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$85779_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":80455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33361:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev First, we'll try to parse event from the Sails framework\n and then emit it on behalf of the `Mirror` smart contract.","id":80498,"nodeType":"IfStatement","src":"33356:866:160","trueBody":{"id":80497,"nodeType":"Block","src":"33399:823:160","statements":[{"condition":{"expression":{"id":80457,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"33667:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33676:4:160","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":85778,"src":"33667:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80485,"nodeType":"IfStatement","src":"33663:453:160","trueBody":{"id":80484,"nodeType":"Block","src":"33682:434:160","statements":[{"assignments":[80460,null],"declarations":[{"constant":false,"id":80460,"mutability":"mutable","name":"success","nameLocation":"33706:7:160","nodeType":"VariableDeclaration","scope":80484,"src":"33701:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80459,"name":"bool","nodeType":"ElementaryTypeName","src":"33701:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":80469,"initialValue":{"arguments":[{"expression":{"id":80466,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"33758:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33767:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":85768,"src":"33758:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":80461,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"33718:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33727:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"33718:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33739:4:160","memberName":"call","nodeType":"MemberAccess","src":"33718:25:160","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":80465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":80464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33749:7:160","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"33718:39:160","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":80468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33718:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"33700:75:160"},{"condition":{"id":80471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"33798:8:160","subExpression":{"id":80470,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80460,"src":"33799:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80483,"nodeType":"IfStatement","src":"33794:308:160","trueBody":{"id":80482,"nodeType":"Block","src":"33808:294:160","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":80473,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"34005:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34014:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85762,"src":"34005:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80475,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"34018:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34027:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"34018:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80477,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"34040:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34049:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"34040:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80472,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"33987:17:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":80479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33987:68:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80480,"nodeType":"EmitStatement","src":"33982:73:160"},{"functionReturnParameters":80452,"id":80481,"nodeType":"Return","src":"34077:7:160"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":80487,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"34143:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34152:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85762,"src":"34143:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80489,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"34156:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34165:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"34156:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80491,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"34178:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34187:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":85768,"src":"34178:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":80493,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80450,"src":"34196:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34205:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"34196:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80486,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76116,"src":"34135:7:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":80495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34135:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80496,"nodeType":"EmitStatement","src":"34130:81:160"}]}}]},"documentation":{"id":80447,"nodeType":"StructuredDocumentation","src":"32599:499:160","text":" @dev Internal function to send message that goes to mailbox.\n Value never sent since goes to mailbox.\n Emits `Message` event if it is not event from Sails framework.\n If `_message.call = true`, then call will be made to `_message.destination`\n with _message.payload and gas limit of 500_000 to prevent DoS attacks.\n If call fails, then `MessageCallFailed` event will be emitted.\n @param _message The message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"33112:21:160","parameters":{"id":80451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80450,"mutability":"mutable","name":"_message","nameLocation":"33156:8:160","nodeType":"VariableDeclaration","scope":80500,"src":"33134:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80449,"nodeType":"UserDefinedTypeName","pathNode":{"id":80448,"name":"Gear.Message","nameLocations":["33134:4:160","33139:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":85779,"src":"33134:12:160"},"referencedDeclaration":85779,"src":"33134:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"33133:32:160"},"returnParameters":{"id":80452,"nodeType":"ParameterList","parameters":[],"src":"33174:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80705,"nodeType":"FunctionDefinition","src":"37307:3794:160","nodes":[],"body":{"id":80704,"nodeType":"Block","src":"37411:3690:160","nodes":[],"statements":[{"assignments":[80510],"declarations":[{"constant":false,"id":80510,"mutability":"mutable","name":"payload","nameLocation":"37436:7:160","nodeType":"VariableDeclaration","scope":80704,"src":"37421:22:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":80509,"name":"bytes","nodeType":"ElementaryTypeName","src":"37421:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":80513,"initialValue":{"expression":{"id":80511,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80504,"src":"37446:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37455:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":85768,"src":"37446:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"37421:41:160"},{"condition":{"id":80529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37477:86:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80514,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80504,"src":"37479:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37488:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"37479:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80516,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79272,"src":"37503:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"37479:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80518,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80504,"src":"37521:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37530:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"37521:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37539:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37521:19:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37479:61:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80523,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80510,"src":"37544:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37552:6:160","memberName":"length","nodeType":"MemberAccess","src":"37544:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37561:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37544:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37479:83:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80528,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"37478:85:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80533,"nodeType":"IfStatement","src":"37473:129:160","trueBody":{"id":80532,"nodeType":"Block","src":"37565:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"37586:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80508,"id":80531,"nodeType":"Return","src":"37579:12:160"}]}},{"assignments":[80535],"declarations":[{"constant":false,"id":80535,"mutability":"mutable","name":"topicsLength","nameLocation":"37620:12:160","nodeType":"VariableDeclaration","scope":80704,"src":"37612:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80534,"name":"uint256","nodeType":"ElementaryTypeName","src":"37612:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80536,"nodeType":"VariableDeclarationStatement","src":"37612:20:160"},{"AST":{"nativeSrc":"37667:224:160","nodeType":"YulBlock","src":"37667:224:160","statements":[{"nativeSrc":"37827:54:160","nodeType":"YulAssignment","src":"37827:54:160","value":{"arguments":[{"kind":"number","nativeSrc":"37847:3:160","nodeType":"YulLiteral","src":"37847:3:160","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"37865:14:160","nodeType":"YulIdentifier","src":"37865:14:160"}],"functionName":{"name":"calldataload","nativeSrc":"37852:12:160","nodeType":"YulIdentifier","src":"37852:12:160"},"nativeSrc":"37852:28:160","nodeType":"YulFunctionCall","src":"37852:28:160"}],"functionName":{"name":"shr","nativeSrc":"37843:3:160","nodeType":"YulIdentifier","src":"37843:3:160"},"nativeSrc":"37843:38:160","nodeType":"YulFunctionCall","src":"37843:38:160"},"variableNames":[{"name":"topicsLength","nativeSrc":"37827:12:160","nodeType":"YulIdentifier","src":"37827:12:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80510,"isOffset":true,"isSlot":false,"src":"37865:14:160","suffix":"offset","valueSize":1},{"declaration":80535,"isOffset":false,"isSlot":false,"src":"37827:12:160","valueSize":1}],"flags":["memory-safe"],"id":80537,"nodeType":"InlineAssembly","src":"37642:249:160"},{"condition":{"id":80546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37905:41:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80538,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80535,"src":"37907:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":80539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37923:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37907:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80541,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80535,"src":"37928:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":80542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37944:1:160","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"37928:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37907:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80545,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"37906:40:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80550,"nodeType":"IfStatement","src":"37901:84:160","trueBody":{"id":80549,"nodeType":"Block","src":"37948:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"37969:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80508,"id":80548,"nodeType":"Return","src":"37962:12:160"}]}},{"assignments":[80552],"declarations":[{"constant":false,"id":80552,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"38003:19:160","nodeType":"VariableDeclaration","scope":80704,"src":"37995:27:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80551,"name":"uint256","nodeType":"ElementaryTypeName","src":"37995:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80553,"nodeType":"VariableDeclarationStatement","src":"37995:27:160"},{"id":80562,"nodeType":"UncheckedBlock","src":"38032:78:160","statements":[{"expression":{"id":80560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80554,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80552,"src":"38056:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":80555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38078:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80556,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80535,"src":"38082:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":80557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38097:2:160","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"38082:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38078:21:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38056:43:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80561,"nodeType":"ExpressionStatement","src":"38056:43:160"}]},{"condition":{"id":80568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38124:40:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80563,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80510,"src":"38126:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38134:6:160","memberName":"length","nodeType":"MemberAccess","src":"38126:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":80565,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80552,"src":"38144:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38126:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80567,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"38125:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80572,"nodeType":"IfStatement","src":"38120:83:160","trueBody":{"id":80571,"nodeType":"Block","src":"38166:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"38187:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80508,"id":80570,"nodeType":"Return","src":"38180:12:160"}]}},{"assignments":[80575],"declarations":[{"constant":false,"id":80575,"mutability":"mutable","name":"topic1","nameLocation":"38306:6:160","nodeType":"VariableDeclaration","scope":80704,"src":"38298:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38298:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":80576,"nodeType":"VariableDeclarationStatement","src":"38298:14:160"},{"AST":{"nativeSrc":"38347:70:160","nodeType":"YulBlock","src":"38347:70:160","statements":[{"nativeSrc":"38361:46:160","nodeType":"YulAssignment","src":"38361:46:160","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"38388:14:160","nodeType":"YulIdentifier","src":"38388:14:160"},{"kind":"number","nativeSrc":"38404:1:160","nodeType":"YulLiteral","src":"38404:1:160","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"38384:3:160","nodeType":"YulIdentifier","src":"38384:3:160"},"nativeSrc":"38384:22:160","nodeType":"YulFunctionCall","src":"38384:22:160"}],"functionName":{"name":"calldataload","nativeSrc":"38371:12:160","nodeType":"YulIdentifier","src":"38371:12:160"},"nativeSrc":"38371:36:160","nodeType":"YulFunctionCall","src":"38371:36:160"},"variableNames":[{"name":"topic1","nativeSrc":"38361:6:160","nodeType":"YulIdentifier","src":"38361:6:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80510,"isOffset":true,"isSlot":false,"src":"38388:14:160","suffix":"offset","valueSize":1},{"declaration":80575,"isOffset":false,"isSlot":false,"src":"38361:6:160","valueSize":1}],"flags":["memory-safe"],"id":80577,"nodeType":"InlineAssembly","src":"38322:95:160"},{"condition":{"id":80643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38973:712:160","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80578,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"38988:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80579,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76064,"src":"38998:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39011:8:160","memberName":"selector","nodeType":"MemberAccess","src":"38998:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38988:31:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80582,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39035:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80583,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76077,"src":"39045:24:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":80584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39070:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39045:33:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39035:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:90:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80587,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39094:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80588,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76088,"src":"39104:22:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":80589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39127:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39104:31:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39094:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:147:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80592,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39151:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80593,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76095,"src":"39161:22:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":80594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39184:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39161:31:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39151:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:204:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80597,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39208:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80598,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"39218:26:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39245:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39218:35:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39208:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:265:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80602,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39269:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80603,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76105,"src":"39279:31:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39311:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39279:40:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39269:50:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:331:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80607,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39335:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80608,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76116,"src":"39345:7:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":80609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39353:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39345:16:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39335:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:373:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80612,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39377:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80613,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76125,"src":"39387:17:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":80614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39405:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39387:26:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39377:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:425:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80617,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39429:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80618,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76136,"src":"39439:5:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":80619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39445:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39439:14:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39429:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:465:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80622,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39469:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80623,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76145,"src":"39479:15:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":80624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39495:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39479:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39469:34:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:515:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80627,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39519:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80628,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"39529:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":80629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39542:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39529:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39519:31:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:562:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80632,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39566:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80633,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"39576:36:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":80634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39613:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39576:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39566:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:633:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80637,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80575,"src":"39637:6:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":80638,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76166,"src":"39647:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":80639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39667:8:160","memberName":"selector","nodeType":"MemberAccess","src":"39647:28:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39637:38:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"38988:687:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":80642,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"38974:711:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":80647,"nodeType":"IfStatement","src":"38969:755:160","trueBody":{"id":80646,"nodeType":"Block","src":"39687:37:160","statements":[{"expression":{"hexValue":"66616c7365","id":80644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"39708:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80508,"id":80645,"nodeType":"Return","src":"39701:12:160"}]}},{"assignments":[80649],"declarations":[{"constant":false,"id":80649,"mutability":"mutable","name":"size","nameLocation":"39775:4:160","nodeType":"VariableDeclaration","scope":80704,"src":"39767:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80648,"name":"uint256","nodeType":"ElementaryTypeName","src":"39767:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80650,"nodeType":"VariableDeclarationStatement","src":"39767:12:160"},{"id":80658,"nodeType":"UncheckedBlock","src":"39789:78:160","statements":[{"expression":{"id":80656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80651,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"39813:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80652,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80510,"src":"39820:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39828:6:160","memberName":"length","nodeType":"MemberAccess","src":"39820:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":80654,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80552,"src":"39837:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39820:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39813:43:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80657,"nodeType":"ExpressionStatement","src":"39813:43:160"}]},{"assignments":[80660],"declarations":[{"constant":false,"id":80660,"mutability":"mutable","name":"memPtr","nameLocation":"39885:6:160","nodeType":"VariableDeclaration","scope":80704,"src":"39877:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80659,"name":"uint256","nodeType":"ElementaryTypeName","src":"39877:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80665,"initialValue":{"arguments":[{"id":80663,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"39910:4:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80661,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"39894:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62272_$","typeString":"type(library Memory)"}},"id":80662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39901:8:160","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62177,"src":"39894:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":80664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39894:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39877:38:160"},{"AST":{"nativeSrc":"39950:92:160","nodeType":"YulBlock","src":"39950:92:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"39977:6:160","nodeType":"YulIdentifier","src":"39977:6:160"},{"arguments":[{"name":"payload.offset","nativeSrc":"39989:14:160","nodeType":"YulIdentifier","src":"39989:14:160"},{"name":"topicsLengthInBytes","nativeSrc":"40005:19:160","nodeType":"YulIdentifier","src":"40005:19:160"}],"functionName":{"name":"add","nativeSrc":"39985:3:160","nodeType":"YulIdentifier","src":"39985:3:160"},"nativeSrc":"39985:40:160","nodeType":"YulFunctionCall","src":"39985:40:160"},{"name":"size","nativeSrc":"40027:4:160","nodeType":"YulIdentifier","src":"40027:4:160"}],"functionName":{"name":"calldatacopy","nativeSrc":"39964:12:160","nodeType":"YulIdentifier","src":"39964:12:160"},"nativeSrc":"39964:68:160","nodeType":"YulFunctionCall","src":"39964:68:160"},"nativeSrc":"39964:68:160","nodeType":"YulExpressionStatement","src":"39964:68:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":80660,"isOffset":false,"isSlot":false,"src":"39977:6:160","valueSize":1},{"declaration":80510,"isOffset":true,"isSlot":false,"src":"39989:14:160","suffix":"offset","valueSize":1},{"declaration":80649,"isOffset":false,"isSlot":false,"src":"40027:4:160","valueSize":1},{"declaration":80552,"isOffset":false,"isSlot":false,"src":"40005:19:160","valueSize":1}],"flags":["memory-safe"],"id":80666,"nodeType":"InlineAssembly","src":"39925:117:160"},{"assignments":[80669],"declarations":[{"constant":false,"id":80669,"mutability":"mutable","name":"topic2","nameLocation":"40197:6:160","nodeType":"VariableDeclaration","scope":80704,"src":"40189:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80668,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40189:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`.\n Regular offsets: `32`, `64`, `96`.","id":80670,"nodeType":"VariableDeclarationStatement","src":"40189:14:160"},{"assignments":[80672],"declarations":[{"constant":false,"id":80672,"mutability":"mutable","name":"topic3","nameLocation":"40221:6:160","nodeType":"VariableDeclaration","scope":80704,"src":"40213:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40213:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80673,"nodeType":"VariableDeclarationStatement","src":"40213:14:160"},{"assignments":[80675],"declarations":[{"constant":false,"id":80675,"mutability":"mutable","name":"topic4","nameLocation":"40245:6:160","nodeType":"VariableDeclaration","scope":80704,"src":"40237:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40237:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80676,"nodeType":"VariableDeclarationStatement","src":"40237:14:160"},{"AST":{"nativeSrc":"40286:191:160","nodeType":"YulBlock","src":"40286:191:160","statements":[{"nativeSrc":"40300:47:160","nodeType":"YulAssignment","src":"40300:47:160","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"40327:14:160","nodeType":"YulIdentifier","src":"40327:14:160"},{"kind":"number","nativeSrc":"40343:2:160","nodeType":"YulLiteral","src":"40343:2:160","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"40323:3:160","nodeType":"YulIdentifier","src":"40323:3:160"},"nativeSrc":"40323:23:160","nodeType":"YulFunctionCall","src":"40323:23:160"}],"functionName":{"name":"calldataload","nativeSrc":"40310:12:160","nodeType":"YulIdentifier","src":"40310:12:160"},"nativeSrc":"40310:37:160","nodeType":"YulFunctionCall","src":"40310:37:160"},"variableNames":[{"name":"topic2","nativeSrc":"40300:6:160","nodeType":"YulIdentifier","src":"40300:6:160"}]},{"nativeSrc":"40360:47:160","nodeType":"YulAssignment","src":"40360:47:160","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"40387:14:160","nodeType":"YulIdentifier","src":"40387:14:160"},{"kind":"number","nativeSrc":"40403:2:160","nodeType":"YulLiteral","src":"40403:2:160","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"40383:3:160","nodeType":"YulIdentifier","src":"40383:3:160"},"nativeSrc":"40383:23:160","nodeType":"YulFunctionCall","src":"40383:23:160"}],"functionName":{"name":"calldataload","nativeSrc":"40370:12:160","nodeType":"YulIdentifier","src":"40370:12:160"},"nativeSrc":"40370:37:160","nodeType":"YulFunctionCall","src":"40370:37:160"},"variableNames":[{"name":"topic3","nativeSrc":"40360:6:160","nodeType":"YulIdentifier","src":"40360:6:160"}]},{"nativeSrc":"40420:47:160","nodeType":"YulAssignment","src":"40420:47:160","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"40447:14:160","nodeType":"YulIdentifier","src":"40447:14:160"},{"kind":"number","nativeSrc":"40463:2:160","nodeType":"YulLiteral","src":"40463:2:160","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"40443:3:160","nodeType":"YulIdentifier","src":"40443:3:160"},"nativeSrc":"40443:23:160","nodeType":"YulFunctionCall","src":"40443:23:160"}],"functionName":{"name":"calldataload","nativeSrc":"40430:12:160","nodeType":"YulIdentifier","src":"40430:12:160"},"nativeSrc":"40430:37:160","nodeType":"YulFunctionCall","src":"40430:37:160"},"variableNames":[{"name":"topic4","nativeSrc":"40420:6:160","nodeType":"YulIdentifier","src":"40420:6:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80510,"isOffset":true,"isSlot":false,"src":"40327:14:160","suffix":"offset","valueSize":1},{"declaration":80510,"isOffset":true,"isSlot":false,"src":"40387:14:160","suffix":"offset","valueSize":1},{"declaration":80510,"isOffset":true,"isSlot":false,"src":"40447:14:160","suffix":"offset","valueSize":1},{"declaration":80669,"isOffset":false,"isSlot":false,"src":"40300:6:160","valueSize":1},{"declaration":80672,"isOffset":false,"isSlot":false,"src":"40360:6:160","valueSize":1},{"declaration":80675,"isOffset":false,"isSlot":false,"src":"40420:6:160","valueSize":1}],"flags":["memory-safe"],"id":80677,"nodeType":"InlineAssembly","src":"40261:216:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80678,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80535,"src":"40491:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":80679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40507:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"40491:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80683,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80535,"src":"40627:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":80684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40643:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"40627:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80688,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80535,"src":"40771:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":80689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40787:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"40771:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80693,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80535,"src":"40923:12:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":80694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40939:1:160","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"40923:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80698,"nodeType":"IfStatement","src":"40919:154:160","trueBody":{"id":80697,"nodeType":"Block","src":"40942:131:160","statements":[{"AST":{"nativeSrc":"40981:82:160","nodeType":"YulBlock","src":"40981:82:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"41004:6:160","nodeType":"YulIdentifier","src":"41004:6:160"},{"name":"size","nativeSrc":"41012:4:160","nodeType":"YulIdentifier","src":"41012:4:160"},{"name":"topic1","nativeSrc":"41018:6:160","nodeType":"YulIdentifier","src":"41018:6:160"},{"name":"topic2","nativeSrc":"41026:6:160","nodeType":"YulIdentifier","src":"41026:6:160"},{"name":"topic3","nativeSrc":"41034:6:160","nodeType":"YulIdentifier","src":"41034:6:160"},{"name":"topic4","nativeSrc":"41042:6:160","nodeType":"YulIdentifier","src":"41042:6:160"}],"functionName":{"name":"log4","nativeSrc":"40999:4:160","nodeType":"YulIdentifier","src":"40999:4:160"},"nativeSrc":"40999:50:160","nodeType":"YulFunctionCall","src":"40999:50:160"},"nativeSrc":"40999:50:160","nodeType":"YulExpressionStatement","src":"40999:50:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":80660,"isOffset":false,"isSlot":false,"src":"41004:6:160","valueSize":1},{"declaration":80649,"isOffset":false,"isSlot":false,"src":"41012:4:160","valueSize":1},{"declaration":80575,"isOffset":false,"isSlot":false,"src":"41018:6:160","valueSize":1},{"declaration":80669,"isOffset":false,"isSlot":false,"src":"41026:6:160","valueSize":1},{"declaration":80672,"isOffset":false,"isSlot":false,"src":"41034:6:160","valueSize":1},{"declaration":80675,"isOffset":false,"isSlot":false,"src":"41042:6:160","valueSize":1}],"flags":["memory-safe"],"id":80696,"nodeType":"InlineAssembly","src":"40956:107:160"}]}},"id":80699,"nodeType":"IfStatement","src":"40767:306:160","trueBody":{"id":80692,"nodeType":"Block","src":"40790:123:160","statements":[{"AST":{"nativeSrc":"40829:74:160","nodeType":"YulBlock","src":"40829:74:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"40852:6:160","nodeType":"YulIdentifier","src":"40852:6:160"},{"name":"size","nativeSrc":"40860:4:160","nodeType":"YulIdentifier","src":"40860:4:160"},{"name":"topic1","nativeSrc":"40866:6:160","nodeType":"YulIdentifier","src":"40866:6:160"},{"name":"topic2","nativeSrc":"40874:6:160","nodeType":"YulIdentifier","src":"40874:6:160"},{"name":"topic3","nativeSrc":"40882:6:160","nodeType":"YulIdentifier","src":"40882:6:160"}],"functionName":{"name":"log3","nativeSrc":"40847:4:160","nodeType":"YulIdentifier","src":"40847:4:160"},"nativeSrc":"40847:42:160","nodeType":"YulFunctionCall","src":"40847:42:160"},"nativeSrc":"40847:42:160","nodeType":"YulExpressionStatement","src":"40847:42:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":80660,"isOffset":false,"isSlot":false,"src":"40852:6:160","valueSize":1},{"declaration":80649,"isOffset":false,"isSlot":false,"src":"40860:4:160","valueSize":1},{"declaration":80575,"isOffset":false,"isSlot":false,"src":"40866:6:160","valueSize":1},{"declaration":80669,"isOffset":false,"isSlot":false,"src":"40874:6:160","valueSize":1},{"declaration":80672,"isOffset":false,"isSlot":false,"src":"40882:6:160","valueSize":1}],"flags":["memory-safe"],"id":80691,"nodeType":"InlineAssembly","src":"40804:99:160"}]}},"id":80700,"nodeType":"IfStatement","src":"40623:450:160","trueBody":{"id":80687,"nodeType":"Block","src":"40646:115:160","statements":[{"AST":{"nativeSrc":"40685:66:160","nodeType":"YulBlock","src":"40685:66:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"40708:6:160","nodeType":"YulIdentifier","src":"40708:6:160"},{"name":"size","nativeSrc":"40716:4:160","nodeType":"YulIdentifier","src":"40716:4:160"},{"name":"topic1","nativeSrc":"40722:6:160","nodeType":"YulIdentifier","src":"40722:6:160"},{"name":"topic2","nativeSrc":"40730:6:160","nodeType":"YulIdentifier","src":"40730:6:160"}],"functionName":{"name":"log2","nativeSrc":"40703:4:160","nodeType":"YulIdentifier","src":"40703:4:160"},"nativeSrc":"40703:34:160","nodeType":"YulFunctionCall","src":"40703:34:160"},"nativeSrc":"40703:34:160","nodeType":"YulExpressionStatement","src":"40703:34:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":80660,"isOffset":false,"isSlot":false,"src":"40708:6:160","valueSize":1},{"declaration":80649,"isOffset":false,"isSlot":false,"src":"40716:4:160","valueSize":1},{"declaration":80575,"isOffset":false,"isSlot":false,"src":"40722:6:160","valueSize":1},{"declaration":80669,"isOffset":false,"isSlot":false,"src":"40730:6:160","valueSize":1}],"flags":["memory-safe"],"id":80686,"nodeType":"InlineAssembly","src":"40660:91:160"}]}},"id":80701,"nodeType":"IfStatement","src":"40487:586:160","trueBody":{"id":80682,"nodeType":"Block","src":"40510:107:160","statements":[{"AST":{"nativeSrc":"40549:58:160","nodeType":"YulBlock","src":"40549:58:160","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"40572:6:160","nodeType":"YulIdentifier","src":"40572:6:160"},{"name":"size","nativeSrc":"40580:4:160","nodeType":"YulIdentifier","src":"40580:4:160"},{"name":"topic1","nativeSrc":"40586:6:160","nodeType":"YulIdentifier","src":"40586:6:160"}],"functionName":{"name":"log1","nativeSrc":"40567:4:160","nodeType":"YulIdentifier","src":"40567:4:160"},"nativeSrc":"40567:26:160","nodeType":"YulFunctionCall","src":"40567:26:160"},"nativeSrc":"40567:26:160","nodeType":"YulExpressionStatement","src":"40567:26:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":80660,"isOffset":false,"isSlot":false,"src":"40572:6:160","valueSize":1},{"declaration":80649,"isOffset":false,"isSlot":false,"src":"40580:4:160","valueSize":1},{"declaration":80575,"isOffset":false,"isSlot":false,"src":"40586:6:160","valueSize":1}],"flags":["memory-safe"],"id":80681,"nodeType":"InlineAssembly","src":"40524:83:160"}]}},{"expression":{"hexValue":"74727565","id":80702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41090:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80508,"id":80703,"nodeType":"Return","src":"41083:11:160"}]},"documentation":{"id":80501,"nodeType":"StructuredDocumentation","src":"34234:3068:160","text":" @dev Tries to parse an event from the Sails framework and emit it in Solidity notation.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n Example of defining Solidity events in WASM contract based on Sails framework:\n ```rust\n #[event]\n #[derive(Clone, Debug, PartialEq, Encode, TypeInfo)]\n #[codec(crate = scale_codec)]\n #[scale_info(crate = scale_info)]\n pub enum CounterEvents {\n Added {\n #[indexed]\n source: ActorId,\n value: u32,\n },\n }\n ```\n User also generates \"Solidity ABI interface\" that allows services like Etherscan to decode events from `Mirror`\n (since we use the ABI interface as \"proxy implementation\"):\n ```solidity\n interface ICounter {\n event Added(address indexed source, uint32 value);\n // ... other events\n }\n ```\n Now let's imagine that the user wants to calculate something in WASM contract and send it to Ethereum as event,\n which will then be emitted by `Mirror` smart contract as showed on services like Etherscan:\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n ```\n All the `emit_eth_event` method in the Sails framework does is call the syscall\n `gcore::msg::send(destination=ETH_EVENT_ADDR, payload, value=0)`, where `payload`\n is encoded in Solidity notation as described below.\n Format in which the Sails framework sends events:\n - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`).\n specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called.\n - `bytes32 topic1` (required)\n should never match our event selectors!\n - `bytes32 topic2` (optional)\n - `bytes32 topic3` (optional)\n - `bytes32 topic4` (optional)\n - `bytes payload` (optional)\n contains encoded data of event in form of `abi.encode(...)`.\n @param _message The message to be parsed and emitted as Solidity event.\n @return isSailsEvent `true` in case of success and `false` in case of error (no matching event found)."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"37316:26:160","parameters":{"id":80505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80504,"mutability":"mutable","name":"_message","nameLocation":"37365:8:160","nodeType":"VariableDeclaration","scope":80705,"src":"37343:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80503,"nodeType":"UserDefinedTypeName","pathNode":{"id":80502,"name":"Gear.Message","nameLocations":["37343:4:160","37348:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":85779,"src":"37343:12:160"},"referencedDeclaration":85779,"src":"37343:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"37342:32:160"},"returnParameters":{"id":80508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80507,"mutability":"mutable","name":"isSailsEvent","nameLocation":"37397:12:160","nodeType":"VariableDeclaration","scope":80705,"src":"37392:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80506,"name":"bool","nodeType":"ElementaryTypeName","src":"37392:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37391:19:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80836,"nodeType":"FunctionDefinition","src":"47068:1645:160","nodes":[],"body":{"id":80835,"nodeType":"Block","src":"47135:1578:160","nodes":[],"statements":[{"condition":{"expression":{"id":80712,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47149:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47158:4:160","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":85778,"src":"47149:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":80833,"nodeType":"Block","src":"48364:343:160","statements":[{"assignments":[80801],"declarations":[{"constant":false,"id":80801,"mutability":"mutable","name":"transferSuccess","nameLocation":"48383:15:160","nodeType":"VariableDeclaration","scope":80833,"src":"48378:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80800,"name":"bool","nodeType":"ElementaryTypeName","src":"48378:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80808,"initialValue":{"arguments":[{"expression":{"id":80803,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48416:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48425:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"48416:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80805,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48438:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48447:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"48438:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80802,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80951,"src":"48401:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":80807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48401:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"48378:75:160"},{"condition":{"id":80810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"48471:16:160","subExpression":{"id":80809,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80801,"src":"48472:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80819,"nodeType":"IfStatement","src":"48467:117:160","trueBody":{"id":80818,"nodeType":"Block","src":"48489:95:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":80812,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48532:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48541:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"48532:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80814,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48554:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48563:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"48554:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80811,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76166,"src":"48512:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":80816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48512:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80817,"nodeType":"EmitStatement","src":"48507:62:160"}]}},{"eventCall":{"arguments":[{"expression":{"id":80821,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48609:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48618:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":85768,"src":"48609:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":80823,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48627:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48636:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"48627:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80825,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48643:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48652:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"48643:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48665:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85811,"src":"48643:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":80828,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48669:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48678:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"48669:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48691:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85814,"src":"48669:26:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":80820,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76136,"src":"48603:5:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":80831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48603:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80832,"nodeType":"EmitStatement","src":"48598:98:160"}]},"id":80834,"nodeType":"IfStatement","src":"47145:1562:160","trueBody":{"id":80799,"nodeType":"Block","src":"47164:1194:160","statements":[{"assignments":[80715],"declarations":[{"constant":false,"id":80715,"mutability":"mutable","name":"isSuccessReply","nameLocation":"47183:14:160","nodeType":"VariableDeclaration","scope":80799,"src":"47178:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80714,"name":"bool","nodeType":"ElementaryTypeName","src":"47178:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80723,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":80722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80716,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47200:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47209:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"47200:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47222:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85814,"src":"47200:26:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":80720,"indexExpression":{"hexValue":"30","id":80719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47227:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47200:29:160","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47233:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"47200:34:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"47178:56:160"},{"assignments":[80725],"declarations":[{"constant":false,"id":80725,"mutability":"mutable","name":"payload","nameLocation":"47262:7:160","nodeType":"VariableDeclaration","scope":80799,"src":"47249:20:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80724,"name":"bytes","nodeType":"ElementaryTypeName","src":"47249:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":80726,"nodeType":"VariableDeclarationStatement","src":"47249:20:160"},{"condition":{"id":80727,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80715,"src":"47288:14:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":80750,"nodeType":"Block","src":"47369:348:160","statements":[{"expression":{"id":80748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80734,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"47539:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80737,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75665,"src":"47593:10:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$75665_$","typeString":"type(contract ICallbacks)"}},"id":80738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47604:12:160","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":75664,"src":"47593:23:160","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":80739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47617:8:160","memberName":"selector","nodeType":"MemberAccess","src":"47593:32:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":80740,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47627:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47636:2:160","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85762,"src":"47627:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80742,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47640:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47649:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":85768,"src":"47640:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":80744,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47658:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47667:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"47658:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47680:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85814,"src":"47658:26:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":80735,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47549:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47553:18:160","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"47549:22:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":80747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47549:153:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"47539:163:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":80749,"nodeType":"ExpressionStatement","src":"47539:163:160"}]},"id":80751,"nodeType":"IfStatement","src":"47284:433:160","trueBody":{"id":80733,"nodeType":"Block","src":"47304:59:160","statements":[{"expression":{"id":80731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80728,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"47322:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":80729,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47332:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47341:7:160","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":85768,"src":"47332:16:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"47322:26:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":80732,"nodeType":"ExpressionStatement","src":"47322:26:160"}]}},{"assignments":[80753,null],"declarations":[{"constant":false,"id":80753,"mutability":"mutable","name":"success","nameLocation":"47737:7:160","nodeType":"VariableDeclaration","scope":80799,"src":"47732:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80752,"name":"bool","nodeType":"ElementaryTypeName","src":"47732:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":80763,"initialValue":{"arguments":[{"id":80761,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80725,"src":"47812:7:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":80754,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47749:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47758:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"47749:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47770:4:160","memberName":"call","nodeType":"MemberAccess","src":"47749:25:160","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":80760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":80757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47780:7:160","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":80758,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47796:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47805:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"47796:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"47749:62:160","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":80762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47749:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"47731:89:160"},{"condition":{"id":80765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"47839:8:160","subExpression":{"id":80764,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80753,"src":"47840:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80798,"nodeType":"IfStatement","src":"47835:513:160","trueBody":{"id":80797,"nodeType":"Block","src":"47849:499:160","statements":[{"assignments":[80767],"declarations":[{"constant":false,"id":80767,"mutability":"mutable","name":"transferSuccess","nameLocation":"47872:15:160","nodeType":"VariableDeclaration","scope":80797,"src":"47867:20:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80766,"name":"bool","nodeType":"ElementaryTypeName","src":"47867:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80774,"initialValue":{"arguments":[{"expression":{"id":80769,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47905:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47914:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"47905:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80771,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"47927:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47936:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"47927:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80768,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80951,"src":"47890:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":80773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47890:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"47867:75:160"},{"condition":{"id":80776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"47964:16:160","subExpression":{"id":80775,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80767,"src":"47965:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80785,"nodeType":"IfStatement","src":"47960:125:160","trueBody":{"id":80784,"nodeType":"Block","src":"47982:103:160","statements":[{"eventCall":{"arguments":[{"expression":{"id":80778,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48029:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48038:11:160","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85765,"src":"48029:20:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":80780,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48051:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48060:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"48051:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80777,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76166,"src":"48009:19:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":80782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48009:57:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80783,"nodeType":"EmitStatement","src":"48004:62:160"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":80787,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48264:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48273:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85771,"src":"48264:14:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80789,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48280:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48289:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"48280:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48302:2:160","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85811,"src":"48280:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":80792,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80709,"src":"48306:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":80793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48315:12:160","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":85775,"src":"48306:21:160","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85815_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":80794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48328:4:160","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85814,"src":"48306:26:160","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":80786,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76145,"src":"48248:15:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":80795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48248:85:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80796,"nodeType":"EmitStatement","src":"48243:90:160"}]}}]}}]},"documentation":{"id":80706,"nodeType":"StructuredDocumentation","src":"41107:5956:160","text":" @dev Internal function to send reply message.\n Non-zero value always sent since never goes to mailbox.\n Emits `Reply` event if `_message.call = false`.\n If `_message.call = true`, the call will be made to `_message.destination` with\n gas limit of 500_000 to prevent DoS attacks and with `_message.value`.\n The `_message.replyDetails` will also be evaluated to determine the reply's success.\n If `gear_core::message::ReplyCode` is successful, `_message.payload` will be used.\n If unsuccessful, `payload = ICallbacks.onErrorReply(_message.id, _message.payload, _message.replyDetails.code)`\n will be used and the appropriate method on `_message.destination` will be called.\n Function will also always attempt to send `_message.value`. If this fails for some reason,\n the `ReplyTransferFailed` event will be emitted.\n If call fails, then `ReplyCallFailed` event will be emitted.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n All the contract method does is return `u32` as result (reply):\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User also generates \"Solidity Callback Interface\" and implements own `CounterCaller` smart contract,\n which will handle reply hooks in methods starting with `replyOn_`:\n ```solidity\n interface ICounterCallbacks {\n function replyOn_init(bytes32 messageId) external;\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external;\n // ... other methods\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode) external payable;\n }\n contract CounterCaller is ICounterCallbacks {\n ICounter public immutable MIRROR;\n constructor(ICounter _mirror) {\n MIRROR = _mirror;\n }\n modifier onlyMirror() {\n _onlyMirror();\n _;\n }\n function _onlyMirror() internal view {\n require(msg.sender == address(MIRROR));\n }\n // Call `Counter` constructor on our platform\n function init(uint32 counter) external {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.init(true, counter);\n }\n function replyOn_init(bytes32 messageId) external onlyMirror {\n // ...\n }\n // Compute `Counter.add(uint32 value) -> uint32 reply` on our platform\n mapping(bytes32 messageId => bool knownMessage) public counterAddInputs;\n mapping(bytes32 messageId => uint32 output) public counterAddResults;\n function counterAdd(uint32 value) external returns (bytes32 messageId) {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.counterAdd(true, value);\n counterAddInputs[_messageId] = true;\n messageId = _messageId;\n }\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external onlyMirror {\n counterAddResults[messageId] = reply;\n }\n // Handle `Counter` errors on our platform\n event ErrorReply(bytes32 messageId, bytes payload, bytes4 replyCode);\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode)\n external\n payable\n onlyMirror\n {\n emit ErrorReply(messageId, payload, replyCode);\n }\n }\n ```\n User calls `CounterCaller.counterAdd(uint32 value)`, and the smart contract calls `ICounter.counterAdd(bool _callReply=true, uint32 value)`.\n Result calculated in WASM smart contract on Sails framework in `Counter.add(uint32 value) -> uint32 reply` method will be passed to\n `replyOn_counterAdd(bytes32 messageId, uint32 reply)`.\n @param _message The reply message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"47077:17:160","parameters":{"id":80710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80709,"mutability":"mutable","name":"_message","nameLocation":"47117:8:160","nodeType":"VariableDeclaration","scope":80836,"src":"47095:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":80708,"nodeType":"UserDefinedTypeName","pathNode":{"id":80707,"name":"Gear.Message","nameLocations":["47095:4:160","47100:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":85779,"src":"47095:12:160"},"referencedDeclaration":85779,"src":"47095:12:160","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$85779_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"47094:32:160"},"returnParameters":{"id":80711,"nodeType":"ParameterList","parameters":[],"src":"47135:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80851,"nodeType":"FunctionDefinition","src":"49081:146:160","nodes":[],"body":{"id":80850,"nodeType":"Block","src":"49172:55:160","nodes":[],"statements":[{"expression":{"id":80848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80844,"name":"_merkleRoots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79389,"src":"49182:12:160","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":80846,"indexExpression":{"id":80845,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80839,"src":"49195:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"49182:24:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80847,"name":"_merkleRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80841,"src":"49209:11:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"49182:38:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80849,"nodeType":"ExpressionStatement","src":"49182:38:160"}]},"documentation":{"id":80837,"nodeType":"StructuredDocumentation","src":"48818:258:160","text":" @dev Internal function to pass outgoing actions as merkle root.\n @param _stateHash The state hash for which the merkle root of outgoing actions is set.\n @param _merkleRoot The merkle root of outgoing actions for the state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateOutgoingActionsMerkleRoot","nameLocation":"49090:32:160","parameters":{"id":80842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80839,"mutability":"mutable","name":"_stateHash","nameLocation":"49131:10:160","nodeType":"VariableDeclaration","scope":80851,"src":"49123:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49123:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80841,"mutability":"mutable","name":"_merkleRoot","nameLocation":"49151:11:160","nodeType":"VariableDeclaration","scope":80851,"src":"49143:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49143:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49122:41:160"},"returnParameters":{"id":80843,"nodeType":"ParameterList","parameters":[],"src":"49172:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80884,"nodeType":"FunctionDefinition","src":"49493:586:160","nodes":[],"body":{"id":80883,"nodeType":"Block","src":"49557:522:160","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":80861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80859,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79376,"src":"49622:6:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":80860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"49631:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"49622:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80862,"nodeType":"ExpressionStatement","src":"49622:13:160"},{"expression":{"id":80865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80863,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79379,"src":"49645:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80864,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80854,"src":"49657:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49645:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80866,"nodeType":"ExpressionStatement","src":"49645:22:160"},{"assignments":[80868,80870],"declarations":[{"constant":false,"id":80868,"mutability":"mutable","name":"value","nameLocation":"49776:5:160","nodeType":"VariableDeclaration","scope":80883,"src":"49768:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80867,"name":"uint128","nodeType":"ElementaryTypeName","src":"49768:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80870,"mutability":"mutable","name":"success","nameLocation":"49788:7:160","nodeType":"VariableDeclaration","scope":80883,"src":"49783:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80869,"name":"bool","nodeType":"ElementaryTypeName","src":"49783:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":80873,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80871,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80348,"src":"49799:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":80872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49799:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"49767:65:160"},{"condition":{"id":80875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"49846:8:160","subExpression":{"id":80874,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80870,"src":"49847:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80882,"nodeType":"IfStatement","src":"49842:231:160","trueBody":{"id":80881,"nodeType":"Block","src":"49856:217:160","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":80877,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80854,"src":"50044:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80878,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80868,"src":"50056:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80876,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"50007:36:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":80879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50007:55:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80880,"nodeType":"EmitStatement","src":"50002:60:160"}]}}]},"documentation":{"id":80852,"nodeType":"StructuredDocumentation","src":"49290:198:160","text":" @dev Sets the inheritor address, sets exited flag to `true` and\n transfer all available balance to the inheritor.\n @param _inheritor The address of the inheritor."},"implemented":true,"kind":"function","modifiers":[{"id":80857,"kind":"modifierInvocation","modifierName":{"id":80856,"name":"onlyIfActive","nameLocations":["49544:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":79459,"src":"49544:12:160"},"nodeType":"ModifierInvocation","src":"49544:12:160"}],"name":"_setInheritor","nameLocation":"49502:13:160","parameters":{"id":80855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80854,"mutability":"mutable","name":"_inheritor","nameLocation":"49524:10:160","nodeType":"VariableDeclaration","scope":80884,"src":"49516:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80853,"name":"address","nodeType":"ElementaryTypeName","src":"49516:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49515:20:160"},"returnParameters":{"id":80858,"nodeType":"ParameterList","parameters":[],"src":"49557:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80899,"nodeType":"FunctionDefinition","src":"50182:281:160","nodes":[],"body":{"id":80898,"nodeType":"Block","src":"50236:227:160","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":80892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80890,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79370,"src":"50302:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80891,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80887,"src":"50314:10:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"50302:22:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80893,"nodeType":"ExpressionStatement","src":"50302:22:160"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":80895,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79370,"src":"50446:9:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80894,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76064,"src":"50433:12:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50433:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80897,"nodeType":"EmitStatement","src":"50428:28:160"}]},"documentation":{"id":80885,"nodeType":"StructuredDocumentation","src":"50085:92:160","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"50191:16:160","parameters":{"id":80888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80887,"mutability":"mutable","name":"_stateHash","nameLocation":"50216:10:160","nodeType":"VariableDeclaration","scope":80899,"src":"50208:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80886,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50208:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"50207:20:160"},"returnParameters":{"id":80889,"nodeType":"ParameterList","parameters":[],"src":"50236:0:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80921,"nodeType":"FunctionDefinition","src":"50637:182:160","nodes":[],"body":{"id":80920,"nodeType":"Block","src":"50709:110:160","nodes":[],"statements":[{"assignments":[80909],"declarations":[{"constant":false,"id":80909,"mutability":"mutable","name":"wvaraAddr","nameLocation":"50727:9:160","nodeType":"VariableDeclaration","scope":80920,"src":"50719:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80908,"name":"address","nodeType":"ElementaryTypeName","src":"50719:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80915,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":80911,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80902,"src":"50747:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80910,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76958,"src":"50739:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$76958_$","typeString":"type(contract IRouter)"}},"id":80912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50739:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$76958","typeString":"contract IRouter"}},"id":80913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"50759:11:160","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":76652,"src":"50739:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":80914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50739:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"50719:53:160"},{"expression":{"arguments":[{"id":80917,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80909,"src":"50802:9:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80916,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"50789:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":80918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50789:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"functionReturnParameters":80907,"id":80919,"nodeType":"Return","src":"50782:30:160"}]},"documentation":{"id":80900,"nodeType":"StructuredDocumentation","src":"50505:127:160","text":" @dev Get the `WrappedVara` contract instance.\n @param routerAddr The address of the `Router` contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"50646:6:160","parameters":{"id":80903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80902,"mutability":"mutable","name":"routerAddr","nameLocation":"50661:10:160","nodeType":"VariableDeclaration","scope":80921,"src":"50653:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80901,"name":"address","nodeType":"ElementaryTypeName","src":"50653:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50652:20:160"},"returnParameters":{"id":80907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80921,"src":"50695:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"},"typeName":{"id":80905,"nodeType":"UserDefinedTypeName","pathNode":{"id":80904,"name":"IWrappedVara","nameLocations":["50695:12:160"],"nodeType":"IdentifierPath","referencedDeclaration":76974,"src":"50695:12:160"},"referencedDeclaration":76974,"src":"50695:12:160","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"50694:14:160"},"scope":81013,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80951,"nodeType":"FunctionDefinition","src":"51061:253:160","nodes":[],"body":{"id":80950,"nodeType":"Block","src":"51144:170:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80931,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"51158:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51167:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"51158:10:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80947,"nodeType":"IfStatement","src":"51154:133:160","trueBody":{"id":80946,"nodeType":"Block","src":"51170:117:160","statements":[{"assignments":[80935,null],"declarations":[{"constant":false,"id":80935,"mutability":"mutable","name":"success","nameLocation":"51190:7:160","nodeType":"VariableDeclaration","scope":80946,"src":"51185:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80934,"name":"bool","nodeType":"ElementaryTypeName","src":"51185:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":80943,"initialValue":{"arguments":[{"hexValue":"","id":80941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51245:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":80936,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80924,"src":"51202:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51214:4:160","memberName":"call","nodeType":"MemberAccess","src":"51202:16:160","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":80940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":80938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51224:5:160","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":80939,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80926,"src":"51238:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"51202:42:160","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":80942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51202:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"51184:64:160"},{"expression":{"id":80944,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80935,"src":"51269:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80930,"id":80945,"nodeType":"Return","src":"51262:14:160"}]}},{"expression":{"hexValue":"74727565","id":80948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"51303:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80930,"id":80949,"nodeType":"Return","src":"51296:11:160"}]},"documentation":{"id":80922,"nodeType":"StructuredDocumentation","src":"50825:231:160","text":" @dev Transfer ETH to destination address.\n It has gas limit of 5_000 to prevent DoS attacks.\n @param destination The address to transfer ETH to.\n @param value The amount of ETH to transfer."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"51070:14:160","parameters":{"id":80927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80924,"mutability":"mutable","name":"destination","nameLocation":"51093:11:160","nodeType":"VariableDeclaration","scope":80951,"src":"51085:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80923,"name":"address","nodeType":"ElementaryTypeName","src":"51085:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80926,"mutability":"mutable","name":"value","nameLocation":"51114:5:160","nodeType":"VariableDeclaration","scope":80951,"src":"51106:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80925,"name":"uint128","nodeType":"ElementaryTypeName","src":"51106:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"51084:36:160"},"returnParameters":{"id":80930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80951,"src":"51138:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80928,"name":"bool","nodeType":"ElementaryTypeName","src":"51138:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51137:6:160"},"scope":81013,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81012,"nodeType":"FunctionDefinition","src":"51615:1106:160","nodes":[],"body":{"id":81011,"nodeType":"Block","src":"51657:1064:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"51671:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51675:5:160","memberName":"value","nodeType":"MemberAccess","src":"51671:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51683:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"51671:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80961,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"51688:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51692:4:160","memberName":"data","nodeType":"MemberAccess","src":"51688:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51697:6:160","memberName":"length","nodeType":"MemberAccess","src":"51688:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51707:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"51688:20:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"51671:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"51832:8:160","subExpression":{"id":80980,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79385,"src":"51833:7:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80982,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"51844:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51848:4:160","memberName":"data","nodeType":"MemberAccess","src":"51844:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":80984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51853:6:160","memberName":"length","nodeType":"MemberAccess","src":"51844:15:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":80985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51863:4:160","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"51844:23:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"51832:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81008,"nodeType":"Block","src":"52662:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":81005,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76218,"src":"52683:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52683:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":81007,"nodeType":"RevertStatement","src":"52676:28:160"}]},"id":81009,"nodeType":"IfStatement","src":"51828:887:160","trueBody":{"id":81004,"nodeType":"Block","src":"51869:787:160","statements":[{"assignments":[80990],"declarations":[{"constant":false,"id":80990,"mutability":"mutable","name":"callReply","nameLocation":"52332:9:160","nodeType":"VariableDeclaration","scope":81004,"src":"52324:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80989,"name":"uint256","nodeType":"ElementaryTypeName","src":"52324:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"documentation":" @dev We only allow arbitrary calls to `!isSmall` `Mirror` contracts,\n which are more likely to come from their ABI interfaces.\n The minimum call data length is 0x24 (36 bytes) because:\n - 0x04 (4 bytes) for the function selector [0x00..0x04)\n - 0x20 (32 bytes) for the bool `callReply` [0x04..0x24)","id":80991,"nodeType":"VariableDeclarationStatement","src":"52324:17:160"},{"AST":{"nativeSrc":"52381:63:160","nodeType":"YulBlock","src":"52381:63:160","statements":[{"nativeSrc":"52399:31:160","nodeType":"YulAssignment","src":"52399:31:160","value":{"arguments":[{"kind":"number","nativeSrc":"52425:4:160","nodeType":"YulLiteral","src":"52425:4:160","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"52412:12:160","nodeType":"YulIdentifier","src":"52412:12:160"},"nativeSrc":"52412:18:160","nodeType":"YulFunctionCall","src":"52412:18:160"},"variableNames":[{"name":"callReply","nativeSrc":"52399:9:160","nodeType":"YulIdentifier","src":"52399:9:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80990,"isOffset":false,"isSlot":false,"src":"52399:9:160","valueSize":1}],"flags":["memory-safe"],"id":80992,"nodeType":"InlineAssembly","src":"52356:88:160"},{"assignments":[80994],"declarations":[{"constant":false,"id":80994,"mutability":"mutable","name":"messageId","nameLocation":"52466:9:160","nodeType":"VariableDeclaration","scope":81004,"src":"52458:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52458:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81002,"initialValue":{"arguments":[{"expression":{"id":80996,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"52491:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"52495:4:160","memberName":"data","nodeType":"MemberAccess","src":"52491:8:160","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80998,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80990,"src":"52501:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52514:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"52501:14:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80995,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80315,"src":"52478:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":81001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52478:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"52458:58:160"},{"AST":{"nativeSrc":"52556:90:160","nodeType":"YulBlock","src":"52556:90:160","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52581:4:160","nodeType":"YulLiteral","src":"52581:4:160","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"52587:9:160","nodeType":"YulIdentifier","src":"52587:9:160"}],"functionName":{"name":"mstore","nativeSrc":"52574:6:160","nodeType":"YulIdentifier","src":"52574:6:160"},"nativeSrc":"52574:23:160","nodeType":"YulFunctionCall","src":"52574:23:160"},"nativeSrc":"52574:23:160","nodeType":"YulExpressionStatement","src":"52574:23:160"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52621:4:160","nodeType":"YulLiteral","src":"52621:4:160","type":"","value":"0x00"},{"kind":"number","nativeSrc":"52627:4:160","nodeType":"YulLiteral","src":"52627:4:160","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"52614:6:160","nodeType":"YulIdentifier","src":"52614:6:160"},"nativeSrc":"52614:18:160","nodeType":"YulFunctionCall","src":"52614:18:160"},"nativeSrc":"52614:18:160","nodeType":"YulExpressionStatement","src":"52614:18:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":80994,"isOffset":false,"isSlot":false,"src":"52587:9:160","valueSize":1}],"flags":["memory-safe"],"id":81003,"nodeType":"InlineAssembly","src":"52531:115:160"}]}},"id":81010,"nodeType":"IfStatement","src":"51667:1048:160","trueBody":{"id":80979,"nodeType":"Block","src":"51710:112:160","statements":[{"assignments":[80968],"declarations":[{"constant":false,"id":80968,"mutability":"mutable","name":"value","nameLocation":"51732:5:160","nodeType":"VariableDeclaration","scope":80979,"src":"51724:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80967,"name":"uint128","nodeType":"ElementaryTypeName","src":"51724:7:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80974,"initialValue":{"arguments":[{"expression":{"id":80971,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"51748:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"51752:5:160","memberName":"value","nodeType":"MemberAccess","src":"51748:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"51740:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80969,"name":"uint128","nodeType":"ElementaryTypeName","src":"51740:7:160","typeDescriptions":{}}},"id":80973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51740:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"51724:34:160"},{"eventCall":{"arguments":[{"id":80976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80968,"src":"51805:5:160","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":80975,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"51778:26:160","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":80977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51778:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80978,"nodeType":"EmitStatement","src":"51773:38:160"}]}}]},"documentation":{"id":80952,"nodeType":"StructuredDocumentation","src":"51320:290:160","text":" @dev Fallback function for top-up owned balance in native currency (ETH)\n and for sending arbitrary calls to `!isSmall` `Mirror` contracts\n as messages to Sails framework.\n See the description of `Mirror.isSmall` field for details."},"implemented":true,"kind":"fallback","modifiers":[{"id":80955,"kind":"modifierInvocation","modifierName":{"id":80954,"name":"whenNotPaused","nameLocations":["51643:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":79520,"src":"51643:13:160"},"nodeType":"ModifierInvocation","src":"51643:13:160"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":80953,"nodeType":"ParameterList","parameters":[],"src":"51623:2:160"},"returnParameters":{"id":80956,"nodeType":"ParameterList","parameters":[],"src":"51657:0:160"},"scope":81013,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79267,"name":"IMirror","nameLocations":["2749:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":76363,"src":"2749:7:160"},"id":79268,"nodeType":"InheritanceSpecifier","src":"2749:7:160"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":79266,"nodeType":"StructuredDocumentation","src":"730:1999:160","text":" @dev Mirror smart contract is responsible for storing the minimal state of programs on our platform\n and transitioning from one state to another by calling `performStateTransition(...)`. It's built\n on actor-model architecture, and in Ethereum, we implement this through \"request-response\" model.\n This means we have two types of events:\n - \"Requested\" events - when user calls one of the methods marked as \"Primary Gear logic\" we emit such an event,\n and all our nodes process it off-chain\n - \"Responded\" events - when we receive response from our nodes and transmit it back to Ethereum.\n All logic called within `performStateTransition(...)` and leading to methods marked as\n \"Private calls related to performStateTransition\" are such events.\n It's important not to confuse these two, as this is how we implement the actor model in Ethereum.\n Mirror economic model has two balances:\n - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`.\n This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`.\n - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain.\n It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform.\n You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the\n Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users\n can use it for free. This is called the \"reverse-gas model\". Developer can also require the presence of `value` in\n the owned balance when calling methods in a WASM smart contract to protect their program from spam."},"fullyImplemented":true,"linearizedBaseContracts":[81013,76363],"name":"Mirror","nameLocation":"2739:6:160","scope":81014,"usedErrors":[76169,76172,76175,76178,76181,76184,76187,76190,76193,76198,76203,76206,76208,76210,76212,76214,76216,76218,76220,76226],"usedEvents":[76064,76077,76088,76095,76100,76105,76116,76125,76136,76145,76152,76159,76166]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":160} \ No newline at end of file diff --git a/ethexe/ethereum/abi/NetworkMiddlewareService.json b/ethexe/ethereum/abi/NetworkMiddlewareService.json index 919728bc854..7e287bf83c7 100644 --- a/ethexe/ethereum/abi/NetworkMiddlewareService.json +++ b/ethexe/ethereum/abi/NetworkMiddlewareService.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"middleware","inputs":[{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMiddleware","inputs":[{"name":"middleware_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMiddleware","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"middleware","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f6102dc38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c5760805260405161025790816100858239608051818181605401526101030152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea26469706673582212204f9d8e7d56920d88e2358268d67aed11c7bec9fb5cfaaed34c7210bbd86b22e464736f6c63430008190033","sourceMap":"226:856:90:-:0;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:90;;;;;;592:34;;226:856;;;;;;;;592:34;226:856;;;;;;;;;;;;-1:-1:-1;226:856:90;;;;;;-1:-1:-1;226:856:90;;;;;-1:-1:-1;226:856:90","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c918263b7d8e1a9146100c357508163bb5ed03214610087575063c0cd7c3e14610041575f80fd5b34610083575f36600319011261008357517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b90503461008357602036600319011261008357356001600160a01b038181169291839003610083576020925f525f8352815f2054169051908152f35b83346100835760209081600319360112610083576001600160a01b0384358181169490859003610083576302910f8b60e31b8152338682015283816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610217575f916101b7575b50156101a7578390335f525f8452825f2054161461019857907ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9891335f525f8252805f20846bffffffffffffffffffffffff60a01b825416179055519283523392a2005b5163a741a04560e01b81528390fd5b81516323d53b9760e21b81528590fd5b9050833d8511610210575b601f8101601f1916820167ffffffffffffffff8111838210176101fd5785918391865281010312610083575180151581036100835786610134565b604188634e487b7160e01b5f525260245ffd5b503d6101c2565b83513d5f823e3d90fdfea26469706673582212204f9d8e7d56920d88e2358268d67aed11c7bec9fb5cfaaed34c7210bbd86b22e464736f6c63430008190033","sourceMap":"226:856:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;;356:41;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:856:90;;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:856:90;;;;;;;;;;;;-1:-1:-1;;;782:48:90;;819:10;782:48;;;226:856;792:16;782:48;226:856;782:48;792:16;226:856;;782:48;;;;;;;226:856;782:48;;;226:856;781:49;;777:99;;819:10;;;226:856;;;;;;;;;;890:37;886:87;;819:10;1035:38;819:10;;226:856;;;;;;;;;;;;;;;;;;;;;;819:10;1035:38;;226:856;886:87;226:856;-1:-1:-1;;;950:12:90;;226:856;;950:12;777:99;226:856;;-1:-1:-1;;;853:12:90;;226:856;;853:12;782:48;;;;;;;;;;226:856;;;-1:-1:-1;;226:856:90;;;;;;;;;;;;;;;;;;782:48;;226:856;;;;;;;;;;;;782:48;;;226:856;;;;;;;;;;;;782:48;;;;;;226:856;;;;;;;;","linkReferences":{},"immutableReferences":{"65042":[{"start":84,"length":32},{"start":259,"length":32}]}},"methodIdentifiers":{"NETWORK_REGISTRY()":"c0cd7c3e","middleware(address)":"bb5ed032","setMiddleware(address)":"b7d8e1a9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"name\":\"SetMiddleware\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"middleware_\",\"type\":\"address\"}],\"name\":\"setMiddleware\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"params\":{\"middleware\":\"new middleware of the network\",\"network\":\"address of the network\"}}},\"kind\":\"dev\",\"methods\":{\"setMiddleware(address)\":{\"params\":{\"middleware\":\"new middleware of the network\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"middleware\":{\"params\":{\"network\":\"address of the network\"},\"return\":\"value middleware of the network\",\"returns\":{\"value\":\"middleware of the network\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"notice\":\"Emitted when a middleware is set for a network.\"}},\"kind\":\"user\",\"methods\":{\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"middleware(address)\":{\"notice\":\"Get a given network's middleware.\"},\"setMiddleware(address)\":{\"notice\":\"Set a new middleware for a calling network.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/NetworkMiddlewareService.sol\":\"NetworkMiddlewareService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/contracts/service/NetworkMiddlewareService.sol\":{\"keccak256\":\"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c\",\"dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"middleware","type":"address","indexed":false}],"type":"event","name":"SetMiddleware","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"address","name":"middleware_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMiddleware"}],"devdoc":{"kind":"dev","methods":{"setMiddleware(address)":{"params":{"middleware":"new middleware of the network"}}},"version":1},"userdoc":{"kind":"user","methods":{"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"middleware(address)":{"notice":"Get a given network's middleware."},"setMiddleware(address)":{"notice":"Set a new middleware for a calling network."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/NetworkMiddlewareService.sol":"NetworkMiddlewareService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"src/contracts/service/NetworkMiddlewareService.sol":{"keccak256":"0x37c47d77b514ba404d7e20bcd4d5d281474af2c6b79e465b9132e4827f078fc5","urls":["bzz-raw://bac73b7feb32cb266f06314e71c04cbaf22bd1fcc1b0ca519b38e22c4e47b05c","dweb:/ipfs/QmYN1WaKob9fQd5RkmMT6n72enPW5XkPashuYrFXppiCYK"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"}},"version":1},"id":90} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"networkRegistry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"NETWORK_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"middleware","inputs":[{"name":"network","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMiddleware","inputs":[{"name":"middleware_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SetMiddleware","inputs":[{"name":"network","type":"address","indexed":true,"internalType":"address"},{"name":"middleware","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"NotNetwork","inputs":[]}],"bytecode":{"object":"0x60a034606c57601f6102fc38819003918201601f19168301916001600160401b03831184841017607057808492602094604052833981010312606c57516001600160a01b0381168103606c5760805260405161027790816100858239608051818181605201526101070152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908163b7d8e1a9146100c857508063bb5ed032146100855763c0cd7c3e1461003d575f80fd5b34610081575f366003190112610081576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610081576020366003190112610081576004356001600160a01b03811690819003610081575f525f602052602060018060a01b0360405f205416604051908152f35b34610081576020366003190112610081576004356001600160a01b0381169190829003610081576302910f8b60e31b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610236575f916101d1575b50156101c257335f908152602081905260409020546001600160a01b031681146101b357335f525f60205260405f20816bffffffffffffffffffffffff60a01b8254161790556040519081527ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9860203392a2005b63a741a04560e01b5f5260045ffd5b6323d53b9760e21b5f5260045ffd5b905060203d60201161022f575b601f8101601f1916820167ffffffffffffffff81118382101761021b5760209183916040528101031261008157518015158103610081578261013f565b634e487b7160e01b5f52604160045260245ffd5b503d6101de565b6040513d5f823e3d90fdfea264697066735822122052ca43b1329a1b92521610e9080ee2231550c42473d236596de54d319443b8cb64736f6c63430008230033","sourceMap":"227:828:143:-:0;;;;;;;;;;;;;-1:-1:-1;;227:828:143;;;;-1:-1:-1;;;;;227:828:143;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;227:828:143;;;;;;579:34;;227:828;;;;;;;;579:34;227:828;;;;;;;;;;;;-1:-1:-1;227:828:143;;;;;;-1:-1:-1;227:828:143;;;;;-1:-1:-1;227:828:143","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908163b7d8e1a9146100c857508063bb5ed032146100855763c0cd7c3e1461003d575f80fd5b34610081575f366003190112610081576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610081576020366003190112610081576004356001600160a01b03811690819003610081575f525f602052602060018060a01b0360405f205416604051908152f35b34610081576020366003190112610081576004356001600160a01b0381169190829003610081576302910f8b60e31b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610236575f916101d1575b50156101c257335f908152602081905260409020546001600160a01b031681146101b357335f525f60205260405f20816bffffffffffffffffffffffff60a01b8254161790556040519081527ff64e2a8734392e221de13f5e56deb22d308e292cad394052affa97dbaf41ec9860203392a2005b63a741a04560e01b5f5260045ffd5b6323d53b9760e21b5f5260045ffd5b905060203d60201161022f575b601f8101601f1916820167ffffffffffffffff81118382101761021b5760209183916040528101031261008157518015158103610081578261013f565b634e487b7160e01b5f52604160045260245ffd5b503d6101de565b6040513d5f823e3d90fdfea264697066735822122052ca43b1329a1b92521610e9080ee2231550c42473d236596de54d319443b8cb64736f6c63430008230033","sourceMap":"227:828:143:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;227:828:143;;;;;;357:41;-1:-1:-1;;;;;227:828:143;;;;;;;;;;;;;;;;-1:-1:-1;;227:828:143;;;;;;-1:-1:-1;;;;;227:828:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;227:828:143;;;;;;-1:-1:-1;;;;;227:828:143;;;;;;;;;-1:-1:-1;;;755:48:143;;792:10;227:828;755:48;;227:828;;755:48;;;765:16;-1:-1:-1;;;;;227:828:143;755:48;;;;;;;227:828;755:48;;;227:828;754:49;;750:99;;792:10;227:828;;;;;;;;;;;;-1:-1:-1;;;;;227:828:143;863:37;;859:87;;792:10;227:828;;;;;;;;;;;;;;;;;;;;;;;1008:38;227:828;792:10;1008:38;;227:828;859:87;923:12;;;227:828;923:12;227:828;;923:12;750:99;826:12;;;227:828;826:12;227:828;;826:12;755:48;;;227:828;755:48;227:828;755:48;;;;227:828;;;-1:-1:-1;;227:828:143;;;;;;;;;;;;;;;;;;755:48;;227:828;;;;;;;;;;;;755:48;;;227:828;;;;;;;;;755:48;227:828;;755:48;;;;;;227:828;;;;;;;;","linkReferences":{},"immutableReferences":{"67074":[{"start":82,"length":32},{"start":263,"length":32}]}},"methodIdentifiers":{"NETWORK_REGISTRY()":"c0cd7c3e","middleware(address)":"bb5ed032","setMiddleware(address)":"b7d8e1a9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotNetwork\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"name\":\"SetMiddleware\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NETWORK_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"network\",\"type\":\"address\"}],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"middleware_\",\"type\":\"address\"}],\"name\":\"setMiddleware\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"params\":{\"middleware\":\"new middleware of the network\",\"network\":\"address of the network\"}}},\"kind\":\"dev\",\"methods\":{\"setMiddleware(address)\":{\"params\":{\"middleware\":\"new middleware of the network\"}}},\"stateVariables\":{\"NETWORK_REGISTRY\":{\"return\":\"address of the network registry\",\"returns\":{\"_0\":\"address of the network registry\"}},\"middleware\":{\"params\":{\"network\":\"address of the network\"},\"return\":\"value middleware of the network\",\"returns\":{\"value\":\"middleware of the network\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SetMiddleware(address,address)\":{\"notice\":\"Emitted when a middleware is set for a network.\"}},\"kind\":\"user\",\"methods\":{\"NETWORK_REGISTRY()\":{\"notice\":\"Get the network registry's address.\"},\"middleware(address)\":{\"notice\":\"Get a given network's middleware.\"},\"setMiddleware(address)\":{\"notice\":\"Set a new middleware for a calling network.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/NetworkMiddlewareService.sol\":\"NetworkMiddlewareService\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\"],\"viaIR\":true},\"sources\":{\"src/contracts/service/NetworkMiddlewareService.sol\":{\"keccak256\":\"0x8f645901acc3f871bfb5d4909ca0b84970e08fdf170c742116598ff38cfd1a3b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c56472a916417bf30090cbc522570356c618aea3dce7a0a96069fbb7fb997032\",\"dweb:/ipfs/QmS8nsDrM9p5q6sCgNQeG1Nafgb6Zmct4kfpxxHvyhdcgQ\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]},\"src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8\",\"dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"networkRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"NotNetwork"},{"inputs":[{"internalType":"address","name":"network","type":"address","indexed":true},{"internalType":"address","name":"middleware","type":"address","indexed":false}],"type":"event","name":"SetMiddleware","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"NETWORK_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"network","type":"address"}],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"address","name":"middleware_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMiddleware"}],"devdoc":{"kind":"dev","methods":{"setMiddleware(address)":{"params":{"middleware":"new middleware of the network"}}},"version":1},"userdoc":{"kind":"user","methods":{"NETWORK_REGISTRY()":{"notice":"Get the network registry's address."},"middleware(address)":{"notice":"Get a given network's middleware."},"setMiddleware(address)":{"notice":"Set a new middleware for a calling network."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/","forge-std/=dependencies/forge-std-1.16.1/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/NetworkMiddlewareService.sol":"NetworkMiddlewareService"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"src/contracts/service/NetworkMiddlewareService.sol":{"keccak256":"0x8f645901acc3f871bfb5d4909ca0b84970e08fdf170c742116598ff38cfd1a3b","urls":["bzz-raw://c56472a916417bf30090cbc522570356c618aea3dce7a0a96069fbb7fb997032","dweb:/ipfs/QmS8nsDrM9p5q6sCgNQeG1Nafgb6Zmct4kfpxxHvyhdcgQ"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"},"src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x2ed1645b7f1e440d8b466669e14cb14d564d77bdc9331e26a623f13a11513791","urls":["bzz-raw://f3ccbb07b3d297da508fc603a1abe61230605d2799bf4508038942d522f728a8","dweb:/ipfs/QmRdrZqUQEXWuRdCTti7ZuTbivuVDkK7KCSBfYHfLgCha9"],"license":"MIT"}},"version":1},"id":144} \ No newline at end of file diff --git a/ethexe/ethereum/abi/NetworkRegistry.json b/ethexe/ethereum/abi/NetworkRegistry.json index 32aab214ae1..d9ec2b07e22 100644 --- a/ethexe/ethereum/abi/NetworkRegistry.json +++ b/ethexe/ethereum/abi/NetworkRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerNetwork","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"NetworkAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea2646970667358221220cc20ba223c75c11e4bd6429db6fcb715270e8a6175f384753dacda65f1f603d864736f6c63430008190033","sourceMap":"181:284:64:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780635cd8b15e1461012157806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b60405163ad5fcda560e01b8152600490fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea2646970667358221220cc20ba223c75c11e4bd6429db6fcb715270e8a6175f384753dacda65f1f603d864736f6c63430008190033","sourceMap":"181:284:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;181:284:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;8974:55:61;353:10:64;181:284;;4360:14:61;181:284:64;;;;;;4360:26:61;;4264:129;;8974:55;340:84:64;;8409:50:61;353:10:64;8409:50:61;:::i;:::-;;353:10:64;1077:18:74;181:284:64;1077:18:74;;181:284:64;340:84;181:284;;-1:-1:-1;;;387:26:64;;181:284;;387:26;181:284;;;;;;-1:-1:-1;;181:284:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;181:284:64;;;;;;-1:-1:-1;;;;;181:284:64;;;;;;;;8974:55:61;181:284:64;8974:55:61;181:284:64;;4360:14:61;181:284:64;;;;;;4360:26:61;;4264:129;;8974:55;181:284:64;;;;;;;;2241:406:61;181:284:64;;;4360:14:61;181:284:64;;;;;;4360:26:61;2320:321;181:284:64;;;;;;;;;;;4360:14:61;181:284:64;;;;;;;;;;;;;;;;;;;;4360:14:61;181:284:64;;;;;;4360:14:61;2576:11;:::o;181:284:64:-;;;;;;;;;;;;2320:321:61;2618:12;181:284:64;2618:12:61;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerNetwork()":"87140b5b","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NetworkAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerNetwork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerNetwork()\":{\"notice\":\"Register the caller as a network.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/NetworkRegistry.sol\":\"NetworkRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/NetworkRegistry.sol\":{\"keccak256\":\"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567\",\"dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"NetworkAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerNetwork"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerNetwork()":{"notice":"Register the caller as a network."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/NetworkRegistry.sol":"NetworkRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/NetworkRegistry.sol":{"keccak256":"0x4b4c95351e9dc7aed572eed27ff3c1aba57c13c8b1f50fc0f07c1ec36c504970","urls":["bzz-raw://ec74d6259a902cb663304fc797d025d175c17c4836fd29a099513ea001319567","dweb:/ipfs/QmRcRCkuR7Ey5B4F8rCvXh1ApVbqteGY1cJjt5ik1wAYPd"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerNetwork","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"NetworkAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610225908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013a5780635cd8b15e1461011e57806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610181565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b63ad5fcda560e01b5f5260045ffd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b1576101776020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f146101ea575f54680100000000000000008110156101d657600181015f555f5481101561009d5781905f805260205f2001555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea26469706673582212200745ce3df613d1d208866b71b6638137e614ec404539bfdedeff1c1ad55bbc4964736f6c63430008230033","sourceMap":"182:284:117:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013a5780635cd8b15e1461011e57806387140b5b146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b1576100da335f52600160205260405f2054151590565b61010f576100e733610181565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b63ad5fcda560e01b5f5260045ffd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b1576101776020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f146101ea575f54680100000000000000008110156101d657600181015f555f5481101561009d5781905f805260205f2001555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea26469706673582212200745ce3df613d1d208866b71b6638137e614ec404539bfdedeff1c1ad55bbc4964736f6c63430008230033","sourceMap":"182:284:117:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;182:284:117;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;182:284:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;182:284:117;;;;16144:55:42;354:10:117;182:284;;5238:14:42;182:284:117;;;;;;5238:26:42;;5142:129;;16144:55;341:84:117;;15182:50:42;354:10:117;15182:50:42;:::i;:::-;;354:10:117;1021:18:127;182:284:117;1021:18:127;;182:284:117;341:84;388:26;;;182:284;388:26;182:284;;388:26;182:284;;;;;;-1:-1:-1;;182:284:117;;;;;;;;;;;;;;;;;;;-1:-1:-1;;182:284:117;;;;;;-1:-1:-1;;;;;182:284:117;;;;;;;;16144:55:42;182:284:117;16144:55:42;182:284:117;;5238:14:42;182:284:117;;;;;;5238:26:42;;5142:129;;16144:55;182:284:117;;;;;;;;2538:406:42;182:284:117;;;5238:14:42;182:284:117;;;;;;5238:26:42;2617:321;2621:22;;;182:284:117;;;;;;;;5238:14:42;182:284:117;;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:42;182:284:117;;;;;;5238:14:42;2873:11;:::o;182:284:117:-;;;;;;;;;;;;2617:321:42;2915:12;182:284:117;2915:12:42;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerNetwork()":"87140b5b","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NetworkAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerNetwork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerNetwork()\":{\"notice\":\"Register the caller as a network.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/NetworkRegistry.sol\":\"NetworkRegistry\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"src/contracts/NetworkRegistry.sol\":{\"keccak256\":\"0xe827db69140b2ba7d6e22f08333f7594c1849a207fef515690c07d4268d8b94f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://de7ef9c7d6539e723d6805ad58d245c899a7eabd57cf9c123adf3ad1ee16b156\",\"dweb:/ipfs/QmRAq5irtowd1pqSSgKPWNfNjq6XLqwtEwNdDbFUeCRuB9\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6\",\"dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH\"]},\"src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"NetworkAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerNetwork"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerNetwork()":{"notice":"Register the caller as a network."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/","forge-std/=dependencies/forge-std-1.16.1/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/NetworkRegistry.sol":"NetworkRegistry"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"src/contracts/NetworkRegistry.sol":{"keccak256":"0xe827db69140b2ba7d6e22f08333f7594c1849a207fef515690c07d4268d8b94f","urls":["bzz-raw://de7ef9c7d6539e723d6805ad58d245c899a7eabd57cf9c123adf3ad1ee16b156","dweb:/ipfs/QmRAq5irtowd1pqSSgKPWNfNjq6XLqwtEwNdDbFUeCRuB9"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907","urls":["bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6","dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH"],"license":"BUSL-1.1"},"src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"}},"version":1},"id":118} \ No newline at end of file diff --git a/ethexe/ethereum/abi/OperatorRegistry.json b/ethexe/ethereum/abi/OperatorRegistry.json index fb64bec17c1..150ee4a363d 100644 --- a/ethexe/ethereum/abi/OperatorRegistry.json +++ b/ethexe/ethereum/abi/OperatorRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"OperatorAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610241908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122077e93113fb982ae02c0a41b82d2748dbea47776eb9ecfa1fc44d11a0333ed06864736f6c63430008190033","sourceMap":"183:289:65:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013d5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610184565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6040516342ee68b560e01b8152600490fd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b15761017a6020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f14610206575f54680100000000000000008110156101f25760018101805f5581101561009d5781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122077e93113fb982ae02c0a41b82d2748dbea47776eb9ecfa1fc44d11a0333ed06864736f6c63430008190033","sourceMap":"183:289:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;183:289:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;;;;;;;;;;;;;;;;-1:-1:-1;;183:289:65;;;;8974:55:61;359:10:65;183:289;;4360:14:61;183:289:65;;;;;;4360:26:61;;4264:129;;8974:55;346:85:65;;8409:50:61;359:10:65;8409:50:61;:::i;:::-;;359:10:65;1077:18:74;183:289:65;1077:18:74;;183:289:65;346:85;183:289;;-1:-1:-1;;;393:27:65;;183:289;;393:27;183:289;;;;;;-1:-1:-1;;183:289:65;;;;;;-1:-1:-1;;;;;183:289:65;;;;;;;;8974:55:61;183:289:65;8974:55:61;183:289:65;;4360:14:61;183:289:65;;;;;;4360:26:61;;4264:129;;8974:55;183:289:65;;;;;;;;2241:406:61;183:289:65;;;4360:14:61;183:289:65;;;;;;4360:26:61;2320:321;183:289:65;;;;;;;;;;;4360:14:61;183:289:65;;;;;;;;;;;;;;;;;;;;4360:14:61;183:289:65;;;;;;4360:14:61;2576:11;:::o;183:289:65:-;;;;;;;;;;;;2320:321:61;2618:12;183:289:65;2618:12:61;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerOperator()":"2acde098","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerOperator()\":{\"notice\":\"Register the caller as an operator.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/OperatorRegistry.sol\":\"OperatorRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/OperatorRegistry.sol\":{\"keccak256\":\"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d\",\"dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IOperatorRegistry.sol\":{\"keccak256\":\"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe\",\"dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"OperatorAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerOperator()":{"notice":"Register the caller as an operator."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/OperatorRegistry.sol":"OperatorRegistry"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/OperatorRegistry.sol":{"keccak256":"0xa2d811a9525b3dcbef2dd87ba0ece6fbc30f8d404a8ec9ca01a42d16414dbed4","urls":["bzz-raw://6c20a1f1a47c33c7bd1ebc53163de727622ee20ac0a883fee81676be5d8fc10d","dweb:/ipfs/QmYDfR13eeiKws7UZ898ur86xYvq5RQb9p8RF5q65yyQsT"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IOperatorRegistry.sol":{"keccak256":"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af","urls":["bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe","dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":65} \ No newline at end of file +{"abi":[{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"OperatorAlreadyRegistered","inputs":[]}],"bytecode":{"object":"0x60808060405234601557610225908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013a5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610181565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6342ee68b560e01b5f5260045ffd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b1576101776020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f146101ea575f54680100000000000000008110156101d657600181015f555f5481101561009d5781905f805260205f2001555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122073ef7a645020036ee373706c000b7b04614191e5dabe3be517e42d0c33fb3afb64736f6c63430008230033","sourceMap":"184:289:118:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806314887c581461013a5780632acde098146100d15780635cd8b15e146100b55763b42ba2a214610045575f80fd5b346100b15760203660031901126100b1576004355f5481101561009d575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b5f80fd5b346100b1575f3660031901126100b15760205f54604051908152f35b346100b1575f3660031901126100b1576100f6335f52600160205260405f2054151590565b61012b5761010333610181565b50337fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2005b6342ee68b560e01b5f5260045ffd5b346100b15760203660031901126100b1576004356001600160a01b038116908190036100b1576101776020915f52600160205260405f2054151590565b6040519015158152f35b805f52600160205260405f2054155f146101ea575f54680100000000000000008110156101d657600181015f555f5481101561009d5781905f805260205f2001555f54905f52600160205260405f2055600190565b634e487b7160e01b5f52604160045260245ffd5b505f9056fea264697066735822122073ef7a645020036ee373706c000b7b04614191e5dabe3be517e42d0c33fb3afb64736f6c63430008230033","sourceMap":"184:289:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;184:289:118;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;184:289:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;184:289:118;;;;;;;;;;;;;;;;;;;-1:-1:-1;;184:289:118;;;;16144:55:42;360:10:118;184:289;;5238:14:42;184:289:118;;;;;;5238:26:42;;5142:129;;16144:55;347:85:118;;15182:50:42;360:10:118;15182:50:42;:::i;:::-;;360:10:118;1021:18:127;184:289:118;1021:18:127;;184:289:118;347:85;394:27;;;184:289;394:27;184:289;;394:27;184:289;;;;;;-1:-1:-1;;184:289:118;;;;;;-1:-1:-1;;;;;184:289:118;;;;;;;;16144:55:42;184:289:118;16144:55:42;184:289:118;;5238:14:42;184:289:118;;;;;;5238:26:42;;5142:129;;16144:55;184:289:118;;;;;;;;2538:406:42;184:289:118;;;5238:14:42;184:289:118;;;;;;5238:26:42;2617:321;2621:22;;;184:289:118;;;;;;;;5238:14:42;184:289:118;;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:42;184:289:118;;;;;;5238:14:42;2873:11;:::o;184:289:118:-;;;;;;;;;;;;2617:321:42;2915:12;184:289:118;2915:12:42;:::o","linkReferences":{}},"methodIdentifiers":{"entity(uint256)":"b42ba2a2","isEntity(address)":"14887c58","registerOperator()":"2acde098","totalEntities()":"5cd8b15e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorAlreadyRegistered\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}}},\"kind\":\"dev\",\"methods\":{\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"}},\"kind\":\"user\",\"methods\":{\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"registerOperator()\":{\"notice\":\"Register the caller as an operator.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/OperatorRegistry.sol\":\"OperatorRegistry\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"src/contracts/OperatorRegistry.sol\":{\"keccak256\":\"0x73d6c1c0db6f534ea3fae75ee8e75ff690b3384258224aec8f9d7b8f8e18cc12\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff679732432341d85363498f5caf1984ec42313d713c3368a6be259ffeb25ebe\",\"dweb:/ipfs/Qma3MqrZNpdazF1L8mb8pZEd7JUHrLuTn6osbpJbFSpdeU\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6\",\"dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH\"]},\"src/interfaces/IOperatorRegistry.sol\":{\"keccak256\":\"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe\",\"dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"OperatorAlreadyRegistered"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"totalEntities()":{"returns":{"_0":"total number of entities added"}}},"version":1},"userdoc":{"kind":"user","methods":{"entity(uint256)":{"notice":"Get an entity given its index."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"registerOperator()":{"notice":"Register the caller as an operator."},"totalEntities()":{"notice":"Get a total number of entities."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/","forge-std/=dependencies/forge-std-1.16.1/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/OperatorRegistry.sol":"OperatorRegistry"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"src/contracts/OperatorRegistry.sol":{"keccak256":"0x73d6c1c0db6f534ea3fae75ee8e75ff690b3384258224aec8f9d7b8f8e18cc12","urls":["bzz-raw://ff679732432341d85363498f5caf1984ec42313d713c3368a6be259ffeb25ebe","dweb:/ipfs/Qma3MqrZNpdazF1L8mb8pZEd7JUHrLuTn6osbpJbFSpdeU"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907","urls":["bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6","dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH"],"license":"BUSL-1.1"},"src/interfaces/IOperatorRegistry.sol":{"keccak256":"0x6a606147504ec73b241a390739a3554add67fbd1b7e1dd2e2011acbf68d077af","urls":["bzz-raw://d46135057ecf37739be6965bf8a5439f911b463f209f66b53b97823c7e7299fe","dweb:/ipfs/QmQSTrGuR8opR8n2anAnQFu7KQysdFzDjR44xCC7dbqs8v"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"}},"version":1},"id":119} \ No newline at end of file diff --git a/ethexe/ethereum/abi/OptInService.json b/ethexe/ethereum/abi/OptInService.json index 6b874204dcd..ee7c91fb9a3 100644 --- a/ethexe/ethereum/abi/OptInService.json +++ b/ethexe/ethereum/abi/OptInService.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"whoRegistry","type":"address","internalType":"address"},{"name":"whereRegistry","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101a0604090808252346101dc57611c85803803809161001f82856101e0565b833981016060828203126101dc5761003682610203565b6020610043818501610203565b848601516001600160401b03959194918682116101dc57019181601f840112156101dc5782518681116101c857875193610086601f8301601f19168401866101e0565b818552828501938383830101116101dc57815f9284809301865e85010152865190878201828110888211176101c857885260018252808201603160f81b81526100ce85610217565b936101209485526100de846103ae565b95610140968752519020928360e0525190209761010098808a524660a0528151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85528284015260608301524660808301523060a083015260a0825260c0820197828910908911176101c8578790525190206080523060c0526101609283526101809384526117a095866104e5873960805186611222015260a051866112dd015260c051866111ec015260e0518661127101525185611297015251846102dd015251836103060152518281816105d90152610c3901525181818161024e0152610c8c0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b038211908210176101c857604052565b51906001600160a01b03821682036101dc57565b80516020908181101561028d5750601f82511161024f578082519201519080831061024157501790565b825f19910360031b1b161790565b60448260405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b906001600160401b0382116101c8575f54926001938481811c911680156103a4575b8382101461039057601f811161035d575b5081601f84116001146102fb57509282939183925f946102f0575b50501b915f199060031b1c1916175f5560ff90565b015192505f806102db565b919083601f1981165f8052845f20945f905b88838310610343575050501061032b575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061031e565b85870151885590960195948501948793509081019061030d565b5f805284601f845f20920160051c820191601f860160051c015b8281106103855750506102c0565b5f8155018590610377565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102af565b8051602090818110156103d85750601f82511161024f578082519201519080831061024157501790565b9192916001600160401b0381116101c85760019182548381811c911680156104da575b8282101461039057601f81116104a7575b5080601f83116001146104475750819293945f9261043c575b50505f19600383901b1c191690821b17905560ff90565b015190505f80610425565b90601f19831695845f52825f20925f905b8882106104905750508385969710610478575b505050811b01905560ff90565b01515f1960f88460031b161c191690555f808061046b565b808785968294968601518155019501930190610458565b835f5283601f835f20920160051c820191601f850160051c015b8281106104cf57505061040c565b5f81550184906104c1565b90607f16906103fb56fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220e3d0b21c7d8dc3a0d63f417bf3497f69de6a0208097dd894acd7ab6691797d6b64736f6c63430008190033","sourceMap":"583:4371:91:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;583:4371:91;;3401:45:52;;;:::i;:::-;3393:53;;;;;3467:51;;;:::i;:::-;3456:62;;;;;583:4371:91;3542:22:52;;3528:36;;;;583:4371:91;3591:25:52;;3574:42;;;;;;3644:13;3627:30;;583:4371:91;;4204:80:52;;;2079:95;;;;;;;;583:4371:91;2079:95:52;;;3644:13;2079:95;;;;4278:4;3627:30;2079:95;;;3627:30;4204:80;;2079:95;583:4371:91;;;;;;;;;;;;;;;;4194:91:52;;2079:95;3667:48;4278:4;2079:95;3725:27;1675:26:91;;;;1711:30;;;;583:4371;;;;;;2079:95:52;583:4371:91;;;;;3627:30:52;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;3528:36:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;;;;;;-1:-1:-1;;583:4371:91;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;2914:340:48:-;583:4371:91;;3059:2:48;;3037:24;;;3059:2;;;583:4371:91;1854:2:48;583:4371:91;;1840:16:48;1836:72;;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;;1949:36:48;;3077:27;:::o;583:4371:91:-;;;;;;;;;;1949:36:48;3077:27;:::o;1836:72::-;583:4371:91;;;;1879:18:48;;;;;;;;;;;;583:4371:91;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;1854:2:48;583:4371:91;-1:-1:-1;;583:4371:91;;;1879:18:48;;;;3033:215;583:4371:91;-1:-1:-1;;;;;583:4371:91;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;1390:66:48;3195:42;:::o;583:4371:91:-;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;3432:13:52;583:4371:91;;;3432:13:52;583:4371:91;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;1390:66:48;3195:42;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;3432:13:52;583:4371:91;;;;;3432:13:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;3432:13:52;583:4371:91;;;;;;;;;;;3432:13:52;583:4371:91;;;;;3432:13:52;583:4371:91;;;;;;;;2914:340:48;583:4371:91;;3059:2:48;;3037:24;;;3059:2;;;583:4371:91;1854:2:48;583:4371:91;;1840:16:48;1836:72;;583:4371:91;;;;;2079:95:52;583:4371:91;;;;;;1949:36:48;;3077:27;:::o;3033:215::-;583:4371:91;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;3033:215:48;583:4371:91;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;-1:-1:-1;;;;583:4371:91;;;;;;;;;;;;;1390:66:48;;3195:42::o;583:4371:91:-;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:48;3195:42;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106cc565b610608565b6105c4565b6105a2565b610511565b610412565b6103bb565b6102c5565b61027d565b610239565b6101d3565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106ee565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576001600160a01b039160043583811681036100ef579260243590811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101cf9160040161013f565b9091565b346100ef576020600161022961022f61021a6101ee3661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b0395369161080b565b916108c3565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef5761029f6102996100d9565b336109bf565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761035e6103017f0000000000000000000000000000000000000000000000000000000000000000610e2a565b61032a7f0000000000000000000000000000000000000000000000000000000000000000610f28565b6040519061033782610786565b5f825261036c602091604051958695600f60f81b875260e0602088015260e08701906102a1565b9085820360408701526102a1565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b8281106103a457505050500390f35b835185528695509381019392810192600101610395565b346100ef5760403660031901126100ef5760206104096103d96100d9565b6103e16100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef576104203661016d565b909165ffffffffffff8061043342610ff1565b1691169081106104ff576104df926104d06104d89260018060a01b0380891691825f5260026020526104788960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a6865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b519020611023565b92369161080b565b9084610a15565b156104ed5761029f91610af1565b604051638baa579f60e01b8152600490fd5b60405163df4cc36d60e01b8152600490fd5b346100ef5760403660031901126100ef5761052a6100d9565b60243567ffffffffffffffff81116100ef575f9161054d8392369060040161013f565b90816040519283928337810184815203915af461059a61056b610841565b9161058c6040519384921515602084015260408084015260608301906102a1565b03601f1981018352826107be565b805190602001fd5b346100ef5760203660031901126100ef5761029f6105be6100d9565b33610c0d565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106163661016d565b909165ffffffffffff8061062942610ff1565b1691169081106104ff576106be926104d06104d89260018060a01b0380891691825f52600260205261066e8960405f209060018060a01b03165f5260205260405f2090565b546040519260208401947f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c865260408501528a166060840152608083015260a082015260a081526104c8816107a2565b156104ed5761029f91610c0d565b346100ef5760203660031901126100ef5761029f6106e86100d9565b33610af1565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061072c57505060015f5b818060d01b03161490565b5f1990808281011161074c576001925f5260205f2001015460301c610721565b61088c565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078157604052565b610751565b6020810190811067ffffffffffffffff82111761078157604052565b60c0810190811067ffffffffffffffff82111761078157604052565b90601f8019910116810190811067ffffffffffffffff82111761078157604052565b604051906107ed82610765565b565b67ffffffffffffffff811161078157601f01601f191660200190565b929192610817826107ef565b9161082560405193846107be565b8294818452818301116100ef578281602093845f960137010152565b3d1561086b573d90610852826107ef565b9161086060405193846107be565b82523d5f602084013e565b606090565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161074c57565b90600163ffffffff8093160191821161074c57565b918051156109b557806020806108de93518301019101610870565b916108e98382610dd6565b926108fa845165ffffffffffff1690565b9065ffffffffffff808516921682811461099c578211918261093c575b505061092a576109279250611091565b90565b5050602001516001600160d01b031690565b90915061094983546108a0565b63ffffffff831614918215610962575b50505f80610917565b61099491925061097d610977610989926108ae565b85610dd6565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610959565b50505050602091909101516001600160d01b0316905090565b5061092791611091565b6001600160a01b039081165f8181526002602090815260408083209590941680835294905291822080546001019055907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6809080a3565b610a1f8383611049565b506004819592951015610add57159384610ac7575b508315610a42575b50505090565b5f929350908291604051610a7a8161058c6020820194630b135d3f60e11b998a875260248401526040604484015260648301906102a1565b51915afa90610a87610841565b82610ab9575b82610a9d575b50505f8080610a3c565b9091506020818051810103126100ef5760200151145f80610a93565b915060208251101591610a8d565b6001600160a01b0383811691161493505f610a34565b634e487b7160e01b5f52602160045260245ffd5b90610b2d610b2882610b138560018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b611385565b9091506001600160d01b031615610bd85765ffffffffffff80610b4f42610ff1565b16911614610bc657610b87610b7882610b138560018060a01b03165f52600360205260405f2090565b610b8142610ff1565b90611590565b5050610b9381836109bf565b6001600160a01b0390811691167f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b60405163291bf4b760e21b8152600490fd5b6040516334b09b3960e11b8152600490fd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b8082526001600160a01b0383811660048401529293916020919082816024817f000000000000000000000000000000000000000000000000000000000000000089165afa908115610d8a575f91610da1575b5015610d8f576040519081526001600160a01b038316600482015281816024817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610d8a575f92610d5d575b505015610d4b57610cce81846106ee565b610d395780610d04610cf58493610b138760018060a01b03165f52600360205260405f2090565b610cfe42610ff1565b9061168f565b5050610d1081856109bf565b1691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b60405163dcdeaba360e01b8152600490fd5b6040516321f5408d60e01b8152600490fd5b610d7c9250803d10610d83575b610d7481836107be565b810190610bea565b5f80610cbd565b503d610d6a565b610c02565b604051630fb9ff9560e41b8152600490fd5b610db89150833d8511610d8357610d7481836107be565b5f610c6a565b60405190610dcb82610765565b5f6020838281520152565b610dfb91610df591610de6610dbe565b50610def610dbe565b50611170565b50611199565b65ffffffffffff81511690602060018060d01b039101511660405191610e2083610765565b8252602082015290565b60ff8114610e3b57610927906111bd565b506040515f80546001918160011c9260018316908115610f1e575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610e8c575b505050610927925003826107be565b925093610eb95f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390565b945f935b828510610ed5575050506109279350015f8080610e7d565b8654858501529586019587955093810193610ebd565b925050506109279491925060ff19168252151560051b015f8080610e7d565b634e487b7160e01b5f52602260045260245ffd5b93607f1693610e56565b60ff8114610f3957610927906111bd565b506040516001805480821c915f90828116908115610fe7575b602090602086108314610f0a5785875286946020860193908115610eeb5750600114610f8757505050610927925003826107be565b925093610fb560015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690565b945f935b828510610fd1575050506109279350015f8080610e7d565b8654858501529586019587955093810193610fb9565b93607f1693610f52565b65ffffffffffff90818111611004571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b60429061102e6111e9565b906040519161190160f01b8352600283015260228201522090565b8151919060418303611079576110729250602082015190606060408401519301515f1a90611303565b9192909190565b50505f9160029190565b906001820180921161074c57565b908154905f918060058111611127575b50915b8281106110da575050806110b85750505f90565b610927916110c86110d3926108a0565b905f5260205f200190565b5460301c90565b90918082169080831860011c820180921161074c57845f5265ffffffffffff808360205f20015416908516105f146111155750915b906110a4565b92915061112190611083565b9061110f565b90611131826113f2565b820391821161074c57845f5265ffffffffffff808360205f20015416908416105f1461115f57505b5f6110a1565b925061116a90611083565b91611159565b8054821015611185575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b906040516111a681610765565b915465ffffffffffff8116835260301c6020830152565b60ff811690601f82116111d75760405191610e2083610765565b604051632cd44ac360e21b8152600490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614806112da575b15611244577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526112d4816107a2565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461121b565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161137a579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8a575f516001600160a01b0381161561137057905f905f90565b505f906001905f90565b5050505f9160039190565b8054806113965750505f905f905f90565b5f1990808281011161074c576113b3925f5260205f200101611199565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b81156113de570490565b634e487b7160e01b5f52601260045260245ffd5b801561152b57806114c46114bd6114b36114a961149f61149561148b61148160016109279a5f908b60801c8061151f575b508060401c80611512575b508060201c80611505575b508060101c806114f8575b508060081c806114eb575b508060041c806114de575b508060021c806114d1575b50821c6114ca575b811c1b61147a818b6113d4565b0160011c90565b61147a818a6113d4565b61147a81896113d4565b61147a81886113d4565b61147a81876113d4565b61147a81866113d4565b61147a81856113d4565b80926113d4565b90611758565b810161146d565b600291509101905f611465565b600491509101905f61145a565b600891509101905f61144f565b601091509101905f611444565b602091509101905f611439565b604091509101905f61142e565b9150506080905f611423565b505f90565b8054680100000000000000008110156107815761155291600182018155611170565b91909161157d57805160209091015160301b65ffffffffffff191665ffffffffffff91909116179055565b634e487b7160e01b5f525f60045260245ffd5b805490811561166d576115b86115b36115a8846108a0565b835f5260205f200190565b611199565b906115c9825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611628946020946115f6610989865165ffffffffffff1690565b0361162d575061161a916110c861160c926108a0565b65ffffffffffff8154169055565b01516001600160d01b031690565b905f90565b90506116569161164c61163e6107e0565b65ffffffffffff9093168352565b5f85830152611530565b61161a565b604051632520601d60e01b8152600490fd5b61168992915061167e61163e6107e0565b5f6020830152611530565b5f905f90565b8054908115611734576116a76115b36115a8846108a0565b906116b8825165ffffffffffff1690565b65ffffffffffff858116949116841061165b57611712946020946116e5610989865165ffffffffffff1690565b03611718575061161a916110c86116fb926108a0565b660100000000000065ffffffffffff825416179055565b90600190565b90506116569161172961163e6107e0565b600182860152611530565b61175192915061174561163e6107e0565b60016020830152611530565b5f90600190565b9080821015611765575090565b90509056fea2646970667358221220e3d0b21c7d8dc3a0d63f417bf3497f69de6a0208097dd894acd7ab6691797d6b64736f6c63430008190033","sourceMap":"583:4371:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;583:4371:91;;;;;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2036:1;583:4371;1975:57;:22;583:4371;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;583:4371:91;1975:10;583:4371;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;1975:22;583:4371;;;;;;;;;;:::i;:::-;1975:57;;:::i;:::-;583:4371;1975:62;583:4371;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;851:39;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;3493:5;583:4371;;:::i;:::-;3481:10;3493:5;:::i;:::-;583:4371;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;-1:-1:-1;;583:4371:91;;;;:::o;:::-;;;;;;-1:-1:-1;;583:4371:91;;;;;6099:41:52;:5;:41;:::i;:::-;6554:47;:8;:47;:::i;:::-;583:4371:91;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5590:13:52;583:4371:91;;;;5625:4:52;583:4371:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;6584:16:52;583:4371:91;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;1214:77;583:4371;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;1214:77;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;1214:77;583:4371;;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;1469:27;;;1465:83;;3164:88;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;1082:76;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;:::-;583:4371;4617:139;;4587:179;:::i;:::-;583:4371;;;;:::i;:::-;3164:88;;;:::i;:::-;3163:89;3159:145;;3327:5;;;:::i;3159:145::-;583:4371;;-1:-1:-1;;;3275:18:91;;583:4371;;3275:18;1465:83;583:4371;;-1:-1:-1;;;1519:18:91;;583:4371;;1519:18;583:4371;;;;;;-1:-1:-1;;583:4371:91;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;416:25;;:::i;:::-;583:4371:91;;;;;;;;;;477:31:75;;583:4371:91;;;;;;;;;;;:::i;:::-;477:31:75;583:4371:91;;477:31:75;;;;;;:::i;:::-;518:79;;;583:4371:91;518:79:75;;583:4371:91;;;;;;-1:-1:-1;;583:4371:91;;;;2370:5;583:4371;;:::i;:::-;2358:10;2370:5;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:91;;;;;;758:37;-1:-1:-1;;;;;583:4371:91;;;;;;;;;;;;;:::i;:::-;;;;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;1469:27;;;1465:83;;2610:87;583:4371;4587:179;583:4371;;;;;;;;;;;;-1:-1:-1;583:4371:91;4713:6;583:4371;;4713:18;583:4371;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;4713:18;583:4371;;;4644:98;583:4371;4644:98;;583:4371;948:75;583:4371;;;948:75;;583:4371;;;948:75;;;583:4371;948:75;;;583:4371;948:75;;;;;4644:98;;;;;:::i;2610:87::-;2609:88;2605:144;;2771:5;;;:::i;583:4371::-;;;;;;-1:-1:-1;;583:4371:91;;;;2923:5;583:4371;;:::i;:::-;2911:10;2923:5;:::i;2099:134::-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;2190:10;583:4371;;;;;;;;;;;;;;;;;;;;;10303:8:60;;;:63;;2225:1:91;-1:-1:-1;10303:63:60;583:4371:91;;;;;;2190:36;2099:134;:::o;10303:63:60:-;583:4371:91;;;;;;;;;;2225:1;14249:109:60;-1:-1:-1;14249:109:60;583:4371:91;-1:-1:-1;14249:109:60;;;583:4371:91;;;10303:63:60;;583:4371:91;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;948:75;583:4371;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;583:4371:91;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;583:4371:91;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;583:4371:91;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1818:604:86:-;;583:4371:91;;1946:17:86;1942:83;;583:4371:91;2049:27:86;583:4371:91;2049:27:86;583:4371:91;;2049:27:86;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;583:4371:91;;;;;;;;;;;;;;;;2148:22:86;;;2144:77;;2235:21;-1:-1:-1;2235:84:86;;;;1818:604;2231:139;;;;1425:34;;;;:::i;:::-;1818:604;:::o;2231:139::-;-1:-1:-1;;2049:27:86;2342:17;583:4371:91;-1:-1:-1;;;;;583:4371:91;1818:604:86;:::o;2235:84::-;583:4371:91;;;2269:16:86;583:4371:91;;2269:16:86;:::i;:::-;583:4371:91;;;2261:24:86;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;583:4371:91;;;;;2289:23:86;583:4371:91;;;;2289:29:86;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:86;2193:17;;;;583:4371:91;-1:-1:-1;;;;;583:4371:91;;-1:-1:-1;1818:604:86;:::o;1942:83::-;1425:34;;;;:::i;4779:173:91:-;-1:-1:-1;;;;;583:4371:91;;;-1:-1:-1;583:4371:91;;;4876:6;583:4371;;;;;;;;;;;;;;;;;;;;;;;;;;;;4920:25;;-1:-1:-1;4920:25:91;4779:173::o;1039:368:54:-;1211:33;;;;:::i;:::-;583:4371:91;;;;;;;;;;1274:35:54;:58;;;;1039:368;1273:127;;;;;1039:368;1254:146;;;1039:368;:::o;1273:127::-;1283:26;583:4371:91;;;;;;;;2041:60:54;;583:4371:91;2041:60:54;;;;;;;;;;;;;;583:4371:91;;;;;;;;;;;:::i;2041:60:54:-;2010:101;;;;;;;:::i;:::-;2129:42;;;1273:127;2129:134;;;1273:127;;;;;;;;2129:134;583:4371:91;;;2041:60:54;583:4371:91;;;2187:29:54;;583:4371:91;;;;2041:60:54;2187:29;583:4371:91;2187:76:54;2129:134;;;;:42;583:4371:91;;2041:60:54;583:4371:91;;2152:19:54;;2129:42;;;1274:58;-1:-1:-1;;;;;583:4371:91;;;;;1313:19:54;;-1:-1:-1;1274:58:54;;;583:4371:91;;;;1283:26:54;583:4371:91;;;;;1283:26:54;583:4371:91;3991:467;;5260:30:86;4105:22:91;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4105:15;583:4371;;;;;;;;;;;;;;;;4105:22;5260:30:86;:::i;:::-;583:4371:91;;-1:-1:-1;;;;;;583:4371:91;4161:16;4157:66;;583:4371;837:15:62;819:34;837:15;819:34;:::i;:::-;583:4371:91;;;4237:35;4233:89;;8167:38:60;4332:22:91;:15;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;4332:22;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;4411:5:91;;;;;;:::i;:::-;-1:-1:-1;;;;;583:4371:91;;;;;4433:18;-1:-1:-1;;4433:18:91;3991:467::o;4233:89::-;583:4371;;-1:-1:-1;;;4295:16:91;;;;;4157:66;583:4371;;-1:-1:-1;;;4200:12:91;;;;;583:4371;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;3512:473;583:4371;;-1:-1:-1;;;3580:37:91;;;-1:-1:-1;;;;;583:4371:91;;;3580:37;;;583:4371;;;3512:473;3580:37;;583:4371;3580:37;583:4371;;;3590:12;583:4371;;3580:37;;;;;;;-1:-1:-1;3580:37:91;;;3512:473;3579:38;;3575:84;;583:4371;;3674:41;;;-1:-1:-1;;;;;583:4371:91;;3580:37;3674:41;;583:4371;3674:41;583:4371;;;3684:14;583:4371;;3674:41;;;;;;;-1:-1:-1;3674:41:91;;;3512:473;3673:42;;;3669:96;;3779:21;;;;:::i;:::-;3775:75;;3860:15;8167:38:60;3860:22:91;:15;;;;583:4371;;;;;;;;4105:10;583:4371;;;;;;;3860:22;819:34:62;837:15;819:34;:::i;:::-;8167:38:60;;:::i;:::-;3939:5:91;;;;;;:::i;:::-;583:4371;;;3961:17;-1:-1:-1;3961:17:91;;3512:473::o;3775:75::-;583:4371;;-1:-1:-1;;;3823:16:91;;3580:37;;3823:16;3669:96;583:4371;;-1:-1:-1;;;3738:16:91;;3580:37;;3738:16;3674:41;;;;;;-1:-1:-1;3674:41:91;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3575:84::-;583:4371;;-1:-1:-1;;;3640:8:91;;3580:37;;3640:8;3580:37;;;;;;;;;;;;;;:::i;:::-;;;;583:4371;;;;;;;:::i;:::-;-1:-1:-1;583:4371:91;;;;;;;:::o;5573:258:86:-;583:4371:91;5573:258:86;11308:22:60;5573:258:86;583:4371:91;;:::i;:::-;;;;:::i;:::-;;11308:22:60;:::i;:::-;583:4371:91;;:::i;:::-;;;;;;5805:17:86;583:4371:91;;;;;5805:17:86;;583:4371:91;;;;;;;;:::i;:::-;;;5805:17:86;5759:65;;583:4371:91;5573:258:86;:::o;3385:267:48:-;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;583:4371:91;;;;;1390:66:48;;;;;;;;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:91;;;1390:66:48;;583:4371:91;;;1390:66:48;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;583:4371:91;1390:66:48;;;;;;;583:4371:91;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:4371:91;;;;1390:66:48;;;;;583:4371:91;1390:66:48;;;;;;;;3385:267;1390:66;3508:46;;1390:66;;3577:15;;;:::i;3504:142::-;-1:-1:-1;583:4371:91;;6584:16:52;1390:66:48;;;;;;-1:-1:-1;;1390:66:48;;;;;;;;3504:142;1390:66;;;;;;;;;583:4371:91;;;1390:66:48;;583:4371:91;;;1390:66:48;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6584:16:52;1390:66:48;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:48;;;;;;;;;;;;;14291:213:58;583:4371:91;14369:24:58;;;;14365:103;;583:4371:91;14291:213:58;:::o;14365:103::-;583:4371:91;;;;14416:41:58;;;;;;14447:2;14416:41;;;583:4371:91;;;;;14416:41:58;4917:176:52;3515:233:53;4917:176:52;5053:20;;:::i;:::-;3515:233:53;;;;-1:-1:-1;;;3515:233:53;;;;;;;;;;;4917:176:52;:::o;2129:766:51:-;583:4371:91;;;2129:766:51;2276:2;2256:22;;2276:2;;2739:25;2539:180;;;;;;;;;;;;;;;-1:-1:-1;2539:180:51;2739:25;;:::i;:::-;2732:32;;;;;:::o;2252:637::-;2795:83;;2811:1;2795:83;2815:35;2795:83;;:::o;583:4371:91:-;;9856:1:60;583:4371:91;;;;;;;:::o;9441:606:60:-;;583:4371:91;;9594:15:60;9559:17;9619:18;;9658:1;9652:7;;9648:234;;9441:606;9906:53;;12919:10;;;;;;-1:-1:-1;;9977:8:60;;;:63;;9559:17;9441:606;:::o;9977:63::-;9992:48;10025:7;;9992:41;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:41;583:4371:91;;;;;12912:230:60;2900:5:57;;;;;2910;;;;583:4371:91;;;;;;;;;14249:109:60;9559:17;14249:109;583:4371:91;14249:109:60;;;9559:17;14249:109;;583:4371:91;;;;;-1:-1:-1;12996:136:60;583:4371:91;;;13055:10:60;12996:136;;12912:230;;;12996:136;13110:7;;;;;;:::i;:::-;12996:136;;;9648:234;9695:14;;;;:::i;:::-;583:4371:91;;;;;;;14249:109:60;9559:17;14249:109;583:4371:91;14249:109:60;;;9559:17;14249:109;;583:4371:91;;;;;9727:48:60;9723:149;583:4371:91;;;9795:10:60;9723:149;9648:234;;;9723:149;9850:7;;;;;:::i;:::-;9723:149;;;583:4371:91;;;;;;;;-1:-1:-1;1390:66:48;;-1:-1:-1;1390:66:48;583:4371:91;;-1:-1:-1;583:4371:91;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;2078:405:48:-;2688:4;2652:40;;2706:11;2715:2;2706:11;;2702:69;;583:4371:91;;;;;;:::i;2702:69:48:-;583:4371:91;;-1:-1:-1;;;2740:20:48;;;;;3845:262:52;3929:4;3938:11;-1:-1:-1;;;;;583:4371:91;3921:28:52;;:63;;3845:262;3917:184;;;4007:22;4000:29;:::o;3917:184::-;583:4371:91;;4204:80:52;;;583:4371:91;2079:95:52;583:4371:91;;4226:11:52;583:4371:91;2079:95:52;;583:4371:91;4239:14:52;2079:95;;;583:4371:91;4255:13:52;2079:95;;;583:4371:91;3929:4:52;2079:95;;;583:4371:91;2079:95:52;4204:80;;;;;:::i;:::-;583:4371:91;4194:91:52;;4060:30;:::o;3921:63::-;3970:14;;3953:13;:31;3921:63;;5140:1530:51;;;6199:66;6186:79;;6182:164;;583:4371:91;;;;;;-1:-1:-1;583:4371:91;;;;;;;;;;;;;;;;;;;6457:24:51;;;;;;;;;-1:-1:-1;6457:24:51;-1:-1:-1;;;;;583:4371:91;;6495:20:51;6491:113;;6614:49;-1:-1:-1;6614:49:51;-1:-1:-1;5140:1530:51;:::o;6491:113::-;6531:62;-1:-1:-1;6531:62:51;6457:24;6531:62;-1:-1:-1;6531:62:51;:::o;6182:164::-;6281:54;;;6297:1;6281:54;6301:30;6281:54;;:::o;10552:388:60:-;583:4371:91;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;583:4371:91;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;583:4371:91;:::i;:::-;;;;;;;14249:109:60;583:4371:91;;;;;10911:11:60;;583:4371:91;;10886:37:60;10870:1;10886:37;;;:::o;583:4371:91:-;;;;;;;:::o;:::-;;;;;;;;;;;;8587:1642:57;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;583:4371:91;10189:23:57;9401:7;8663:1;583:4371:91;;;;10826:16:57;10822:99;;8587:1642;583:4371:91;;;;10938:15:57;10934:96;;8587:1642;583:4371:91;;;;11047:15:57;11043:96;;8587:1642;583:4371:91;;;;11156:15:57;11152:96;;8587:1642;583:4371:91;;;;11265:14:57;11261:93;;8587:1642;583:4371:91;;;;11371:14:57;11367:93;;8587:1642;583:4371:91;;;;11477:14:57;11473:93;;8587:1642;583:4371:91;;;11579:64:57;;8587:1642;583:4371:91;;;9858:10:57;;;;:::i;:::-;583:4371:91;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;583:4371:91;;11579:64:57;;11473:93;583:4371:91;11511:11:57;;583:4371:91;;11473:93:57;;;;11367;583:4371:91;11405:11:57;;583:4371:91;;11367:93:57;;;;11261;583:4371:91;11299:11:57;;583:4371:91;;11261:93:57;;;;11152:96;583:4371:91;11191:12:57;;583:4371:91;;11152:96:57;;;;11043;583:4371:91;11082:12:57;;583:4371:91;;11043:96:57;;;;10934;583:4371:91;10973:12:57;;583:4371:91;;10934:96:57;;;;10822:99;10862:13;;;583:4371:91;10822:99:57;;;;8654:45;8680:8;8663:1;8680:8;:::o;583:4371:91:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;583:4371:91;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;583:4371:91;;;11672:7:60;;;;583:4371:91;11775:28:60;11795:7;;;:::i;:::-;11775:28;14249:109;;;;;;14099:265;;11775:28;583:4371:91;:::i;:::-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;583:4371:91;;12233:11:60;583:4371:91;12027:16:60;583:4371:91;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:91;;;;;;;12063:43:60;12233:11;583:4371:91;-1:-1:-1;;;;;583:4371:91;;;;12225:27:60;583:4371:91;12225:27:60;:::o;12023:189::-;583:4371:91;;12145:52:60;583:4371:91;12155:41:60;583:4371:91;;:::i;:::-;;;;;;;;12155:41:60;583:4371:91;12155:41:60;;;583:4371:91;12145:52:60;:::i;:::-;12023:189;;11873:91;583:4371:91;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;583:4371:91;;;12293:41:60;583:4371:91;;:::i;12293:41:60:-;583:4371:91;12293:41:60;;;583:4371:91;12283:52:60;:::i;:::-;583:4371:91;12349:17:60;583:4371:91;12349:17:60;:::o;11513:870::-;583:4371:91;;;11672:7:60;;;;583:4371:91;11775:28:60;11795:7;;;:::i;583:4371:91:-;;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;583:4371:91;;12233:11:60;583:4371:91;12027:16:60;583:4371:91;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;12063:28::-;583:4371:91;;;;;;;;;;12225:27:60;583:4371:91;12225:27:60;:::o;12023:189::-;583:4371:91;;12145:52:60;583:4371:91;12155:41:60;583:4371:91;;:::i;12155:41:60:-;583:4371:91;12155:41:60;;;583:4371:91;12145:52:60;:::i;11668:709::-;12283:52;583:4371:91;;;12293:41:60;583:4371:91;;:::i;12293:41:60:-;583:4371:91;12293:41:60;;;583:4371:91;12145:52:60;:::i;12283:::-;11678:1;12349:17;583:4371:91;12349:17:60;:::o;2557:104:57:-;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o","linkReferences":{},"immutableReferences":{"51758":[{"start":4642,"length":32}],"51760":[{"start":4829,"length":32}],"51762":[{"start":4588,"length":32}],"51764":[{"start":4721,"length":32}],"51766":[{"start":4759,"length":32}],"51769":[{"start":733,"length":32}],"51772":[{"start":774,"length":32}],"65131":[{"start":1497,"length":32},{"start":3129,"length":32}],"65134":[{"start":590,"length":32},{"start":3212,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"whoRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"whereRegistry\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"stateVariables\":{\"WHERE_REGISTRY\":{\"return\":\"address of the \\\"where\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"where\\\" registry\"}},\"WHO_REGISTRY\":{\"return\":\"address of the \\\"who\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"who\\\" registry\"}},\"nonces\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"return\":\"nonce\",\"returns\":{\"nonce\":\"nonce\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/OptInService.sol\":\"OptInService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743\",\"dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c\",\"dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21\",\"dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69\",\"dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278\",\"dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"whoRegistry","type":"address"},{"internalType":"address","name":"whereRegistry","type":"address"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"See {IERC-5267}."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/OptInService.sol":"OptInService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"keccak256":"0x85a45f3f10014a0f8be41157a32b6a5f905753ea64a4b64e29fc12b7deeecf39","urls":["bzz-raw://c3c74009ce36136b36c77c23935b8e4a7b4f253be2da2be4fb4a916b1ce43743","dweb:/ipfs/QmcH36v3iN7SJJuF73AunLR2LtNxhVJ1wm63ph4dPZ4pcL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92","urls":["bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a","dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x18a7171df639a934592915a520ecb97c5bbc9675a1105607aac8a94e72bf62c6","urls":["bzz-raw://7478e1f13da69a2867ccd883001d836b75620362e743f196376d63ed0c422a1c","dweb:/ipfs/QmWywcQ9TNfwtoqAxbn25d8C5VrV12PrPS9UjtGe6pL2BA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x999f705a027ed6dc2d4e0df2cc4a509852c6bfd11de1c8161bf88832d0503fd0","urls":["bzz-raw://0798def67258d9a3cc20b2b4da7ebf351a5cefe0abfdd665d2d81f8e32f89b21","dweb:/ipfs/QmPEvJosnPfzHNjKvCv2D3891mA2Ww8eUwkqrxBjuYdHCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x6b11eb41a228cca35d4b662b4df69fcd75192851365102690f57b2ac01e83fe6","urls":["bzz-raw://ab006a2983ed350d2af21ddcdd835dcae3b8340086cc4d088460da5abd041f69","dweb:/ipfs/QmbEacDhkJZiGrgzLjB4pNtE8Z1uudjDw1DvcDUTVQFsLG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x4e0932077f2686b7990e10d59deb2535334c0d09e52ef6e57c6ab09eca21c4b1","urls":["bzz-raw://7c00d311032ed4a1743aca7475f3c86ce15cdfc2218108efc3731c03d34a5278","dweb:/ipfs/QmUGGfVwVhaHr5kS4177yKKYiLYzi5qZpkEmvYxBZqazxf"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"}},"version":1},"id":91} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"whoRegistry","type":"address","internalType":"address"},{"name":"whereRegistry","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"WHERE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"WHO_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"increaseNonce","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOptedIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOptedInAt","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"optIn","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optIn","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"who","type":"address","internalType":"address"},{"name":"where","type":"address","internalType":"address"},{"name":"deadline","type":"uint48","internalType":"uint48"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"optOut","inputs":[{"name":"where","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"IncreaseNonce","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptIn","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OptOut","inputs":[{"name":"who","type":"address","indexed":true,"internalType":"address"},{"name":"where","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyOptedIn","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"NotOptedIn","inputs":[]},{"type":"error","name":"NotWhereEntity","inputs":[]},{"type":"error","name":"NotWho","inputs":[]},{"type":"error","name":"OptOutCooldown","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x6101a080604052346101cc57611bac803803809161001d82856101e4565b83398101906060818303126101cc5761003581610207565b61004160208301610207565b604083015190926001600160401b0382116101cc57019280601f850112156101cc5783516001600160401b0381116101d0576040519461008b601f8301601f1916602001876101e4565b8186526020860192602083830101116101cc57815f926020809301855e860101526040938451916100bc86846101e4565b600183526020830191603160f81b83526100d58161021b565b610120526100e2846103bd565b61014052519020918260e05251902080610100524660a05284519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f84528683015260608201524660808201523060a082015260a0815261014960c0826101e4565b5190206080523060c0526101605261018052516116aa90816105028239608051816111a3015260a05181611260015260c0518161116d015260e051816111f201526101005181611218015261012051816102e20152610140518161030b0152610160518181816106130152610bcb0152610180518181816102530152610c310152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176101d057604052565b51906001600160a01b03821682036101cc57565b908151602081105f14610295575090601f815111610255576020815191015160208210610246571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b0381116101d0575f54600181811c911680156103b3575b602082101461039f57601f8111610361575b50602092601f821160011461030257928192935f926102f7575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f806102df565b601f198216935f8052805f20915f5b8681106103495750836001959610610331575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610324565b91926020600181928685015181550194019201610311565b818111156102c5575f805260205f20601f80840160051c809201920160051c03905f5b8281106103925750506102c5565b5f82820155600101610384565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102b3565b908151602081105f146103e8575090601f815111610255576020815191015160208210610246571790565b6001600160401b0381116101d057600154600181811c911680156104f7575b602082101461039f57601f81116104b8575b50602092601f821160011461045757928192935f9261044c575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610433565b601f1982169360015f52805f20915f5b8681106104a05750836001959610610488575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f808061047a565b91926020600181928685015181550194019201610467565b818111156104195760015f5260205f20601f80840160051c809201920160051c03905f5b8281106104ea575050610419565b5f828201556001016104dc565b90607f169061040756fe60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106d7565b610642565b6105fe565b6105dc565b610520565b61041e565b6103c7565b6102ca565b610282565b61023e565b6101d8565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106f9565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576004356001600160a01b03811681036100ef57916024356001600160a01b03811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101d49160040161013f565b9091565b346100ef576020600161022e61023461021f6101f33661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b039536916107e1565b9161086d565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef576102a461029e6100d9565b33610978565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761036e6103067f0000000000000000000000000000000000000000000000000000000000000000610dde565b61032f7f0000000000000000000000000000000000000000000000000000000000000000610ec1565b602060405161033e8282610792565b5f81528161037c81830194601f198301368737604051978897600f60f81b895260e0858a015260e08901906102a6565b9087820360408901526102a6565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b8281106103b057505050500390f35b8351855286955093810193928101926001016103a1565b346100ef5760403660031901126100ef5760206104156103e56100d9565b6103ed6100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef5761042c3661016d565b909165ffffffffffff8061043f42610f79565b169116908110610511576104f4926104e56104ed927f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a69060018060a01b03891690815f5260026020526104a58960405f209060018060a01b03165f5260205260405f2090565b546040519260208401948552604084015260018060a01b038a166060840152608083015260a082015260a081526104dd60c082610792565b519020610fa8565b9236916107e1565b90846109fb565b15610502576102a491610a7c565b638baa579f60e01b5f5260045ffd5b63df4cc36d60e01b5f5260045ffd5b346100ef5760403660031901126100ef576105396100d9565b60243567ffffffffffffffff81116100ef575f9161055c8392369060040161013f565b90816040519283928337810184815203915af43d156105d1576105c93d91610583836107c5565b926105916040519485610792565b83523d5f602085013e5b6105bb6040519384921515602084015260408084015260608301906102a6565b03601f198101835282610792565b805190602001fd5b6105c960609161059b565b346100ef5760203660031901126100ef576102a46105f86100d9565b33610ba0565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106503661016d565b909165ffffffffffff8061066342610f79565b169116908110610511576106c9926104e56104ed927f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c9060018060a01b03891690815f5260026020526104a58960405f209060018060a01b03165f5260205260405f2090565b15610502576102a491610ba0565b346100ef5760203660031901126100ef576102a46106f36100d9565b33610a7c565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061073757505060015f5b818060d01b03161490565b805f19810111610758576001915f525f199060205f2001015460301c61072c565b610833565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078d57604052565b61075d565b90601f8019910116810190811067ffffffffffffffff82111761078d57604052565b604051906107c3604083610792565b565b67ffffffffffffffff811161078d57601f01601f191660200190565b9291926107ed826107c5565b916107fb6040519384610792565b8294818452818301116100ef578281602093845f960137010152565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161075857565b63ffffffff60019116019063ffffffff821161075857565b9180511561096e578060208061088893518301019101610817565b916108938382610d84565b926108a4845165ffffffffffff1690565b9065ffffffffffff8416918265ffffffffffff82161461095557829065ffffffffffff161091826108f5575b50506108e3576108e09250611016565b90565b5050602001516001600160d01b031690565b9091506109028354610847565b63ffffffff83161491821561091b575b50505f806108d0565b61094d91925061093661093061094292610855565b85610d84565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610912565b50505050602091909101516001600160d01b0316905090565b506108e091611016565b60018060a01b031690815f5260026020526109a68160405f209060018060a01b03165f5260205260405f2090565b805460010190556001600160a01b0316907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6805f80a3565b600411156109e757565b634e487b7160e01b5f52602160045260245ffd5b9190823b610a365790610a0d91610fce565b50610a17816109dd565b159182610a2357505090565b6001600160a01b03918216911614919050565b916020926064835f94519060405193630b135d3f60e11b855260048501526040602485015286820190604485015e01915afa630b135d3f60e11b5f5114601f3d11161690565b9060018060a01b03821691825f526003602052610ab4610aaf8360405f209060018060a01b03165f5260205260405f2090565b611308565b9091506001600160d01b031615610b6e5765ffffffffffff80610ad642610f79565b16911614610b5f578181610b28610b1983610b04610b2f9660018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b610b2242610f79565b9061151a565b5050610978565b6001600160a01b0316907f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b63291bf4b760e21b5f5260045ffd5b6334b09b3960e11b5f5260045ffd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b81526001600160a01b0382166004820152909190602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610d39575f91610d4d575b5015610d3e576040516302910f8b60e31b81526001600160a01b0382166004820152602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610d39575f91610d0a575b5015610cfb57610c7981836106f9565b610cec57610cad610c9e82610b048560018060a01b03165f52600360205260405f2090565b610ca742610f79565b906115d8565b5050610cb98183610978565b6001600160a01b0390811691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b63dcdeaba360e01b5f5260045ffd5b6321f5408d60e01b5f5260045ffd5b610d2c915060203d602011610d32575b610d248183610792565b810190610b7d565b5f610c69565b503d610d1a565b610b95565b630fb9ff9560e41b5f5260045ffd5b610d66915060203d602011610d3257610d248183610792565b5f610c03565b60405190610d7982610771565b5f6020838281520152565b90610da091610d91610d6c565b50610d9a610d6c565b50611103565b50602060405191610db083610771565b549165ffffffffffff83169283825260301c918291015260405191610dd483610771565b8252602082015290565b60ff8114610def576108e09061112c565b506040515f5f548060011c91600182168015610eb7575b602084108114610ea35783855284926020840191908115610e8a5750600114610e37575b506108e092500382610792565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b848310610e7357506108e09350015f610e2a565b805482840152859350602090920191600101610e5f565b60ff19168252506108e093151560051b0190505f610e2a565b634e487b7160e01b5f52602260045260245ffd5b92607f1692610e06565b60ff8114610ed2576108e09061112c565b506040515f6001548060011c91600182168015610f6f575b602084108114610ea35783855284926020840191908115610e8a5750600114610f1a57506108e092500382610792565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b848310610f5857506108e09350015f610e2a565b805482840152859350602090920191600101610f44565b92607f1692610eea565b65ffffffffffff8111610f915765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b604290610fb361116a565b906040519161190160f01b8352600283015260228201522090565b8151919060418303610ffe57610ff79250602082015190606060408401519301515f1a90611286565b9192909190565b50505f9160029190565b906001820180921161075857565b908154905f9180600582116110a9575b65ffffffffffff91509291165b828210611069575050806110475750505f90565b6108e09161105761106292610847565b905f5260205f200190565b5460301c90565b909180831860011c8184160190845f528265ffffffffffff8360205f20015416115f146110995750915b90611033565b92506110a490611008565b611093565b6110b282611361565b820391821161075857845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146110eb575065ffffffffffff90611026565b92506110fd65ffffffffffff91611008565b92611026565b8054821015611118575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f821161115b5760405191611148604084610792565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316148061125d575b156111c5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261125760c082610792565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461119c565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116112fd579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d39575f516001600160a01b038116156112f357905f905f90565b505f906001905f90565b5050505f9160039190565b8054908161131a5750505f905f905f90565b815f19810111610758575f525f199060205f2001015460019165ffffffffffff82169160301c90565b811561134d570490565b634e487b7160e01b5f52601260045260245ffd5b60018111156108e057806001600160801b821015611482575b61142861141e61141461140a6114006113f66113e561142f9760048a600160401b6114349c1015611475575b640100000000811015611468575b6201000081101561145b575b61010081101561144e575b6010811015611441575b1015611439575b60030260011c90565b6113ef818b611343565b0160011c90565b6113ef818a611343565b6113ef8189611343565b6113ef8188611343565b6113ef8187611343565b6113ef8186611343565b8093611343565b821190565b900390565b60011b6113dc565b60041c9160021b916113d5565b60081c9160041b916113cb565b60101c9160081b916113c0565b60201c9160101b916113b4565b60401c9160201b916113a6565b505061143461142f61142861141e61141461140a6114006113f66113e56114a98a60801c90565b9850600160401b975061137a9650505050505050565b8054600160401b81101561078d576114dc91600182018155611103565b61150757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805490919080156115c25761153161153c91610847565b835f5260205f200190565b908154926115596115528565ffffffffffff1690565b9460301c90565b9365ffffffffffff80841691168181116115b3570361158a575050805465ffffffffffff169055905f90565b905f90565b61158592506115a861159a6107b4565b65ffffffffffff9093168352565b5f60208301526114bf565b632520601d60e01b5f5260045ffd5b506115d2916115a861159a6107b4565b5f905f90565b8054909190801561165d576115316115ef91610847565b908154926116056115528565ffffffffffff1690565b9365ffffffffffff80841691168181116115b3570361163c575050805465ffffffffffff1666010000000000001790555b90600190565b611658925061164c61159a6107b4565b600160208301526114bf565b611636565b5061166d9161164c61159a6107b4565b5f9060019056fea26469706673582212204ceaef5ed2734206d4af647d8a1dd2d9ef0a13e6d248161ee84ed553fdd45da064736f6c63430008230033","sourceMap":"584:4269:144:-:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;584:4269:144;;;;;;;;;;;;;;;;-1:-1:-1;;;;;584:4269:144;;;;;;;;;;;-1:-1:-1;;584:4269:144;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;584:4269:144;;3501:45:34;;;:::i;:::-;3493:53;;3567:51;;;:::i;:::-;3556:62;;584:4269:144;3642:22:34;;3628:36;;;;584:4269:144;3691:25:34;;3674:42;;;3744:13;3727:30;;584:4269:144;;4304:80:34;584:4269:144;4304:80:34;;2079:95;;;;;;;;584:4269:144;2079:95:34;;;3744:13;2079:95;;;;4378:4;3727:30;2079:95;;;3727:30;4304:80;;;;;;:::i;:::-;584:4269:144;4294:91:34;;2079:95;3767:48;4378:4;4304:80;3825:27;1662:26:144;;1698:30;;584:4269;;;;;;;2079:95:34;584:4269:144;;;;;3727:30:34;584:4269:144;;;;;4304:80:34;584:4269:144;;;;;3628:36:34;584:4269:144;;;;;3674:42:34;584:4269:144;;;;;3493:53:34;584:4269:144;;;;;3556:62:34;584:4269:144;;;;;1662:26;584:4269;;;;;;;;;;1698:30;584:4269;;;;;;;;;;;;-1:-1:-1;584:4269:144;;;;;;-1:-1:-1;584:4269:144;;;;;-1:-1:-1;584:4269:144;;;;;;-1:-1:-1;;584:4269:144;;;;-1:-1:-1;;;;;584:4269:144;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;584:4269:144;;;;;;:::o;2893:342:29:-;;584:4269:144;;3038:4:29;3016:26;;3012:217;3038:4;;;584:4269:144;;1854:4:29;584:4269:144;;1840:18:29;1836:74;;3038:4;584:4269:144;;;;2079:95:34;3038:4:29;584:4269:144;;;;1951:36:29;3058:27;:::o;584:4269:144:-;;;;3038:4:29;584:4269:144;;;;;1951:36:29;3058:27;:::o;1836:74::-;584:4269:144;3038:4:29;584:4269:144;;;1881:18:29;;;;;;;;;;;;584:4269:144;;;;;;;;;;;;;;;;3532:13:34;584:4269:144;;;;;;1854:4:29;584:4269:144;-1:-1:-1;;584:4269:144;;;1881:18:29;;;;3012:217;-1:-1:-1;;;;;584:4269:144;;;;3532:13:34;584:4269:144;;;;;;;;;;;3012:217:29;3038:4;584:4269:144;;;;;;;;;;3012:217:29;584:4269:144;3038:4:29;584:4269:144;;;;;;;;;;;;3532:13:34;584:4269:144;;;;;;;;;;;;;;;;;;;3532:13:34;584:4269:144;1390:66:29;3176:42;:::o;584:4269:144:-;;;;-1:-1:-1;584:4269:144;;;;;;;;;;3532:13:34;584:4269:144;;;3532:13:34;584:4269:144;;3532:13:34;584:4269:144;;;;;;;;;;;;;;;;;;;;;3532:13:34;584:4269:144;1390:66:29;3176:42;:::o;584:4269:144:-;;;;;;;;;;;;;;;;;;;;;;;3038:4:29;584:4269:144;;;;;;;;;;;;;;;;;;;;;;;3532:13:34;584:4269:144;;3038:4:29;3532:13:34;584:4269:144;;;;;;;;;;;;;;;;3532:13:34;584:4269:144;;;;;;;;;;;3532:13:34;584:4269:144;;;;;;;;;;;;3532:13:34;584:4269:144;;;;;3532:13:34;584:4269:144;;;;;;;;2893:342:29;;584:4269:144;;3038:4:29;3016:26;;3012:217;3038:4;;;584:4269:144;;1854:4:29;584:4269:144;;1840:18:29;1836:74;;3038:4;584:4269:144;;;;2079:95:34;3038:4:29;584:4269:144;;;;1951:36:29;3058:27;:::o;3012:217::-;-1:-1:-1;;;;;584:4269:144;;;;;;;;;;;;;;;;3012:217:29;3038:4;584:4269:144;;;;;;;;;;3012:217:29;584:4269:144;3038:4:29;584:4269:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:29;3176:42;:::o;584:4269:144:-;;;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1390:66:29;3176:42;:::o;584:4269:144:-;;;;;;;;;;;;;;;;;;;;;;;3038:4:29;584:4269:144;;;;;;;;;;;;;;;;;;;;;;;;;;3038:4:29;584:4269:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063220d32d4146100d4578063530e1d43146100cf5780636d0fae4a146100ca5780638247a97c146100c557806384b0196e146100c05780639333fbda146100bb57806393f79bc3146100b65780639f86fd85146100b1578063b1138ad1146100ac578063c4b5d62c146100a7578063ced44ba7146100a25763d46104831461009d575f80fd5b6106d7565b610642565b6105fe565b6105dc565b610520565b61041e565b6103c7565b6102ca565b610282565b61023e565b6101d8565b610109565b600435906001600160a01b03821682036100ef57565b5f80fd5b602435906001600160a01b03821682036100ef57565b346100ef5760403660031901126100ef5760206101356101276100d9565b61012f6100f3565b906106f9565b6040519015158152f35b9181601f840112156100ef5782359167ffffffffffffffff83116100ef57602083818601950101116100ef57565b9060806003198301126100ef576004356001600160a01b03811681036100ef57916024356001600160a01b03811681036100ef579160443565ffffffffffff811681036100ef57916064359067ffffffffffffffff82116100ef576101d49160040161013f565b9091565b346100ef576020600161022e61023461021f6101f33661016d565b969290949193888060a01b03165f526003895260405f209060018060a01b03165f5260205260405f2090565b92868060d01b039536916107e1565b9161086d565b1614604051908152f35b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef5760203660031901126100ef576102a461029e6100d9565b33610978565b005b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b346100ef575f3660031901126100ef5761036e6103067f0000000000000000000000000000000000000000000000000000000000000000610dde565b61032f7f0000000000000000000000000000000000000000000000000000000000000000610ec1565b602060405161033e8282610792565b5f81528161037c81830194601f198301368737604051978897600f60f81b895260e0858a015260e08901906102a6565b9087820360408901526102a6565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b8281106103b057505050500390f35b8351855286955093810193928101926001016103a1565b346100ef5760403660031901126100ef5760206104156103e56100d9565b6103ed6100f3565b6001600160a01b039182165f9081526002855260408082209290931681526020919091522090565b54604051908152f35b346100ef5761042c3661016d565b909165ffffffffffff8061043f42610f79565b169116908110610511576104f4926104e56104ed927f7830334d17a05ab8aeca8f1778e27182208fc2d454ac7b38a4edc2069ee3a4a69060018060a01b03891690815f5260026020526104a58960405f209060018060a01b03165f5260205260405f2090565b546040519260208401948552604084015260018060a01b038a166060840152608083015260a082015260a081526104dd60c082610792565b519020610fa8565b9236916107e1565b90846109fb565b15610502576102a491610a7c565b638baa579f60e01b5f5260045ffd5b63df4cc36d60e01b5f5260045ffd5b346100ef5760403660031901126100ef576105396100d9565b60243567ffffffffffffffff81116100ef575f9161055c8392369060040161013f565b90816040519283928337810184815203915af43d156105d1576105c93d91610583836107c5565b926105916040519485610792565b83523d5f602085013e5b6105bb6040519384921515602084015260408084015260608301906102a6565b03601f198101835282610792565b805190602001fd5b6105c960609161059b565b346100ef5760203660031901126100ef576102a46105f86100d9565b33610ba0565b346100ef575f3660031901126100ef576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ef576106503661016d565b909165ffffffffffff8061066342610f79565b169116908110610511576106c9926104e56104ed927f6ab5200f1123a8d51d1695a9e5e757267926b53c6359f90b8873cc7dcc30ea2c9060018060a01b03891690815f5260026020526104a58960405f209060018060a01b03165f5260205260405f2090565b15610502576102a491610ba0565b346100ef5760203660031901126100ef576102a46106f36100d9565b33610a7c565b6001600160a01b039081165f908152600360209081526040808320939094168252919091522080548061073757505060015f5b818060d01b03161490565b805f19810111610758576001915f525f199060205f2001015460301c61072c565b610833565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761078d57604052565b61075d565b90601f8019910116810190811067ffffffffffffffff82111761078d57604052565b604051906107c3604083610792565b565b67ffffffffffffffff811161078d57601f01601f191660200190565b9291926107ed826107c5565b916107fb6040519384610792565b8294818452818301116100ef578281602093845f960137010152565b908160209103126100ef575163ffffffff811681036100ef5790565b634e487b7160e01b5f52601160045260245ffd5b5f1981019190821161075857565b63ffffffff60019116019063ffffffff821161075857565b9180511561096e578060208061088893518301019101610817565b916108938382610d84565b926108a4845165ffffffffffff1690565b9065ffffffffffff8416918265ffffffffffff82161461095557829065ffffffffffff161091826108f5575b50506108e3576108e09250611016565b90565b5050602001516001600160d01b031690565b9091506109028354610847565b63ffffffff83161491821561091b575b50505f806108d0565b61094d91925061093661093061094292610855565b85610d84565b5165ffffffffffff1690565b65ffffffffffff1690565b115f80610912565b50505050602091909101516001600160d01b0316905090565b506108e091611016565b60018060a01b031690815f5260026020526109a68160405f209060018060a01b03165f5260205260405f2090565b805460010190556001600160a01b0316907f8ed32926585579e6191b145240df788165f4957e1135f30a00e08ee8feb9d6805f80a3565b600411156109e757565b634e487b7160e01b5f52602160045260245ffd5b9190823b610a365790610a0d91610fce565b50610a17816109dd565b159182610a2357505090565b6001600160a01b03918216911614919050565b916020926064835f94519060405193630b135d3f60e11b855260048501526040602485015286820190604485015e01915afa630b135d3f60e11b5f5114601f3d11161690565b9060018060a01b03821691825f526003602052610ab4610aaf8360405f209060018060a01b03165f5260205260405f2090565b611308565b9091506001600160d01b031615610b6e5765ffffffffffff80610ad642610f79565b16911614610b5f578181610b28610b1983610b04610b2f9660018060a01b03165f52600360205260405f2090565b9060018060a01b03165f5260205260405f2090565b610b2242610f79565b9061151a565b5050610978565b6001600160a01b0316907f1629cd9ad365627cf8408d19c50224af8f3213c1a18ae48062d92e22bddf7de55f80a3565b63291bf4b760e21b5f5260045ffd5b6334b09b3960e11b5f5260045ffd5b908160209103126100ef575180151581036100ef5790565b6040513d5f823e3d90fd5b6040516302910f8b60e31b81526001600160a01b0382166004820152909190602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610d39575f91610d4d575b5015610d3e576040516302910f8b60e31b81526001600160a01b0382166004820152602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610d39575f91610d0a575b5015610cfb57610c7981836106f9565b610cec57610cad610c9e82610b048560018060a01b03165f52600360205260405f2090565b610ca742610f79565b906115d8565b5050610cb98183610978565b6001600160a01b0390811691167f9b730d5b907ee509de729817a2bb37e404418ba569b3a50f36192372f973cb415f80a3565b63dcdeaba360e01b5f5260045ffd5b6321f5408d60e01b5f5260045ffd5b610d2c915060203d602011610d32575b610d248183610792565b810190610b7d565b5f610c69565b503d610d1a565b610b95565b630fb9ff9560e41b5f5260045ffd5b610d66915060203d602011610d3257610d248183610792565b5f610c03565b60405190610d7982610771565b5f6020838281520152565b90610da091610d91610d6c565b50610d9a610d6c565b50611103565b50602060405191610db083610771565b549165ffffffffffff83169283825260301c918291015260405191610dd483610771565b8252602082015290565b60ff8114610def576108e09061112c565b506040515f5f548060011c91600182168015610eb7575b602084108114610ea35783855284926020840191908115610e8a5750600114610e37575b506108e092500382610792565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b848310610e7357506108e09350015f610e2a565b805482840152859350602090920191600101610e5f565b60ff19168252506108e093151560051b0190505f610e2a565b634e487b7160e01b5f52602260045260245ffd5b92607f1692610e06565b60ff8114610ed2576108e09061112c565b506040515f6001548060011c91600182168015610f6f575b602084108114610ea35783855284926020840191908115610e8a5750600114610f1a57506108e092500382610792565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b848310610f5857506108e09350015f610e2a565b805482840152859350602090920191600101610f44565b92607f1692610eea565b65ffffffffffff8111610f915765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b604290610fb361116a565b906040519161190160f01b8352600283015260228201522090565b8151919060418303610ffe57610ff79250602082015190606060408401519301515f1a90611286565b9192909190565b50505f9160029190565b906001820180921161075857565b908154905f9180600582116110a9575b65ffffffffffff91509291165b828210611069575050806110475750505f90565b6108e09161105761106292610847565b905f5260205f200190565b5460301c90565b909180831860011c8184160190845f528265ffffffffffff8360205f20015416115f146110995750915b90611033565b92506110a490611008565b611093565b6110b282611361565b820391821161075857845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146110eb575065ffffffffffff90611026565b92506110fd65ffffffffffff91611008565b92611026565b8054821015611118575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b60ff811690601f821161115b5760405191611148604084610792565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316148061125d575b156111c5577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261125760c082610792565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461119c565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116112fd579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d39575f516001600160a01b038116156112f357905f905f90565b505f906001905f90565b5050505f9160039190565b8054908161131a5750505f905f905f90565b815f19810111610758575f525f199060205f2001015460019165ffffffffffff82169160301c90565b811561134d570490565b634e487b7160e01b5f52601260045260245ffd5b60018111156108e057806001600160801b821015611482575b61142861141e61141461140a6114006113f66113e561142f9760048a600160401b6114349c1015611475575b640100000000811015611468575b6201000081101561145b575b61010081101561144e575b6010811015611441575b1015611439575b60030260011c90565b6113ef818b611343565b0160011c90565b6113ef818a611343565b6113ef8189611343565b6113ef8188611343565b6113ef8187611343565b6113ef8186611343565b8093611343565b821190565b900390565b60011b6113dc565b60041c9160021b916113d5565b60081c9160041b916113cb565b60101c9160081b916113c0565b60201c9160101b916113b4565b60401c9160201b916113a6565b505061143461142f61142861141e61141461140a6114006113f66113e56114a98a60801c90565b9850600160401b975061137a9650505050505050565b8054600160401b81101561078d576114dc91600182018155611103565b61150757815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805490919080156115c25761153161153c91610847565b835f5260205f200190565b908154926115596115528565ffffffffffff1690565b9460301c90565b9365ffffffffffff80841691168181116115b3570361158a575050805465ffffffffffff169055905f90565b905f90565b61158592506115a861159a6107b4565b65ffffffffffff9093168352565b5f60208301526114bf565b632520601d60e01b5f5260045ffd5b506115d2916115a861159a6107b4565b5f905f90565b8054909190801561165d576115316115ef91610847565b908154926116056115528565ffffffffffff1690565b9365ffffffffffff80841691168181116115b3570361163c575050805465ffffffffffff1666010000000000001790555b90600190565b611658925061164c61159a6107b4565b600160208301526114bf565b611636565b5061166d9161164c61159a6107b4565b5f9060019056fea26469706673582212204ceaef5ed2734206d4af647d8a1dd2d9ef0a13e6d248161ee84ed553fdd45da064736f6c63430008230033","sourceMap":"584:4269:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;584:4269:144;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;584:4269:144;;;;;;:::o;:::-;;;;;;-1:-1:-1;;584:4269:144;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;584:4269:144;;;;;;;-1:-1:-1;;;;;584:4269:144;;;;;;;;;-1:-1:-1;;;;;584:4269:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;2013:1;584:4269;1952:57;:22;584:4269;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;584:4269:144;1952:10;584:4269;;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;;;;1952:22;584:4269;;;;;;;;;;:::i;:::-;1952:57;;:::i;:::-;584:4269;1952:62;584:4269;;;;;;;;;;;;-1:-1:-1;;584:4269:144;;;;;;852:39;-1:-1:-1;;;;;584:4269:144;;;;;;;;;;;;-1:-1:-1;;584:4269:144;;;;3392:5;584:4269;;:::i;:::-;3380:10;3392:5;:::i;:::-;584:4269;;;;;;;;;;;;;;;;;;-1:-1:-1;584:4269:144;;;;;;;;-1:-1:-1;;584:4269:144;;;;:::o;:::-;;;;;;-1:-1:-1;;584:4269:144;;;;;6183:41:34;:5;:41;:::i;:::-;6638:47;:8;:47;:::i;:::-;584:4269:144;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5674:13:34;;584:4269:144;;;;5709:4:34;584:4269:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;584:4269:144;;;;;;;;6668:16:34;584:4269:144;;;;;;;;;-1:-1:-1;;584:4269:144;;;;;1215:77;584:4269;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;584:4269:144;;;-1:-1:-1;584:4269:144;;;1215:77;584:4269;;;;;;;;;;;;-1:-1:-1;584:4269:144;;;;;;;1215:77;584:4269;;;;;;;;;;;;;;:::i;:::-;837:15:43;;584:4269:144;837:15:43;819:34;837:15;819:34;:::i;:::-;584:4269:144;;;1456:27;;;1452:83;;3077:88;3119:34;4486:179;584:4269;3119:34;1083:76;584:4269;;;;;;;;;;-1:-1:-1;584:4269:144;4612:6;584:4269;;4612:18;584:4269;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;;;;4612:18;584:4269;;;4543:98;584:4269;4543:98;;584:4269;;;;949:75;;584:4269;;;;;;;;949:75;;;584:4269;949:75;;;584:4269;949:75;;;;;4543:98;;;;;;:::i;:::-;584:4269;4516:139;;4486:179;:::i;:::-;584:4269;;;;:::i;:::-;3077:88;;;:::i;:::-;3076:89;3072:145;;3240:5;;;:::i;3072:145::-;3188:18;;;-1:-1:-1;3188:18:144;584:4269;-1:-1:-1;3188:18:144;1452:83;1506:18;;;-1:-1:-1;1506:18:144;584:4269;-1:-1:-1;1506:18:144;584:4269;;;;;;-1:-1:-1;;584:4269:144;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;584:4269:144;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:128;;;;584:4269:144;;;;477:31:128;584:4269:144;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;477:31:128;;584:4269:144;;;;;;;;;;;:::i;:::-;477:31:128;584:4269:144;;477:31:128;;;;;;:::i;:::-;518:79;;;584:4269:144;518:79:128;;584:4269:144;477:31:128;584:4269:144;;;;;;;;;;-1:-1:-1;;584:4269:144;;;;2333:5;584:4269;;:::i;:::-;2321:10;2333:5;:::i;584:4269::-;;;;;;-1:-1:-1;;584:4269:144;;;;;;759:37;-1:-1:-1;;;;;584:4269:144;;;;;;;;;;;;;:::i;:::-;837:15:43;;584:4269:144;837:15:43;819:34;837:15;819:34;:::i;:::-;584:4269:144;;;1456:27;;;1452:83;;2555:87;2597:33;4486:179;584:4269;2597:33;949:75;584:4269;;;;;;;;;;-1:-1:-1;584:4269:144;4612:6;584:4269;;4612:18;584:4269;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;;;;2555:87;2554:88;2550:144;;2716:5;;;:::i;584:4269::-;;;;;;-1:-1:-1;;584:4269:144;;;;2854:5;584:4269;;:::i;:::-;2842:10;2854:5;:::i;2076:134::-;-1:-1:-1;;;;;584:4269:144;;;-1:-1:-1;584:4269:144;;;2167:10;584:4269;;;;;;;;;;;;;;;;;;;;;17347:8:41;;;:63;;2202:1:144;-1:-1:-1;17347:63:41;584:4269:144;;;;;;2167:36;2076:134;:::o;17347:63:41:-;584:4269:144;;;;;;;;2202:1;21341:115:41;-1:-1:-1;21341:115:41;584:4269:144;;21341:115:41;584:4269:144;-1:-1:-1;21341:115:41;;;584:4269:144;;;17347:63:41;;584:4269:144;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;584:4269:144;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;584:4269:144;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;584:4269:144;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;1818:604:139:-;;584:4269:144;;1946:17:139;1942:83;;584:4269:144;2049:27:139;584:4269:144;2049:27:139;584:4269:144;;2049:27:139;;;;;;:::i;:::-;2120:14;;;;;:::i;:::-;584:4269:144;;;;;;;;;;;;;;;;;;2148:22:139;2144:77;;2235:21;;584:4269:144;;2235:21:139;:84;;;;1818:604;2231:139;;;;1425:34;;;;:::i;:::-;1818:604;:::o;2231:139::-;-1:-1:-1;;2049:27:139;2342:17;584:4269:144;-1:-1:-1;;;;;584:4269:144;1818:604:139;:::o;2235:84::-;584:4269:144;;;2269:16:139;584:4269:144;;2269:16:139;:::i;:::-;584:4269:144;;;2261:24:139;:57;;;;;2235:84;;;;;;;2261:57;2289:29;2298:8;;;2289:18;2298:8;2289:23;2298:8;;:::i;:::-;2289:18;;:::i;:::-;584:4269:144;;;;;2289:23:139;584:4269:144;;;;2289:29:139;;2261:57;;;;2144:77;-1:-1:-1;;;;2049:27:139;2193:17;;;;584:4269:144;-1:-1:-1;;;;;584:4269:144;;-1:-1:-1;1818:604:139;:::o;1942:83::-;1425:34;;;;:::i;4678:173:144:-;584:4269;;;;;;;;-1:-1:-1;584:4269:144;4775:6;584:4269;;4775:18;584:4269;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;;;;4775:18;584:4269;;;;;;-1:-1:-1;;;;;584:4269:144;;4819:25;-1:-1:-1;;4819:25:144;4678:173::o;584:4269::-;;-1:-1:-1;584:4269:144;;;:::o;:::-;;;;;;;;;;;;1485:429:36;;;1611:18;;;;1698:33;;;;:::i;:::-;584:4269:144;;;;:::i;:::-;1752:33:36;:56;;;;1745:63;;;:::o;1752:56::-;-1:-1:-1;;;;;584:4269:144;;;;;1789:19:36;;1745:63;-1:-1:-1;1745:63:36:o;1607:301::-;584:4269:144;3180:708:36;584:4269:144;3180:708:36;584:4269:144;;;;3180:708:36;;;3092:34;;;;3180:708;;;;;;;;;;;;;;;;;;;;;;;3092:34;;;584:4269:144;3180:708:36;;;;;;;1839:58;:::o;3890:467:144:-;;584:4269;;;;;;;;;-1:-1:-1;584:4269:144;4004:10;584:4269;;5236:30:139;4004:22:144;584:4269;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;;;;4004:22;5236:30:139;:::i;:::-;584:4269:144;;-1:-1:-1;;;;;;584:4269:144;4060:16;4056:66;;584:4269;837:15:43;819:34;837:15;819:34;:::i;:::-;584:4269:144;;;4136:35;4132:89;;4231:15;;15211:38:41;4231:22:144;:15;;4310:5;4231:15;584:4269;;;;;;;;4004:10;584:4269;;;;;;;4231:15;584:4269;;;;;;;;;;;;;;;;4231:22;819:34:43;837:15;819:34;:::i;:::-;15211:38:41;;:::i;:::-;4310:5:144;;;:::i;:::-;-1:-1:-1;;;;;584:4269:144;;4332:18;-1:-1:-1;;4332:18:144;3890:467::o;4132:89::-;4194:16;;;-1:-1:-1;4194:16:144;;-1:-1:-1;4194:16:144;4056:66;4099:12;;;-1:-1:-1;4099:12:144;;-1:-1:-1;4099:12:144;584:4269;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;3411:473;584:4269;;-1:-1:-1;;;3479:37:144;;-1:-1:-1;;;;;584:4269:144;;3479:37;;;584:4269;3411:473;;;3479:37;584:4269;;;;;3479:37;584:4269;3489:12;-1:-1:-1;;;;;584:4269:144;3479:37;;;;;;;-1:-1:-1;3479:37:144;;;3411:473;3478:38;;3474:84;;584:4269;;-1:-1:-1;;;3573:41:144;;-1:-1:-1;;;;;584:4269:144;;3479:37;3573:41;;584:4269;3479:37;584:4269;;;;;3573:41;584:4269;3583:14;-1:-1:-1;;;;;584:4269:144;3573:41;;;;;;;-1:-1:-1;3573:41:144;;;3411:473;3572:42;;3568:96;;3678:21;;;;:::i;:::-;3674:75;;15211:38:41;3759:22:144;:15;;;584:4269;;;;;;;;4004:10;584:4269;;;;;;;3759:22;819:34:43;837:15;819:34;:::i;:::-;15211:38:41;;:::i;:::-;3838:5:144;;;;;;:::i;:::-;-1:-1:-1;;;;;584:4269:144;;;;;3860:17;-1:-1:-1;;3860:17:144;3411:473::o;3674:75::-;3722:16;;;-1:-1:-1;3722:16:144;3479:37;-1:-1:-1;3722:16:144;3568:96;3637:16;;;-1:-1:-1;3637:16:144;3479:37;-1:-1:-1;3637:16:144;3573:41;;;;3479:37;3573:41;3479:37;3573:41;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;3474:84::-;3539:8;;;-1:-1:-1;3539:8:144;3479:37;-1:-1:-1;3539:8:144;3479:37;;;;;;;;;;;;;;:::i;:::-;;;;584:4269;;;;;;;:::i;:::-;-1:-1:-1;584:4269:144;;;;;;;:::o;5535:258:139:-;;18354:22:41;5535:258:139;584:4269:144;;:::i;:::-;;;;:::i;:::-;;18354:22:41;:::i;:::-;584:4269:144;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5721:65:139;;584:4269:144;5535:258:139;:::o;3376:267:29:-;1390:66;3499:46;;1390:66;;3568:15;;;:::i;3495:142::-;584:4269:144;;;;;1390:66:29;;;;;;;;;;;;3495:142;1390:66;;;;;;;584:4269:144;;;1390:66:29;;584:4269:144;;;1390:66:29;;;;;;;;;;;;;;;;;;;:::i;:::-;584:4269:144;1390:66:29;;;584:4269:144;-1:-1:-1;1390:66:29;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:29;;;;;;;;;;-1:-1:-1;;1390:66:29;;;-1:-1:-1;1390:66:29;;;;;;;;-1:-1:-1;1390:66:29;;;;584:4269:144;;;;1390:66:29;;;;;584:4269:144;1390:66:29;;;;;;;;3376:267;1390:66;3499:46;;1390:66;;3568:15;;;:::i;3495:142::-;584:4269:144;;;-1:-1:-1;6668:16:34;1390:66:29;;6668:16:34;1390:66:29;;6668:16:34;1390:66:29;;;;;;3495:142;1390:66;;;;;;;584:4269:144;;;1390:66:29;;584:4269:144;;;1390:66:29;;;;;;;;;;;;;;;;;;:::i;:::-;6668:16:34;1390:66:29;;;;;-1:-1:-1;1390:66:29;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1390:66:29;;;;;6668:16:34;1390:66:29;;;;;;;;;;14293:213:39;584:4269:144;14371:24:39;;14367:103;;584:4269:144;;14293:213:39;:::o;14367:103::-;14418:41;;;;;14449:2;14418:41;584:4269:144;;;;14418:41:39;;5017:176:34;4037:249:35;5017:176:34;5153:20;;:::i;:::-;4037:249:35;;;;-1:-1:-1;;;4037:249:35;;;;;;;;;;;5017:176:34;:::o;2419:778:33:-;584:4269:144;;;2419:778:33;2609:2;2589:22;;2609:2;;3041:25;2825:196;;;;;;;;;;;;;;;-1:-1:-1;2825:196:33;3041:25;;:::i;:::-;3034:32;;;;;:::o;2585:606::-;3097:83;;3113:1;3097:83;3117:35;3097:83;;:::o;584:4269:144:-;;16900:1:41;584:4269:144;;;;;;;:::o;16485:606:41:-;;584:4269:144;;16638:15:41;16603:17;16663:18;;16702:1;16696:7;;16692:234;;16485:606;584:4269:144;16950:53:41;;;;584:4269:144;20014:10:41;;;;;;-1:-1:-1;;17021:8:41;;;:63;;16603:17;16485:606;:::o;17021:63::-;17036:48;17069:7;;17036:41;17069:7;;:::i;:::-;17036:41;21341:115;;;;;;21191:271;;17036:41;584:4269:144;;;;;20007:230:41;6021:5:38;;;;;584:4269:144;;6011:5:38;;;584:4269:144;21341:115:41;;16603:17;21341:115;;584:4269:144;21341:115:41;;16603:17;21341:115;;584:4269:144;;20095:35:41;20091:136;584:4269:144;;;20150:10:41;20091:136;;20007:230;;;20091:136;20205:7;;;;;:::i;:::-;20091:136;;16692:234;16739:14;;;:::i;:::-;584:4269:144;;;;;;;21341:115:41;16603:17;21341:115;584:4269:144;21341:115:41;;16603:17;21341:115;;584:4269:144;;;;;16771:48:41;16767:149;584:4269:144;;;16839:10:41;584:4269:144;16839:10:41;16692:234;;16767:149;16894:7;;;584:4269:144;16894:7:41;;:::i;:::-;16767:149;16692:234;;584:4269:144;;;;;;;;-1:-1:-1;1390:66:29;;-1:-1:-1;1390:66:29;584:4269:144;;-1:-1:-1;584:4269:144;:::o;:::-;;;;;;;;;;;;2080:380:29;2665:4;2629:40;;2683:13;2692:4;2683:13;;2679:71;;584:4269:144;;;;;;;:::i;:::-;2313:4:29;584:4269:144;;;;;;;;;;;2328:106:29;;;2080:380;:::o;2679:71::-;2719:20;;;-1:-1:-1;2719:20:29;;-1:-1:-1;2719:20:29;3945:262:34;4029:4;4038:11;-1:-1:-1;;;;;584:4269:144;4021:28:34;;:63;;3945:262;4017:184;;;4107:22;4100:29;:::o;4017:184::-;584:4269:144;;4304:80:34;;;584:4269:144;2079:95:34;584:4269:144;;4326:11:34;584:4269:144;2079:95:34;;584:4269:144;4339:14:34;2079:95;;;584:4269:144;4355:13:34;2079:95;;;584:4269:144;4029:4:34;2079:95;;;584:4269:144;2079:95:34;4304:80;;;;;;:::i;:::-;584:4269:144;4294:91:34;;4160:30;:::o;4021:63::-;4070:14;;4053:13;:31;4021:63;;7129:1551:33;;;8209:66;8196:79;;8192:164;;584:4269:144;;;;;;-1:-1:-1;584:4269:144;;;;;;;;;;;;;;;;;;;8467:24:33;;;;;;;;;-1:-1:-1;8467:24:33;-1:-1:-1;;;;;584:4269:144;;8505:20:33;8501:113;;8624:49;-1:-1:-1;8624:49:33;-1:-1:-1;7129:1551:33;:::o;8501:113::-;8541:62;-1:-1:-1;8541:62:33;8467:24;8541:62;-1:-1:-1;8541:62:33;:::o;8192:164::-;8291:54;;;8307:1;8291:54;8311:30;8291:54;;:::o;17596:389:41:-;584:4269:144;;;17772:8:41;;;17796:20;;17734:17;17796:20;17734:17;17796:20;17734:17;17796:20;:::o;17768:211::-;584:4269:144;;;;;;;;17734:17:41;21341:115;584:4269:144;;21341:115:41;;17734:17;21341:115;;;584:4269:144;17915:1:41;584:4269:144;;;;;;;17931:37:41;:::o;584:4269:144:-;;;;;;;:::o;:::-;;;;;;;;;;;;20859:5181:38;21025:1;21020:6;;;21016:53;;21996:14;21025:1;-1:-1:-1;;;22057:16:38;;;22053:92;;20859:5181;25606:18;25496;25386;25277;25166;25057;23152:13;26016:6;22162:15;22677:6;22162:15;-1:-1:-1;;;25995:28:38;22162:15;;;22158:90;;20859:5181;22272:7;22265:15;;;22261:90;;20859:5181;22375:7;22368:15;;;22364:89;;20859:5181;22477:6;22470:14;;;22466:87;;20859:5181;22577:6;22570:14;;;22566:87;;20859:5181;22670:14;;22666:61;;20859:5181;23153:1;584:4269:144;;;;;23152:13:38;25063:6;;;;:::i;:::-;584:4269:144;;;;;25057:18:38;25172:6;;;;:::i;25166:18::-;25283:6;;;;:::i;25277:18::-;25392:6;;;;:::i;25386:18::-;25502:6;;;;:::i;25496:18::-;25612:6;;;;:::i;25606:18::-;26016:6;;;:::i;:::-;26011:11;;;584:4269:144;25995:28:38;584:4269:144;;20859:5181:38;:::o;22666:61::-;584:4269:144;;22666:61:38;;22566:87;584:4269:144;;;;;22566:87:38;;;22466;584:4269:144;;;;;22466:87:38;;;22364:89;584:4269:144;;;;;22364:89:38;;;22261:90;584:4269:144;;;;;22261:90:38;;;22158;584:4269:144;;;;;22158:90:38;;;22053:92;22093:10;;25995:28;26016:6;25606:18;25496;25386;25277;25166;25057;23152:13;22093:10;;584:4269:144;;;;22093:10:38;22053:92;-1:-1:-1;;;;584:4269:144;-1:-1:-1;22053:92:38;;-1:-1:-1;;;;;;;22053:92:38;584:4269:144;;;-1:-1:-1;;;584:4269:144;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;584:4269:144;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;18559:922:41;584:4269:144;;18559:922:41;;;18766:7;;;;18838;18818:28;18838:7;;:::i;:::-;18818:28;21341:115;;;;;;21191:271;;18818:28;584:4269:144;;;;;;;;;;;;;;;;;;;;;;;;;19005:13:41;;;19001:89;;19153:14;;;-1:-1:-1;;584:4269:144;;;;;;19325:25:41;584:4269:144;19325:25:41;:::o;19187:19::-;19325:25;584:4269:144;19325:25:41;:::o;19149:163::-;19245:52;584:4269:144;;19255:41:41;584:4269:144;;:::i;:::-;;;;;;;;19255:41:41;584:4269:144;19255:41:41;;;584:4269:144;19245:52:41;:::i;19001:89::-;19045:30;;;584:4269:144;19045:30:41;;584:4269:144;19045:30:41;18762:713;584:4269:144;19381:52:41;584:4269:144;19391:41:41;584:4269:144;;:::i;19381:52:41:-;584:4269:144;19447:17:41;584:4269:144;19447:17:41;:::o;18559:922::-;584:4269:144;;18559:922:41;;;18766:7;;;;18838;18818:28;18838:7;;:::i;18818:28::-;584:4269:144;;;;;;;;;;;;;;;;;;;19005:13:41;;;19001:89;;19153:14;;;-1:-1:-1;;584:4269:144;;;;;;;;19187:19:41;19325:25;584:4269:144;19325:25:41;:::o;19149:163::-;19245:52;584:4269:144;;19255:41:41;584:4269:144;;:::i;19255:41:41:-;584:4269:144;19255:41:41;;;584:4269:144;19245:52:41;:::i;:::-;19149:163;;18762:713;584:4269:144;19381:52:41;584:4269:144;19391:41:41;584:4269:144;;:::i;19381:52:41:-;18772:1;19447:17;584:4269:144;19447:17:41;:::o","linkReferences":{},"immutableReferences":{"67163":[{"start":1555,"length":32},{"start":3019,"length":32}],"67166":[{"start":595,"length":32},{"start":3121,"length":32}],"7935":[{"start":4515,"length":32}],"7937":[{"start":4704,"length":32}],"7939":[{"start":4461,"length":32}],"7941":[{"start":4594,"length":32}],"7943":[{"start":4632,"length":32}],"7946":[{"start":738,"length":32}],"7949":[{"start":779,"length":32}]}},"methodIdentifiers":{"WHERE_REGISTRY()":"6d0fae4a","WHO_REGISTRY()":"c4b5d62c","eip712Domain()":"84b0196e","increaseNonce(address)":"8247a97c","isOptedIn(address,address)":"220d32d4","isOptedInAt(address,address,uint48,bytes)":"530e1d43","nonces(address,address)":"9333fbda","optIn(address)":"b1138ad1","optIn(address,address,uint48,bytes)":"ced44ba7","optOut(address)":"d4610483","optOut(address,address,uint48,bytes)":"93f79bc3","staticDelegateCall(address,bytes)":"9f86fd85"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"whoRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"whereRegistry\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOptedIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhereEntity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWho\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OptOutCooldown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"IncreaseNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"OptOut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WHERE_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WHO_REGISTRY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"increaseNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"isOptedIn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"isOptedInAt\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optIn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"deadline\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"where\",\"type\":\"address\"}],\"name\":\"optOut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in a uint of `bits` size.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"IncreaseNonce(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"OptOut(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"increaseNonce(address)\":{\"details\":\"It can be used to invalidate a given signature.\",\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"isOptedIn(address,address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in\"}},\"isOptedInAt(address,address,uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get if the \\\"who\\\" is opted-in at\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"returns\":{\"_0\":\"if the \\\"who\\\" is opted-in at the given timestamp\"}},\"optIn(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optIn(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"optOut(address)\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\"}},\"optOut(address,address,uint48,bytes)\":{\"params\":{\"deadline\":\"time point until the signature is valid (inclusively)\",\"signature\":\"signature of the \\\"who\\\"\",\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}}},\"stateVariables\":{\"WHERE_REGISTRY\":{\"return\":\"address of the \\\"where\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"where\\\" registry\"}},\"WHO_REGISTRY\":{\"return\":\"address of the \\\"who\\\" registry\",\"returns\":{\"_0\":\"address of the \\\"who\\\" registry\"}},\"nonces\":{\"params\":{\"where\":\"address of the \\\"where\\\" entity\",\"who\":\"address of the \\\"who\\\"\"},\"return\":\"nonce\",\"returns\":{\"nonce\":\"nonce\"}}},\"version\":1},\"userdoc\":{\"events\":{\"IncreaseNonce(address,address)\":{\"notice\":\"Emitted when the nonce of a \\\"who\\\" to a \\\"where\\\" entity is increased.\"},\"OptIn(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts into a \\\"where\\\" entity.\"},\"OptOut(address,address)\":{\"notice\":\"Emitted when a \\\"who\\\" opts out from a \\\"where\\\" entity.\"}},\"kind\":\"user\",\"methods\":{\"WHERE_REGISTRY()\":{\"notice\":\"Get the address of the registry where to opt-in.\"},\"WHO_REGISTRY()\":{\"notice\":\"Get the \\\"who\\\" registry's address.\"},\"increaseNonce(address)\":{\"notice\":\"Increase the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"isOptedIn(address,address)\":{\"notice\":\"Check if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity.\"},\"isOptedInAt(address,address,uint48,bytes)\":{\"notice\":\"Get if a given \\\"who\\\" is opted-in to a particular \\\"where\\\" entity at a given timestamp using a hint.\"},\"nonces(address,address)\":{\"notice\":\"Get the nonce of a given \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address)\":{\"notice\":\"Opt-in a calling \\\"who\\\" to a particular \\\"where\\\" entity.\"},\"optIn(address,address,uint48,bytes)\":{\"notice\":\"Opt-in a \\\"who\\\" to a particular \\\"where\\\" entity with a signature.\"},\"optOut(address)\":{\"notice\":\"Opt-out a calling \\\"who\\\" from a particular \\\"where\\\" entity.\"},\"optOut(address,address,uint48,bytes)\":{\"notice\":\"Opt-out a \\\"who\\\" from a particular \\\"where\\\" entity with a signature.\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/service/OptInService.sol\":\"OptInService\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1271.sol\":{\"keccak256\":\"0x66c7ec42c6c43712be2107a50ab4529379bc76a632b425babec698d9da921ac6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dce2778f0b638adfc5ba29c2c618c855fe725fa74a16846386aa1d56a834aa04\",\"dweb:/ipfs/QmPV9oWnzQdi58od266j62xvviavLNHqKLZfm6k2K1qy9E\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC7913.sol\":{\"keccak256\":\"0xe5a126930df1d54e4a6dd5fea09010c4a7db0ea974c6c17a1e6082879f5a032b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f58f5a90328536a6c68289916bfa4ed653d871319c7b2a416ab3f6263c4f2f5\",\"dweb:/ipfs/Qmaa9DmgUA16Urz5fuF4RbFz2NaVpNLV41ddwykSdasFUd\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ShortStrings.sol\":{\"keccak256\":\"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99\",\"dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4\",\"dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x0d53049a9969f2bc5cb88b32c909e2729a5fa157d258305b42b502427ad492c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eacca39a3f50c665454866342bb05f10cc1e87c2bbd73dda981a6a0de1978fb0\",\"dweb:/ipfs/QmbFKMUT5BXtCdA2SCof9GuasrVhoGzaLUQG3gUvGDtdoE\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xffca8f1d67bf069a2237a4631c6af36b141f33fb8e894ef58e6a4f72fc098f77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff8f533667f82b8c3ddd46e6bc26f7c7c1eb73890a2136393aab8a0043e09e6\",\"dweb:/ipfs/QmSPHM9fj6VL2V5owMbARubCZKe6d6kho9CVGEcpzkELNL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0x7ee52140593640e44d1f538b32c1d402f74960358001f9ae3d16878a956473fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2d129d70624f3e2cf2312b06bfc4431512687893a1ade28063cc6af261af3e8\",\"dweb:/ipfs/QmUWfDMGRtXusd9WD5Pgdo9cRhf9AVP78sDPrcoCDp1yhb\"]},\"src/contracts/service/OptInService.sol\":{\"keccak256\":\"0x407f68f97ac1ba8a863eb65d74e8a62dfc4bba65cfa3d42ae942b4a7a7824efc\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://13c25d7fa97b33f130c26c918ba6e6c14c6a8a898eab96e25cbea45f60505255\",\"dweb:/ipfs/QmTduBWvBDhAbjHJE9CJybzdJBwV8qPKpPoFARMHNCXAsE\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x042cca2276f023a1ca4602b61705f8386947b61dddf03ffa5bee24123e6b1a3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96bfbc31d810dfe87891edeadc14b93bd4bf385047ab4c59e99a92ab7b6e9505\",\"dweb:/ipfs/QmdYGSSPLtuui8rYqWMSgtqvXFVZcS6TLnZKJx1CxKLbTm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"whoRegistry","type":"address"},{"internalType":"address","name":"whereRegistry","type":"address"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyOptedIn"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"NotOptedIn"},{"inputs":[],"type":"error","name":"NotWhereEntity"},{"inputs":[],"type":"error","name":"NotWho"},{"inputs":[],"type":"error","name":"OptOutCooldown"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"IncreaseNonce","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptIn","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":true},{"internalType":"address","name":"where","type":"address","indexed":true}],"type":"event","name":"OptOut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"WHERE_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WHO_REGISTRY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"increaseNonce"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"isOptedIn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"isOptedInAt","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optIn"},{"inputs":[{"internalType":"address","name":"who","type":"address"},{"internalType":"address","name":"where","type":"address"},{"internalType":"uint48","name":"deadline","type":"uint48"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"where","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"optOut"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"}],"devdoc":{"kind":"dev","methods":{"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"increaseNonce(address)":{"details":"It can be used to invalidate a given signature.","params":{"where":"address of the \"where\" entity"}},"isOptedIn(address,address)":{"params":{"where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in"}},"isOptedInAt(address,address,uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get if the \"who\" is opted-in at","where":"address of the \"where\" entity","who":"address of the \"who\""},"returns":{"_0":"if the \"who\" is opted-in at the given timestamp"}},"optIn(address)":{"params":{"where":"address of the \"where\" entity"}},"optIn(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"optOut(address)":{"params":{"where":"address of the \"where\" entity"}},"optOut(address,address,uint48,bytes)":{"params":{"deadline":"time point until the signature is valid (inclusively)","signature":"signature of the \"who\"","where":"address of the \"where\" entity","who":"address of the \"who\""}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}}},"version":1},"userdoc":{"kind":"user","methods":{"WHERE_REGISTRY()":{"notice":"Get the address of the registry where to opt-in."},"WHO_REGISTRY()":{"notice":"Get the \"who\" registry's address."},"increaseNonce(address)":{"notice":"Increase the nonce of a given \"who\" to a particular \"where\" entity."},"isOptedIn(address,address)":{"notice":"Check if a given \"who\" is opted-in to a particular \"where\" entity."},"isOptedInAt(address,address,uint48,bytes)":{"notice":"Get if a given \"who\" is opted-in to a particular \"where\" entity at a given timestamp using a hint."},"nonces(address,address)":{"notice":"Get the nonce of a given \"who\" to a particular \"where\" entity."},"optIn(address)":{"notice":"Opt-in a calling \"who\" to a particular \"where\" entity."},"optIn(address,address,uint48,bytes)":{"notice":"Opt-in a \"who\" to a particular \"where\" entity with a signature."},"optOut(address)":{"notice":"Opt-out a calling \"who\" from a particular \"where\" entity."},"optOut(address,address,uint48,bytes)":{"notice":"Opt-out a \"who\" from a particular \"where\" entity with a signature."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/","forge-std/=dependencies/forge-std-1.16.1/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/service/OptInService.sol":"OptInService"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1271.sol":{"keccak256":"0x66c7ec42c6c43712be2107a50ab4529379bc76a632b425babec698d9da921ac6","urls":["bzz-raw://dce2778f0b638adfc5ba29c2c618c855fe725fa74a16846386aa1d56a834aa04","dweb:/ipfs/QmPV9oWnzQdi58od266j62xvviavLNHqKLZfm6k2K1qy9E"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC7913.sol":{"keccak256":"0xe5a126930df1d54e4a6dd5fea09010c4a7db0ea974c6c17a1e6082879f5a032b","urls":["bzz-raw://2f58f5a90328536a6c68289916bfa4ed653d871319c7b2a416ab3f6263c4f2f5","dweb:/ipfs/Qmaa9DmgUA16Urz5fuF4RbFz2NaVpNLV41ddwykSdasFUd"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ShortStrings.sol":{"keccak256":"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c","urls":["bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99","dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/EIP712.sol":{"keccak256":"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4","urls":["bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4","dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/SignatureChecker.sol":{"keccak256":"0x0d53049a9969f2bc5cb88b32c909e2729a5fa157d258305b42b502427ad492c6","urls":["bzz-raw://eacca39a3f50c665454866342bb05f10cc1e87c2bbd73dda981a6a0de1978fb0","dweb:/ipfs/QmbFKMUT5BXtCdA2SCof9GuasrVhoGzaLUQG3gUvGDtdoE"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/Checkpoints.sol":{"keccak256":"0xffca8f1d67bf069a2237a4631c6af36b141f33fb8e894ef58e6a4f72fc098f77","urls":["bzz-raw://4ff8f533667f82b8c3ddd46e6bc26f7c7c1eb73890a2136393aab8a0043e09e6","dweb:/ipfs/QmSPHM9fj6VL2V5owMbARubCZKe6d6kho9CVGEcpzkELNL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0x7ee52140593640e44d1f538b32c1d402f74960358001f9ae3d16878a956473fd","urls":["bzz-raw://d2d129d70624f3e2cf2312b06bfc4431512687893a1ade28063cc6af261af3e8","dweb:/ipfs/QmUWfDMGRtXusd9WD5Pgdo9cRhf9AVP78sDPrcoCDp1yhb"],"license":"MIT"},"src/contracts/service/OptInService.sol":{"keccak256":"0x407f68f97ac1ba8a863eb65d74e8a62dfc4bba65cfa3d42ae942b4a7a7824efc","urls":["bzz-raw://13c25d7fa97b33f130c26c918ba6e6c14c6a8a898eab96e25cbea45f60505255","dweb:/ipfs/QmTduBWvBDhAbjHJE9CJybzdJBwV8qPKpPoFARMHNCXAsE"],"license":"BUSL-1.1"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/service/IOptInService.sol":{"keccak256":"0x042cca2276f023a1ca4602b61705f8386947b61dddf03ffa5bee24123e6b1a3e","urls":["bzz-raw://96bfbc31d810dfe87891edeadc14b93bd4bf385047ab4c59e99a92ab7b6e9505","dweb:/ipfs/QmdYGSSPLtuui8rYqWMSgtqvXFVZcS6TLnZKJx1CxKLbTm"],"license":"MIT"}},"version":1},"id":145} \ No newline at end of file diff --git a/ethexe/ethereum/abi/POAMiddleware.json b/ethexe/ethereum/abi/POAMiddleware.json index 854fe421aca..1add2248715 100644 --- a/ethexe/ethereum/abi/POAMiddleware.json +++ b/ethexe/ethereum/abi/POAMiddleware.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"disableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"enableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"executeSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"registerVault","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setValidators","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unregisterVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061125a5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161119390816100c78239608051818181610bdd0152610cac0152f35b6001600160401b0319166001600160401b039081175f51602061125a5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;805:6592:164;;7983:34:30;7979:146;;-1:-1:-1;805:6592:164;;;;;;;;1052:13:60;805:6592:164;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;8085:29:30;;805:6592:164;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;805:6592:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;805:6592;4535:25;;;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;2985:17;;805:6592;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2357:1:29;805:6592:164;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;805:6592:164;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;;;;;;;805:6592;4535:25;;805:6592;;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;4535:25;;;;805:6592;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;4301:16:30;805:6592:164;;4724:16:30;;:34;;;;805:6592:164;4803:1:30;4788:16;:50;;;;805:6592:164;4853:13:30;:30;;;;805:6592:164;4849:91:30;;;805:6592:164;4803:1:30;-1:-1:-1;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;7075:37:164;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;-1:-1:-1;;1800:178:73;;;;;;-1:-1:-1;;1800:178:73;;1707:277;7075:37:164;-1:-1:-1;;;;;;;;;;;1106:66:164;;;1806:14;805:6592;;-1:-1:-1;;;;;805:6592:164;;;;;;1795:8;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5064:101:30;;805:6592:164;5064:101:30;-1:-1:-1;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;;;;;;805:6592:164;5140:14:30;805:6592:164;;;4803:1:30;805:6592:164;;5140:14:30;805:6592:164;4977:67:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;4849:91;6496:23;;;805:6592:164;4906:23:30;805:6592:164;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;805:6592:164;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;;;;:::i;:::-;1333:66:164;805:6592;;;;-1:-1:-1;;;;;805:6592:164;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;805:6592:164;;3975:40:29;805:6592:164;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;1333:66;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;-1:-1:-1;805:6592:164;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;6429:44:30;;;;;805:6592:164;6425:105:30;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;6959:1:30;;-1:-1:-1;;;;;805:6592:164;6891:76:30;;:::i;6959:1::-;6654:20;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;2249:17;7075:37;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;7075:37:164:-;1106:66;;-1:-1:-1;;;;;;;;;;;1106:66:164;7284:37;805:6592;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;2303:62:29;;:::i;7284:37:164:-;1333:66;1106;2249:17;;805:6592;2229:17;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;1955:1;805:6592;;6654:20:30;805:6592:164;6429:44:30;1955:1:164;805:6592;;-1:-1:-1;;;;;805:6592:164;6448:25:30;;6429:44;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;4824:6:60;-1:-1:-1;;;;;805:6592:164;4815:4:60;4807:23;4803:145;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;4803:145:60;4578:29;;;805:6592:164;4908:29:60;805:6592:164;;4908:29:60;805:6592:164;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;805:6592:164;4392:4:60;4384:23;;;:120;;;;805:6592:164;4367:251:60;;;2303:62:29;;:::i;:::-;805:6592:164;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5865:52:60;;805:6592:164;;5865:52:60;;;805:6592:164;-1:-1:-1;5861:437:60;;1805:47:53;;;;805:6592:164;6227:60:60;805:6592:164;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;2407:36:53;-1:-1:-1;;2407:36:53;805:6592:164;;2458:15:53;:11;;805:6592:164;4065:25:66;;4107:55;4065:25;;;;;;805:6592:164;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;805:6592:164:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;805:6592:164;6159:70:53;6199:19;;;805:6592:164;6199:19:53;805:6592:164;;6199:19:53;1744:119;1805:47;;;805:6592:164;1805:47:53;805:6592:164;;;;1805:47:53;5955:120:60;6026:34;;;805:6592:164;6026:34:60;805:6592:164;;;;6026:34:60;5865:52;;;;805:6592:164;5865:52:60;;805:6592:164;5865:52:60;;;;;;805:6592:164;5865:52:60;;;:::i;:::-;;;805:6592:164;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;4462:42:60;;;-1:-1:-1;4384:120:60;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;;;;:::o;5424:95::-;805:6592;;-1:-1:-1;;;5487:25:164;;805:6592;5487:25;;;805:6592;;;;;;-1:-1:-1;;;805:6592:164;;;;;;4535:25;3405:215:29;-1:-1:-1;;;;;805:6592:164;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;805:6592:164;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;805:6592:164;;-1:-1:-1;2763:40:29;7082:141:30;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;4437:582:66;;4609:8;;-1:-1:-1;805:6592:164;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;805:6592:164;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;805:6592:164;;;;4933:24:66;805:6592:164;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":3037,"length":32},{"start":3244,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","setValidators(address[])":"9300c926","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"setValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setValidators(address[])\":{\"details\":\"Sets validators for POA middleware.\",\"params\":{\"validators\":\"The addresses of validators to set.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/POAMiddleware.sol\":\"POAMiddleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9\",\"dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75\",\"dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"pure","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"pure","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"pure","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setValidators"},{"inputs":[],"stateMutability":"pure","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setValidators(address[])":{"details":"Sets validators for POA middleware.","params":{"validators":"The addresses of validators to set."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"registerOperator()":{"notice":"This function can be called only be operator themselves."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IPOAMiddleware.sol":{"keccak256":"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819","urls":["bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9","dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/POAMiddleware.sol":{"keccak256":"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab","urls":["bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75","dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":79428,"exportedSymbols":{"Gear":[84099],"IMiddleware":[74131],"IPOAMiddleware":[74411],"MapWithTimeData":[84387],"OwnableUpgradeable":[42322],"POAMiddleware":[79427],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:7324:164","nodes":[{"id":78847,"nodeType":"PragmaDirective","src":"74:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":78849,"nodeType":"ImportDirective","src":"100:101:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":78848,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78851,"nodeType":"ImportDirective","src":"202:140:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":78850,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78853,"nodeType":"ImportDirective","src":"343:88:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":78852,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"351:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78855,"nodeType":"ImportDirective","src":"432:80:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":78854,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"440:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78857,"nodeType":"ImportDirective","src":"513:74:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":78856,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"521:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78859,"nodeType":"ImportDirective","src":"588:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":78858,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"596:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78861,"nodeType":"ImportDirective","src":"637:54:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":74412,"symbolAliases":[{"foreign":{"id":78860,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74411,"src":"645:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78863,"nodeType":"ImportDirective","src":"692:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":78862,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"700:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78865,"nodeType":"ImportDirective","src":"737:66:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":84388,"symbolAliases":[{"foreign":{"id":78864,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84387,"src":"745:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79427,"nodeType":"ContractDefinition","src":"805:6592:164","nodes":[{"id":78878,"nodeType":"VariableDeclaration","src":"1066:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1091:12:164","scope":79427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1066:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":78877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1106:66:164","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":78881,"nodeType":"VariableDeclaration","src":"1289:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1314:16:164","scope":79427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":78880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1333:66:164","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":78889,"nodeType":"FunctionDefinition","src":"1474:53:164","nodes":[],"body":{"id":78888,"nodeType":"Block","src":"1488:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78885,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1498:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78887,"nodeType":"ExpressionStatement","src":"1498:22:164"}]},"documentation":{"id":78882,"nodeType":"StructuredDocumentation","src":"1406:63:164","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78883,"nodeType":"ParameterList","parameters":[],"src":"1485:2:164"},"returnParameters":{"id":78884,"nodeType":"ParameterList","parameters":[],"src":"1488:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78923,"nodeType":"FunctionDefinition","src":"1533:294:164","nodes":[],"body":{"id":78922,"nodeType":"Block","src":"1601:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78898,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78892,"src":"1626:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1634:5:164","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"1626:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78897,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1611:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78901,"nodeType":"ExpressionStatement","src":"1611:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78902,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"1650:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78904,"nodeType":"ExpressionStatement","src":"1650:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":78906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1710:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":78905,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79402,"src":"1694:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78908,"nodeType":"ExpressionStatement","src":"1694:50:164"},{"assignments":[78911],"declarations":[{"constant":false,"id":78911,"mutability":"mutable","name":"$","nameLocation":"1770:1:164","nodeType":"VariableDeclaration","scope":78922,"src":"1754:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78910,"nodeType":"UserDefinedTypeName","pathNode":{"id":78909,"name":"Storage","nameLocations":["1754:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"1754:7:164"},"referencedDeclaration":73928,"src":"1754:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78914,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78912,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"1774:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1754:30:164"},{"expression":{"id":78920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78915,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78911,"src":"1795:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1797:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"1795:8:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78918,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78892,"src":"1806:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"1806:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1795:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78921,"nodeType":"ExpressionStatement","src":"1795:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":78895,"kind":"modifierInvocation","modifierName":{"id":78894,"name":"initializer","nameLocations":["1589:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"1589:11:164"},"nodeType":"ModifierInvocation","src":"1589:11:164"}],"name":"initialize","nameLocation":"1542:10:164","parameters":{"id":78893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78892,"mutability":"mutable","name":"_params","nameLocation":"1573:7:164","nodeType":"VariableDeclaration","scope":78923,"src":"1553:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":78891,"nodeType":"UserDefinedTypeName","pathNode":{"id":78890,"name":"InitParams","nameLocations":["1553:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"1553:10:164"},"referencedDeclaration":73890,"src":"1553:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"1552:29:164"},"returnParameters":{"id":78896,"nodeType":"ParameterList","parameters":[],"src":"1601:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78965,"nodeType":"FunctionDefinition","src":"1900:373:164","nodes":[],"body":{"id":78964,"nodeType":"Block","src":"1958:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78933,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"1983:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78932,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1968:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78936,"nodeType":"ExpressionStatement","src":"1968:23:164"},{"assignments":[78939],"declarations":[{"constant":false,"id":78939,"mutability":"mutable","name":"oldStorage","nameLocation":"2018:10:164","nodeType":"VariableDeclaration","scope":78964,"src":"2002:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78938,"nodeType":"UserDefinedTypeName","pathNode":{"id":78937,"name":"Storage","nameLocations":["2002:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2002:7:164"},"referencedDeclaration":73928,"src":"2002:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78942,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78940,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2031:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2031:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2002:39:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":78944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2068:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":78943,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79402,"src":"2052:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2052:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78946,"nodeType":"ExpressionStatement","src":"2052:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":78948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2131:36:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""},"value":"middleware.storage.POAMiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""}],"id":78947,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79426,"src":"2112:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2112:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78950,"nodeType":"ExpressionStatement","src":"2112:56:164"},{"assignments":[78953],"declarations":[{"constant":false,"id":78953,"mutability":"mutable","name":"newStorage","nameLocation":"2195:10:164","nodeType":"VariableDeclaration","scope":78964,"src":"2179:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78952,"nodeType":"UserDefinedTypeName","pathNode":{"id":78951,"name":"Storage","nameLocations":["2179:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2179:7:164"},"referencedDeclaration":73928,"src":"2179:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78956,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78954,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2208:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2179:39:164"},{"expression":{"id":78962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78957,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78953,"src":"2229:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2240:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2229:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78960,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78939,"src":"2249:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2249:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2229:37:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78963,"nodeType":"ExpressionStatement","src":"2229:37:164"}]},"documentation":{"id":78924,"nodeType":"StructuredDocumentation","src":"1833:62:164","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78927,"kind":"modifierInvocation","modifierName":{"id":78926,"name":"onlyOwner","nameLocations":["1931:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"1931:9:164"},"nodeType":"ModifierInvocation","src":"1931:9:164"},{"arguments":[{"hexValue":"32","id":78929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1955:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78930,"kind":"modifierInvocation","modifierName":{"id":78928,"name":"reinitializer","nameLocations":["1941:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"1941:13:164"},"nodeType":"ModifierInvocation","src":"1941:16:164"}],"name":"reinitialize","nameLocation":"1909:12:164","parameters":{"id":78925,"nodeType":"ParameterList","parameters":[],"src":"1921:2:164"},"returnParameters":{"id":78931,"nodeType":"ParameterList","parameters":[],"src":"1958:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78975,"nodeType":"FunctionDefinition","src":"2438:84:164","nodes":[],"body":{"id":78974,"nodeType":"Block","src":"2520:2:164","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":78966,"nodeType":"StructuredDocumentation","src":"2279:154:164","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":78972,"kind":"modifierInvocation","modifierName":{"id":78971,"name":"onlyOwner","nameLocations":["2510:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2510:9:164"},"nodeType":"ModifierInvocation","src":"2510:9:164"}],"name":"_authorizeUpgrade","nameLocation":"2447:17:164","overrides":{"id":78970,"nodeType":"OverrideSpecifier","overrides":[],"src":"2501:8:164"},"parameters":{"id":78969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78968,"mutability":"mutable","name":"newImplementation","nameLocation":"2473:17:164","nodeType":"VariableDeclaration","scope":78975,"src":"2465:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78967,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:27:164"},"returnParameters":{"id":78973,"nodeType":"ParameterList","parameters":[],"src":"2520:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78991,"nodeType":"FunctionDefinition","src":"2653:124:164","nodes":[],"body":{"id":78990,"nodeType":"Block","src":"2724:53:164","nodes":[],"statements":[{"expression":{"id":78988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78984,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79354,"src":"2734:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74403_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":78985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2734:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":78986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2748:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74402,"src":"2734:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78987,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78979,"src":"2760:10:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2734:36:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":78989,"nodeType":"ExpressionStatement","src":"2734:36:164"}]},"baseFunctions":[74410],"documentation":{"id":78976,"nodeType":"StructuredDocumentation","src":"2528:120:164","text":" @dev Sets validators for POA middleware.\n @param validators The addresses of validators to set."},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":78982,"kind":"modifierInvocation","modifierName":{"id":78981,"name":"onlyOwner","nameLocations":["2714:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2714:9:164"},"nodeType":"ModifierInvocation","src":"2714:9:164"}],"name":"setValidators","nameLocation":"2662:13:164","parameters":{"id":78980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78979,"mutability":"mutable","name":"validators","nameLocation":"2693:10:164","nodeType":"VariableDeclaration","scope":78991,"src":"2676:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78977,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78978,"nodeType":"ArrayTypeName","src":"2676:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2675:29:164"},"returnParameters":{"id":78983,"nodeType":"ParameterList","parameters":[],"src":"2724:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79006,"nodeType":"FunctionDefinition","src":"2783:129:164","nodes":[],"body":{"id":79005,"nodeType":"Block","src":"2865:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79001,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79354,"src":"2882:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74403_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2882:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74402,"src":"2882:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":79000,"id":79004,"nodeType":"Return","src":"2875:30:164"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2792:14:164","parameters":{"id":78996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2807:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78992,"name":"uint48","nodeType":"ElementaryTypeName","src":"2807:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2815:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2815:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:17:164"},"returnParameters":{"id":79000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2847:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78997,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78998,"nodeType":"ArrayTypeName","src":"2847:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2846:18:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79016,"nodeType":"FunctionDefinition","src":"2918:91:164","nodes":[],"body":{"id":79015,"nodeType":"Block","src":"2968:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79011,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2985:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2985:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2985:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79010,"id":79014,"nodeType":"Return","src":"2978:24:164"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2927:6:164","parameters":{"id":79007,"nodeType":"ParameterList","parameters":[],"src":"2933:2:164"},"returnParameters":{"id":79010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79016,"src":"2959:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79008,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2958:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79026,"nodeType":"FunctionDefinition","src":"3168:94:164","nodes":[],"body":{"id":79025,"nodeType":"Block","src":"3220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79021,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79024,"nodeType":"ExpressionStatement","src":"3230:25:164"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3177:11:164","parameters":{"id":79017,"nodeType":"ParameterList","parameters":[],"src":"3188:2:164"},"returnParameters":{"id":79020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79026,"src":"3212:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79018,"name":"uint48","nodeType":"ElementaryTypeName","src":"3212:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3211:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79036,"nodeType":"FunctionDefinition","src":"3268:104:164","nodes":[],"body":{"id":79035,"nodeType":"Block","src":"3330:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3347:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79031,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3340:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3340:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79034,"nodeType":"ExpressionStatement","src":"3340:25:164"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3277:21:164","parameters":{"id":79027,"nodeType":"ParameterList","parameters":[],"src":"3298:2:164"},"returnParameters":{"id":79030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79036,"src":"3322:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79028,"name":"uint48","nodeType":"ElementaryTypeName","src":"3322:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3321:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79046,"nodeType":"FunctionDefinition","src":"3378:102:164","nodes":[],"body":{"id":79045,"nodeType":"Block","src":"3438:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79041,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3448:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3448:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79044,"nodeType":"ExpressionStatement","src":"3448:25:164"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3387:19:164","parameters":{"id":79037,"nodeType":"ParameterList","parameters":[],"src":"3406:2:164"},"returnParameters":{"id":79040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79046,"src":"3430:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79038,"name":"uint48","nodeType":"ElementaryTypeName","src":"3430:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3429:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79056,"nodeType":"FunctionDefinition","src":"3486:99:164","nodes":[],"body":{"id":79055,"nodeType":"Block","src":"3543:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3560:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79051,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3553:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79054,"nodeType":"ExpressionStatement","src":"3553:25:164"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3495:16:164","parameters":{"id":79047,"nodeType":"ParameterList","parameters":[],"src":"3511:2:164"},"returnParameters":{"id":79050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79056,"src":"3535:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79048,"name":"uint48","nodeType":"ElementaryTypeName","src":"3535:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3534:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79066,"nodeType":"FunctionDefinition","src":"3591:98:164","nodes":[],"body":{"id":79065,"nodeType":"Block","src":"3647:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3664:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79061,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3657:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3657:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79064,"nodeType":"ExpressionStatement","src":"3657:25:164"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3600:15:164","parameters":{"id":79057,"nodeType":"ParameterList","parameters":[],"src":"3615:2:164"},"returnParameters":{"id":79060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79066,"src":"3639:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79058,"name":"uint48","nodeType":"ElementaryTypeName","src":"3639:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3638:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79076,"nodeType":"FunctionDefinition","src":"3695:105:164","nodes":[],"body":{"id":79075,"nodeType":"Block","src":"3758:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79071,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3768:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3768:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79074,"nodeType":"ExpressionStatement","src":"3768:25:164"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3704:22:164","parameters":{"id":79067,"nodeType":"ParameterList","parameters":[],"src":"3726:2:164"},"returnParameters":{"id":79070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79076,"src":"3750:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79068,"name":"uint48","nodeType":"ElementaryTypeName","src":"3750:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3749:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79086,"nodeType":"FunctionDefinition","src":"3806:109:164","nodes":[],"body":{"id":79085,"nodeType":"Block","src":"3873:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3890:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79081,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3883:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3883:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79084,"nodeType":"ExpressionStatement","src":"3883:25:164"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3815:25:164","parameters":{"id":79077,"nodeType":"ParameterList","parameters":[],"src":"3840:2:164"},"returnParameters":{"id":79080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79086,"src":"3864:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79078,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3863:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79096,"nodeType":"FunctionDefinition","src":"3921:106:164","nodes":[],"body":{"id":79095,"nodeType":"Block","src":"3985:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4002:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79091,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3995:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79094,"nodeType":"ExpressionStatement","src":"3995:25:164"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3930:23:164","parameters":{"id":79087,"nodeType":"ParameterList","parameters":[],"src":"3953:2:164"},"returnParameters":{"id":79090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79096,"src":"3977:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79088,"name":"uint64","nodeType":"ElementaryTypeName","src":"3977:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3976:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79106,"nodeType":"FunctionDefinition","src":"4033:102:164","nodes":[],"body":{"id":79105,"nodeType":"Block","src":"4093:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4110:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79101,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4103:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79104,"nodeType":"ExpressionStatement","src":"4103:25:164"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4042:19:164","parameters":{"id":79097,"nodeType":"ParameterList","parameters":[],"src":"4061:2:164"},"returnParameters":{"id":79100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79106,"src":"4085:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79098,"name":"uint64","nodeType":"ElementaryTypeName","src":"4085:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4084:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79116,"nodeType":"FunctionDefinition","src":"4141:94:164","nodes":[],"body":{"id":79115,"nodeType":"Block","src":"4193:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4210:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79111,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4203:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4203:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79114,"nodeType":"ExpressionStatement","src":"4203:25:164"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4150:10:164","parameters":{"id":79107,"nodeType":"ParameterList","parameters":[],"src":"4160:2:164"},"returnParameters":{"id":79110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79116,"src":"4184:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79108,"name":"address","nodeType":"ElementaryTypeName","src":"4184:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4183:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79126,"nodeType":"FunctionDefinition","src":"4241:94:164","nodes":[],"body":{"id":79125,"nodeType":"Block","src":"4293:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4310:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79121,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4303:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4303:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79124,"nodeType":"ExpressionStatement","src":"4303:25:164"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4250:10:164","parameters":{"id":79117,"nodeType":"ParameterList","parameters":[],"src":"4260:2:164"},"returnParameters":{"id":79120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79126,"src":"4284:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4284:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4283:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79136,"nodeType":"FunctionDefinition","src":"4341:95:164","nodes":[],"body":{"id":79135,"nodeType":"Block","src":"4394:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4411:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79131,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4404:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4404:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79134,"nodeType":"ExpressionStatement","src":"4404:25:164"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4350:11:164","parameters":{"id":79127,"nodeType":"ParameterList","parameters":[],"src":"4361:2:164"},"returnParameters":{"id":79130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79136,"src":"4385:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79128,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4384:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79147,"nodeType":"FunctionDefinition","src":"4442:125:164","nodes":[],"body":{"id":79146,"nodeType":"Block","src":"4525:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4542:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79142,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4535:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79145,"nodeType":"ExpressionStatement","src":"4535:25:164"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4451:18:164","parameters":{"id":79137,"nodeType":"ParameterList","parameters":[],"src":"4469:2:164"},"returnParameters":{"id":79141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79147,"src":"4493:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":79139,"nodeType":"UserDefinedTypeName","pathNode":{"id":79138,"name":"Gear.SymbioticContracts","nameLocations":["4493:4:164","4498:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":83229,"src":"4493:23:164"},"referencedDeclaration":83229,"src":"4493:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4492:32:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79155,"nodeType":"FunctionDefinition","src":"4573:81:164","nodes":[],"body":{"id":79154,"nodeType":"Block","src":"4612:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4629:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79150,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4622:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79153,"nodeType":"ExpressionStatement","src":"4622:25:164"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4582:15:164","parameters":{"id":79148,"nodeType":"ParameterList","parameters":[],"src":"4597:2:164"},"returnParameters":{"id":79149,"nodeType":"ParameterList","parameters":[],"src":"4612:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79163,"nodeType":"FunctionDefinition","src":"4660:80:164","nodes":[],"body":{"id":79162,"nodeType":"Block","src":"4698:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4715:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79158,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4708:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79161,"nodeType":"ExpressionStatement","src":"4708:25:164"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4669:14:164","parameters":{"id":79156,"nodeType":"ParameterList","parameters":[],"src":"4683:2:164"},"returnParameters":{"id":79157,"nodeType":"ParameterList","parameters":[],"src":"4698:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79173,"nodeType":"FunctionDefinition","src":"4746:93:164","nodes":[],"body":{"id":79172,"nodeType":"Block","src":"4797:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4814:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79168,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4807:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79171,"nodeType":"ExpressionStatement","src":"4807:25:164"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4755:20:164","parameters":{"id":79166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79165,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79173,"src":"4776:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79164,"name":"address","nodeType":"ElementaryTypeName","src":"4776:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4775:9:164"},"returnParameters":{"id":79167,"nodeType":"ParameterList","parameters":[],"src":"4797:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79183,"nodeType":"FunctionDefinition","src":"4845:92:164","nodes":[],"body":{"id":79182,"nodeType":"Block","src":"4895:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79178,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4905:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4905:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79181,"nodeType":"ExpressionStatement","src":"4905:25:164"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4854:19:164","parameters":{"id":79176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79183,"src":"4874:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79174,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4873:9:164"},"returnParameters":{"id":79177,"nodeType":"ParameterList","parameters":[],"src":"4895:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79191,"nodeType":"FunctionDefinition","src":"4943:82:164","nodes":[],"body":{"id":79190,"nodeType":"Block","src":"4983:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5000:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79186,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4993:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79189,"nodeType":"ExpressionStatement","src":"4993:25:164"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4952:16:164","parameters":{"id":79184,"nodeType":"ParameterList","parameters":[],"src":"4968:2:164"},"returnParameters":{"id":79185,"nodeType":"ParameterList","parameters":[],"src":"4983:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79201,"nodeType":"FunctionDefinition","src":"5031:91:164","nodes":[],"body":{"id":79200,"nodeType":"Block","src":"5080:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5097:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79196,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5090:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5090:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79199,"nodeType":"ExpressionStatement","src":"5090:25:164"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5040:18:164","parameters":{"id":79194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79201,"src":"5059:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79192,"name":"address","nodeType":"ElementaryTypeName","src":"5059:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5058:9:164"},"returnParameters":{"id":79195,"nodeType":"ParameterList","parameters":[],"src":"5080:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79217,"nodeType":"FunctionDefinition","src":"5128:134:164","nodes":[],"body":{"id":79216,"nodeType":"Block","src":"5220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79212,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79215,"nodeType":"ExpressionStatement","src":"5230:25:164"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5137:25:164","parameters":{"id":79208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5163:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79202,"name":"address","nodeType":"ElementaryTypeName","src":"5163:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5172:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79204,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5181:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5162:27:164"},"returnParameters":{"id":79211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5211:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5211:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5210:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79232,"nodeType":"FunctionDefinition","src":"5268:150:164","nodes":[],"body":{"id":79231,"nodeType":"Block","src":"5376:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5393:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79227,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5386:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5386:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79230,"nodeType":"ExpressionStatement","src":"5386:25:164"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5277:23:164","parameters":{"id":79223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5301:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":79219,"nodeType":"UserDefinedTypeName","pathNode":{"id":79218,"name":"Gear.StakerRewardsCommitment","nameLocations":["5301:4:164","5306:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"5301:28:164"},"referencedDeclaration":83046,"src":"5301:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":79222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5338:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79221,"name":"uint48","nodeType":"ElementaryTypeName","src":"5338:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5300:45:164"},"returnParameters":{"id":79226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5367:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5366:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79244,"nodeType":"FunctionDefinition","src":"5424:95:164","nodes":[],"body":{"id":79243,"nodeType":"Block","src":"5477:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5494:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79239,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5487:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79242,"nodeType":"ExpressionStatement","src":"5487:25:164"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5433:13:164","parameters":{"id":79237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79244,"src":"5447:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79233,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79244,"src":"5456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79235,"name":"address","nodeType":"ElementaryTypeName","src":"5456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5446:18:164"},"returnParameters":{"id":79238,"nodeType":"ParameterList","parameters":[],"src":"5477:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79254,"nodeType":"FunctionDefinition","src":"5525:85:164","nodes":[],"body":{"id":79253,"nodeType":"Block","src":"5568:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5585:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79249,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5578:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79252,"nodeType":"ExpressionStatement","src":"5578:25:164"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5534:12:164","parameters":{"id":79247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79254,"src":"5547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79245,"name":"address","nodeType":"ElementaryTypeName","src":"5547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5546:9:164"},"returnParameters":{"id":79248,"nodeType":"ParameterList","parameters":[],"src":"5568:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79264,"nodeType":"FunctionDefinition","src":"5616:84:164","nodes":[],"body":{"id":79263,"nodeType":"Block","src":"5658:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79259,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5668:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5668:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79262,"nodeType":"ExpressionStatement","src":"5668:25:164"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5625:11:164","parameters":{"id":79257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79264,"src":"5637:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79255,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5636:9:164"},"returnParameters":{"id":79258,"nodeType":"ParameterList","parameters":[],"src":"5658:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79274,"nodeType":"FunctionDefinition","src":"5706:88:164","nodes":[],"body":{"id":79273,"nodeType":"Block","src":"5752:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5769:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79269,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5762:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79272,"nodeType":"ExpressionStatement","src":"5762:25:164"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5715:15:164","parameters":{"id":79267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79274,"src":"5731:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79265,"name":"address","nodeType":"ElementaryTypeName","src":"5731:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5730:9:164"},"returnParameters":{"id":79268,"nodeType":"ParameterList","parameters":[],"src":"5752:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79288,"nodeType":"FunctionDefinition","src":"5800:117:164","nodes":[],"body":{"id":79287,"nodeType":"Block","src":"5875:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5892:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79283,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5885:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5885:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79286,"nodeType":"ExpressionStatement","src":"5885:25:164"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5809:18:164","parameters":{"id":79279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5828:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79275,"name":"address","nodeType":"ElementaryTypeName","src":"5828:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5837:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79277,"name":"uint48","nodeType":"ElementaryTypeName","src":"5837:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5827:17:164"},"returnParameters":{"id":79282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5866:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79280,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5865:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79304,"nodeType":"FunctionDefinition","src":"5923:142:164","nodes":[],"body":{"id":79303,"nodeType":"Block","src":"6023:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6040:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79299,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6033:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6033:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79302,"nodeType":"ExpressionStatement","src":"6033:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5932:25:164","parameters":{"id":79291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"5958:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79289,"name":"uint48","nodeType":"ElementaryTypeName","src":"5958:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5957:8:164"},"returnParameters":{"id":79298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"5987:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79292,"name":"address","nodeType":"ElementaryTypeName","src":"5987:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79293,"nodeType":"ArrayTypeName","src":"5987:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"6005:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79295,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79296,"nodeType":"ArrayTypeName","src":"6005:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5986:36:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79316,"nodeType":"FunctionDefinition","src":"6071:98:164","nodes":[],"body":{"id":79315,"nodeType":"Block","src":"6127:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6144:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79311,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6137:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79314,"nodeType":"ExpressionStatement","src":"6137:25:164"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6080:12:164","parameters":{"id":79309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79316,"src":"6093:20:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":79306,"nodeType":"UserDefinedTypeName","pathNode":{"id":79305,"name":"SlashData","nameLocations":["6093:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"6093:9:164"},"referencedDeclaration":73942,"src":"6093:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":79307,"nodeType":"ArrayTypeName","src":"6093:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6092:22:164"},"returnParameters":{"id":79310,"nodeType":"ParameterList","parameters":[],"src":"6127:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79328,"nodeType":"FunctionDefinition","src":"6175:104:164","nodes":[],"body":{"id":79327,"nodeType":"Block","src":"6237:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6254:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79323,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6247:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6247:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79326,"nodeType":"ExpressionStatement","src":"6247:25:164"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6184:12:164","parameters":{"id":79321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79328,"src":"6197:26:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":79318,"nodeType":"UserDefinedTypeName","pathNode":{"id":79317,"name":"SlashIdentifier","nameLocations":["6197:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"6197:15:164"},"referencedDeclaration":73947,"src":"6197:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":79319,"nodeType":"ArrayTypeName","src":"6197:17:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6196:28:164"},"returnParameters":{"id":79322,"nodeType":"ParameterList","parameters":[],"src":"6237:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79341,"nodeType":"FunctionDefinition","src":"6285:201:164","nodes":[],"body":{"id":79340,"nodeType":"Block","src":"6355:131:164","nodes":[],"statements":[{"assignments":[79335],"declarations":[{"constant":false,"id":79335,"mutability":"mutable","name":"slot","nameLocation":"6373:4:164","nodeType":"VariableDeclaration","scope":79340,"src":"6365:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6365:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79338,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79336,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79366,"src":"6380:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6380:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6365:32:164"},{"AST":{"nativeSrc":"6433:47:164","nodeType":"YulBlock","src":"6433:47:164","statements":[{"nativeSrc":"6447:23:164","nodeType":"YulAssignment","src":"6447:23:164","value":{"name":"slot","nativeSrc":"6466:4:164","nodeType":"YulIdentifier","src":"6466:4:164"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6447:15:164","nodeType":"YulIdentifier","src":"6447:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79332,"isOffset":false,"isSlot":true,"src":"6447:15:164","suffix":"slot","valueSize":1},{"declaration":79335,"isOffset":false,"isSlot":false,"src":"6466:4:164","valueSize":1}],"flags":["memory-safe"],"id":79339,"nodeType":"InlineAssembly","src":"6408:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6294:8:164","parameters":{"id":79329,"nodeType":"ParameterList","parameters":[],"src":"6302:2:164"},"returnParameters":{"id":79333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79332,"mutability":"mutable","name":"middleware","nameLocation":"6343:10:164","nodeType":"VariableDeclaration","scope":79341,"src":"6327:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79331,"nodeType":"UserDefinedTypeName","pathNode":{"id":79330,"name":"Storage","nameLocations":["6327:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"6327:7:164"},"referencedDeclaration":73928,"src":"6327:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6326:28:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79354,"nodeType":"FunctionDefinition","src":"6492:209:164","nodes":[],"body":{"id":79353,"nodeType":"Block","src":"6568:133:164","nodes":[],"statements":[{"assignments":[79348],"declarations":[{"constant":false,"id":79348,"mutability":"mutable","name":"slot","nameLocation":"6586:4:164","nodeType":"VariableDeclaration","scope":79353,"src":"6578:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6578:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79351,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79349,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79378,"src":"6593:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6593:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6578:35:164"},{"AST":{"nativeSrc":"6648:47:164","nodeType":"YulBlock","src":"6648:47:164","statements":[{"nativeSrc":"6662:23:164","nodeType":"YulAssignment","src":"6662:23:164","value":{"name":"slot","nativeSrc":"6681:4:164","nodeType":"YulIdentifier","src":"6681:4:164"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"6662:15:164","nodeType":"YulIdentifier","src":"6662:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79345,"isOffset":false,"isSlot":true,"src":"6662:15:164","suffix":"slot","valueSize":1},{"declaration":79348,"isOffset":false,"isSlot":false,"src":"6681:4:164","valueSize":1}],"flags":["memory-safe"],"id":79352,"nodeType":"InlineAssembly","src":"6623:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6501:11:164","parameters":{"id":79342,"nodeType":"ParameterList","parameters":[],"src":"6512:2:164"},"returnParameters":{"id":79346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79345,"mutability":"mutable","name":"poaStorage","nameLocation":"6556:10:164","nodeType":"VariableDeclaration","scope":79354,"src":"6537:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":79344,"nodeType":"UserDefinedTypeName","pathNode":{"id":79343,"name":"POAStorage","nameLocations":["6537:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":74403,"src":"6537:10:164"},"referencedDeclaration":74403,"src":"6537:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6536:31:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79366,"nodeType":"FunctionDefinition","src":"6707:128:164","nodes":[],"body":{"id":79365,"nodeType":"Block","src":"6765:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79361,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78878,"src":"6809:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79359,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6782:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6794:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6782:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6823:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6782:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79358,"id":79364,"nodeType":"Return","src":"6775:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6716:15:164","parameters":{"id":79355,"nodeType":"ParameterList","parameters":[],"src":"6731:2:164"},"returnParameters":{"id":79358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79366,"src":"6756:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6756:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6755:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79378,"nodeType":"FunctionDefinition","src":"6841:135:164","nodes":[],"body":{"id":79377,"nodeType":"Block","src":"6902:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79373,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78881,"src":"6946:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79371,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6919:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6931:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6919:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6919:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6964:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6919:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79370,"id":79376,"nodeType":"Return","src":"6912:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6850:18:164","parameters":{"id":79367,"nodeType":"ParameterList","parameters":[],"src":"6868:2:164"},"returnParameters":{"id":79370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79378,"src":"6893:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6893:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6892:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79402,"nodeType":"FunctionDefinition","src":"6982:200:164","nodes":[],"body":{"id":79401,"nodeType":"Block","src":"7050:132:164","nodes":[],"statements":[{"assignments":[79386],"declarations":[{"constant":false,"id":79386,"mutability":"mutable","name":"slot","nameLocation":"7068:4:164","nodeType":"VariableDeclaration","scope":79401,"src":"7060:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7060:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79391,"initialValue":{"arguments":[{"id":79389,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79380,"src":"7102:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79387,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7075:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7090:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7075:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7075:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7060:52:164"},{"expression":{"id":79399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79395,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78878,"src":"7149:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79392,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7122:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7134:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7122:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7122:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7163:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7122:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79398,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79386,"src":"7171:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7122:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79400,"nodeType":"ExpressionStatement","src":"7122:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79383,"kind":"modifierInvocation","modifierName":{"id":79382,"name":"onlyOwner","nameLocations":["7040:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7040:9:164"},"nodeType":"ModifierInvocation","src":"7040:9:164"}],"name":"_setStorageSlot","nameLocation":"6991:15:164","parameters":{"id":79381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79380,"mutability":"mutable","name":"namespace","nameLocation":"7021:9:164","nodeType":"VariableDeclaration","scope":79402,"src":"7007:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79379,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7006:25:164"},"returnParameters":{"id":79384,"nodeType":"ParameterList","parameters":[],"src":"7050:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79426,"nodeType":"FunctionDefinition","src":"7188:207:164","nodes":[],"body":{"id":79425,"nodeType":"Block","src":"7259:136:164","nodes":[],"statements":[{"assignments":[79410],"declarations":[{"constant":false,"id":79410,"mutability":"mutable","name":"slot","nameLocation":"7277:4:164","nodeType":"VariableDeclaration","scope":79425,"src":"7269:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7269:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79415,"initialValue":{"arguments":[{"id":79413,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79404,"src":"7311:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79411,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7284:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7299:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7284:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7284:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7269:52:164"},{"expression":{"id":79423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79419,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78881,"src":"7358:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79416,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7331:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7343:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7331:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7331:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7376:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7331:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79422,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79410,"src":"7384:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7331:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79424,"nodeType":"ExpressionStatement","src":"7331:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79407,"kind":"modifierInvocation","modifierName":{"id":79406,"name":"onlyOwner","nameLocations":["7249:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7249:9:164"},"nodeType":"ModifierInvocation","src":"7249:9:164"}],"name":"_setPoaStorageSlot","nameLocation":"7197:18:164","parameters":{"id":79405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79404,"mutability":"mutable","name":"namespace","nameLocation":"7230:9:164","nodeType":"VariableDeclaration","scope":79426,"src":"7216:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79403,"name":"string","nodeType":"ElementaryTypeName","src":"7216:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7215:25:164"},"returnParameters":{"id":79408,"nodeType":"ParameterList","parameters":[],"src":"7259:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":78866,"name":"IMiddleware","nameLocations":["835:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"835:11:164"},"id":78867,"nodeType":"InheritanceSpecifier","src":"835:11:164"},{"baseName":{"id":78868,"name":"IPOAMiddleware","nameLocations":["852:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":74411,"src":"852:14:164"},"id":78869,"nodeType":"InheritanceSpecifier","src":"852:14:164"},{"baseName":{"id":78870,"name":"OwnableUpgradeable","nameLocations":["872:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"872:18:164"},"id":78871,"nodeType":"InheritanceSpecifier","src":"872:18:164"},{"baseName":{"id":78872,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["896:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"896:35:164"},"id":78873,"nodeType":"InheritanceSpecifier","src":"896:35:164"},{"baseName":{"id":78874,"name":"UUPSUpgradeable","nameLocations":["937:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"937:15:164"},"id":78875,"nodeType":"InheritanceSpecifier","src":"937:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79427,46243,44833,43943,42322,43484,42590,74411,74131],"name":"POAMiddleware","nameLocation":"814:13:164","scope":79428,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":164} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"disableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"enableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"executeSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"registerVault","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setValidators","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unregisterVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206112375f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161117090816100c78239608051818181610bd50152610caf0152f35b6001600160401b0319166001600160401b039081175f5160206112375f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610e805780630a71094c14610e2b5780632633b70f146106025780632acde09814610238578063373bba1f146102385780633ccce789146106025780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c2957806352d1902d14610bc35780636c2eb350146109e85780636d1064eb146106025780636e5c793214610913578063709d06ae14610238578063715018a6146108ac578063729e2f361461089357806379a8b245146102385780637fbe95b51461077257806386c241a1146106025780638da5cb5b1461073e5780639300c92614610607578063936f433014610602578063945cf2dd1461023857806396115bc2146106025780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111305f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ea2565b610231611005565b610f94565b005b610265565b3461020957604036600319011261020957610256610ea2565b5061025f610f31565b50610f5d565b34610209575f36600319011215610f5d575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f1c565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610f5d575f80fd5b34610209575f3660031901126102095760408051906103c68183610efb565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111505f395f51905f52546001600160401b0360ff8260401c16159116801590816105fa575b60011490816105f0575b1590816105e7575b506105d8578060016001600160401b03195f5160206111505f395f51905f525416175f5160206111505f395f51905f52556105a8575b6004356001600160a01b0381168103610209576104b0906104a8611038565b610231611038565b61050a6040516104c1604082610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104f3611005565b80516020918201205f19015f9081522060ff191690565b5f5160206111305f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055657005b60ff60401b195f5160206111505f395f51905f5254165f5160206111505f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111505f395f51905f525416175f5160206111505f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610ee2565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064281610f46565b916106506040519384610efb565b818352602083016024819360051b8301019136831161020957602401905b82821061072657505050610680611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b82116103255782548284558083106106fc575b50915f5260205f20915f5b8281106106df57005b81516001600160a01b0316818501556020909101906001016106d6565b835f52828060205f20019103905f5b8281106107195750506106cb565b5f8282015560010161070b565b6020809161073384610ece565b81520191019061066e565b34610209575f366003190112610209575f5160206110f05f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107ed81610f46565b916107fb6040519384610efb565b818352602060048185019360061b830101019036821161020957602401915b8183106108485785604061083d6044888885526024810135602086015201610ece565b91015261025f610f31565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261087e86610ece565b8152828601358382015281520192019161081a565b346102095760603660031901126102095761025f610ea2565b34610209575f366003190112610209576108c4611005565b5f5160206110f05f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102095760403660031901126102095761092c610f1c565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109c9575050508161097e910382610efb565b604051918291602083019060208452518091526040830191905f5b8181106109a7575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610999565b82546001600160a01b0316845260209093019260019283019201610968565b34610209575f36600319011261020957610a00611005565b5f5160206111505f395f51905f525460ff8160401c16908115610bae575b506105d8575f5160206111505f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206110f05f395f51905f5254610a70906001600160a01b03166104a8611038565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111305f395f51905f52546040906007610ae78351610ab68582610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104f3611005565b91825f5160206111305f395f51905f5255610b438451610b08606082610efb565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104f3611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111505f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a1e565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a5760206040515f5160206111105f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c3d610ea2565b602435906001600160401b03821161020957366023830112156102095781600401356001600160401b0381116103255760405192610c85601f8301601f191660200185610efb565b818452366024838301011161020957815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e09575b50610c1a57610ce7611005565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610dd5575b50610d295783634c9c8ce360e01b5f5260045260245ffd5b805f5160206111105f395f51905f52859203610dc35750823b15610db1575f5160206111105f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610d995761023691611063565b505034610da257005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e01575b81610df160209383610efb565b8101031261020957519085610d11565b3d9150610de4565b5f5160206111105f395f51905f52546001600160a01b03161415905083610cda565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610f5d575f80fd5b3461020957604036600319011261020957610e99610ea2565b5061025f610eb8565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ea2565b90601f801991011681019081106001600160401b0382111761032557604052565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015610ff2575f5160206110f05f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206110f05f395f51905f52546001600160a01b0316330361102557565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111505f395f51905f525460401c161561105457565b631afcd79f60e31b5f5260045ffd5b905f8091602081519101845af480806110dc575b156110975750506040513d81523d5f602083013e60203d82010160405290565b156110bc57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d156110cd576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806110775750813b151561107756fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6518:163:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;805:6518:163;;7983:34:18;7979:146;;-1:-1:-1;805:6518:163;;;;;;;;1076:13:19;805:6518:163;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;8085:29:18;;805:6518:163;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;805:6518:163;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610e805780630a71094c14610e2b5780632633b70f146106025780632acde09814610238578063373bba1f146102385780633ccce789146106025780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c2957806352d1902d14610bc35780636c2eb350146109e85780636d1064eb146106025780636e5c793214610913578063709d06ae14610238578063715018a6146108ac578063729e2f361461089357806379a8b245146102385780637fbe95b51461077257806386c241a1146106025780638da5cb5b1461073e5780639300c92614610607578063936f433014610602578063945cf2dd1461023857806396115bc2146106025780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111305f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ea2565b610231611005565b610f94565b005b610265565b3461020957604036600319011261020957610256610ea2565b5061025f610f31565b50610f5d565b34610209575f36600319011215610f5d575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f1c565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610f5d575f80fd5b34610209575f3660031901126102095760408051906103c68183610efb565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111505f395f51905f52546001600160401b0360ff8260401c16159116801590816105fa575b60011490816105f0575b1590816105e7575b506105d8578060016001600160401b03195f5160206111505f395f51905f525416175f5160206111505f395f51905f52556105a8575b6004356001600160a01b0381168103610209576104b0906104a8611038565b610231611038565b61050a6040516104c1604082610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104f3611005565b80516020918201205f19015f9081522060ff191690565b5f5160206111305f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055657005b60ff60401b195f5160206111505f395f51905f5254165f5160206111505f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111505f395f51905f525416175f5160206111505f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610ee2565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064281610f46565b916106506040519384610efb565b818352602083016024819360051b8301019136831161020957602401905b82821061072657505050610680611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b82116103255782548284558083106106fc575b50915f5260205f20915f5b8281106106df57005b81516001600160a01b0316818501556020909101906001016106d6565b835f52828060205f20019103905f5b8281106107195750506106cb565b5f8282015560010161070b565b6020809161073384610ece565b81520191019061066e565b34610209575f366003190112610209575f5160206110f05f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107ed81610f46565b916107fb6040519384610efb565b818352602060048185019360061b830101019036821161020957602401915b8183106108485785604061083d6044888885526024810135602086015201610ece565b91015261025f610f31565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261087e86610ece565b8152828601358382015281520192019161081a565b346102095760603660031901126102095761025f610ea2565b34610209575f366003190112610209576108c4611005565b5f5160206110f05f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102095760403660031901126102095761092c610f1c565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109c9575050508161097e910382610efb565b604051918291602083019060208452518091526040830191905f5b8181106109a7575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610999565b82546001600160a01b0316845260209093019260019283019201610968565b34610209575f36600319011261020957610a00611005565b5f5160206111505f395f51905f525460ff8160401c16908115610bae575b506105d8575f5160206111505f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206110f05f395f51905f5254610a70906001600160a01b03166104a8611038565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111305f395f51905f52546040906007610ae78351610ab68582610efb565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104f3611005565b91825f5160206111305f395f51905f5255610b438451610b08606082610efb565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104f3611005565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111505f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a1e565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c1a5760206040515f5160206111105f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c3d610ea2565b602435906001600160401b03821161020957366023830112156102095781600401356001600160401b0381116103255760405192610c85601f8301601f191660200185610efb565b818452366024838301011161020957815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e09575b50610c1a57610ce7611005565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610dd5575b50610d295783634c9c8ce360e01b5f5260045260245ffd5b805f5160206111105f395f51905f52859203610dc35750823b15610db1575f5160206111105f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610d995761023691611063565b505034610da257005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e01575b81610df160209383610efb565b8101031261020957519085610d11565b3d9150610de4565b5f5160206111105f395f51905f52546001600160a01b03161415905083610cda565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610f5d575f80fd5b3461020957604036600319011261020957610e99610ea2565b5061025f610eb8565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ea2565b90601f801991011681019081106001600160401b0382111761032557604052565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015610ff2575f5160206110f05f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206110f05f395f51905f52546001600160a01b0316330361102557565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111505f395f51905f525460401c161561105457565b631afcd79f60e31b5f5260045ffd5b905f8091602081519101845af480806110dc575b156110975750506040513d81523d5f602083013e60203d82010160405290565b156110bc57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d156110cd576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806110775750813b151561107756fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6518:163:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:25;805:6518;4461:25;;;805:6518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;2911:17;;805:6518;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;2378:1:52;805:6518:163;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;805:6518:163;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:25;;;;;;;805:6518;4461:25;;805:6518;;;;;;;;;;-1:-1:-1;;;805:6518:163;;;;;;;4461:25;;;;805:6518;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;4301:16:18;805:6518:163;;4724:16:18;;:34;;;;805:6518:163;4803:1:18;4788:16;:50;;;;805:6518:163;4853:13:18;:30;;;;805:6518:163;4849:91:18;;;805:6518:163;4803:1:18;-1:-1:-1;;;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;4977:67:18;;805:6518:163;;;-1:-1:-1;;;;;805:6518:163;;;;;;6959:1:18;;6891:76;;:::i;:::-;;;:::i;6959:1::-;7001:37:163;805:6518;;;;;;:::i;:::-;;;;;;;;;2324:62:52;;:::i;:::-;1794:178:36;;;;;;;-1:-1:-1;;1794:178:36;;;;;;-1:-1:-1;;1794:178:36;;1701:277;7001:37:163;-1:-1:-1;;;;;;;;;;;1075:66:163;;;1732:14;805:6518;;-1:-1:-1;;;;;805:6518:163;;;;;;1721:8;;805:6518;;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;;;;;5064:101:18;;805:6518:163;5064:101:18;-1:-1:-1;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;;;;;;805:6518:163;5140:14:18;805:6518:163;;;4803:1:18;805:6518:163;;5140:14:18;805:6518:163;4977:67:18;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;4977:67:18;;4849:91;6496:23;;;805:6518:163;4906:23:18;805:6518:163;;4906:23:18;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;805:6518:163;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:62:52;;;;;:::i;:::-;1302:66:163;805:6518;;;;-1:-1:-1;;;;;805:6518:163;;;;-1:-1:-1;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;;;-1:-1:-1;;;;;805:6518:163;3996:40:52;805:6518:163;;3996:40:52;805:6518:163;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;1302:66;805:6518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;-1:-1:-1;805:6518:163;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;;;6429:44:18;;;;;805:6518:163;6425:105:18;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;805:6518:163;;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;6959:1:18;;-1:-1:-1;;;;;805:6518:163;6891:76:18;;:::i;6959:1::-;6654:20;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;2175:17;7001:37;805:6518;;;;;;:::i;:::-;;;;;;;;;2324:62:52;;:::i;7001:37:163:-;1075:66;;-1:-1:-1;;;;;;;;;;;1075:66:163;7210:37;805:6518;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;805:6518:163;;;;2324:62:52;;:::i;7210:37:163:-;1302:66;1075;2175:17;;805:6518;2155:17;;805:6518;;-1:-1:-1;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;805:6518:163;;;;1881:1;805:6518;;6654:20:18;805:6518:163;6429:44:18;1881:1:163;805:6518;;-1:-1:-1;;;;;805:6518:163;6448:25:18;;6429:44;;;805:6518:163;;;;;;-1:-1:-1;;805:6518:163;;;;4840:6:19;-1:-1:-1;;;;;805:6518:163;4831:4:19;4823:23;4819:145;;805:6518:163;;;-1:-1:-1;;;;;;;;;;;805:6518:163;;;4819:145:19;4594:29;;;805:6518:163;4924:29:19;805:6518:163;;4924:29:19;805:6518:163;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;805:6518:163;4408:4:19;4400:23;;;:120;;;;805:6518:163;4383:251:19;;;2324:62:52;;:::i;:::-;805:6518:163;;-1:-1:-1;;;5881:52:19;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;5881:52:19;;805:6518:163;;5881:52:19;;;805:6518:163;-1:-1:-1;5877:437:19;;1805:47:11;;;;805:6518:163;6243:60:19;805:6518:163;;;;6243:60:19;5877:437;5975:40;-1:-1:-1;;;;;;;;;;;5975:40:19;;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;2407:36:11;-1:-1:-1;;2407:36:11;805:6518:163;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;805:6518:163;6181:70:11;6221:19;;;805:6518:163;6221:19:11;805:6518:163;;6221:19:11;1744:119;1805:47;;;805:6518:163;1805:47:11;805:6518:163;;;;1805:47:11;5971:120:19;6042:34;;;805:6518:163;6042:34:19;805:6518:163;;;;6042:34:19;5881:52;;;;805:6518:163;5881:52:19;;805:6518:163;5881:52:19;;;;;;805:6518:163;5881:52:19;;;:::i;:::-;;;805:6518:163;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4400:120;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;4478:42:19;;;-1:-1:-1;4400:120:19;;;805:6518:163;;;;;;-1:-1:-1;;805:6518:163;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;-1:-1:-1;;;;;805:6518:163;;;;;;:::o;:::-;;;;;;-1:-1:-1;;805:6518:163;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;805:6518:163;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6518:163;;;;;;;;;:::o;5350:95::-;805:6518;;-1:-1:-1;;;5413:25:163;;805:6518;5413:25;;;805:6518;;;;;;-1:-1:-1;;;805:6518:163;;;;;;4461:25;3426:215:52;-1:-1:-1;;;;;805:6518:163;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;805:6518:163;;-1:-1:-1;;;;;;805:6518:163;;;;;;;-1:-1:-1;;;;;805:6518:163;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;805:6518:163;;3530:1:52;3555:31;2679:162;-1:-1:-1;;;;;;;;;;;805:6518:163;-1:-1:-1;;;;;805:6518:163;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;805:6518:163;;-1:-1:-1;2784:40:52;7082:141:18;805:6518:163;-1:-1:-1;;;;;;;;;;;805:6518:163;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;805:6518:163;;;;5045:24:25;805:6518:163;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;5189:169;;;-1:-1:-1;5189:169:32;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"1929":[{"start":3029,"length":32},{"start":3247,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","setValidators(address[])":"9300c926","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"setValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setValidators(address[])\":{\"details\":\"Sets validators for POA middleware.\",\"params\":{\"validators\":\"The addresses of validators to set.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/POAMiddleware.sol\":\"POAMiddleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0x32f72886b18a7674ebb7de194c7cbaa263805859a9103b17993de589c0756588\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2e5939801a7d1bdec092e3029cd75a0abffda28f06f2f3624eea9981d396182b\",\"dweb:/ipfs/QmP3jPRTzDWRLNvA9ySNbHXH8mnZeXXxJK6mMzkgaDo1MH\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19\",\"dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x7ebe35c7acd8901b1066e709a2a7f94cc22bfe0f1926d277dc43525c3dd799e7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6081b73fa73ebd12cdd7d4bb0dd9d3c257345b310f6f9c4471eee23724efee92\",\"dweb:/ipfs/QmNrQMGwiCaSuMdLC6cjmG3o2Cg5if7JgNgHKXLc7dZze9\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd\",\"dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd\",\"dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"pure","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"pure","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"pure","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setValidators"},{"inputs":[],"stateMutability":"pure","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setValidators(address[])":{"details":"Sets validators for POA middleware.","params":{"validators":"The addresses of validators to set."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"registerOperator()":{"notice":"This function can be called only be operator themselves."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IPOAMiddleware.sol":{"keccak256":"0x32f72886b18a7674ebb7de194c7cbaa263805859a9103b17993de589c0756588","urls":["bzz-raw://2e5939801a7d1bdec092e3029cd75a0abffda28f06f2f3624eea9981d396182b","dweb:/ipfs/QmP3jPRTzDWRLNvA9ySNbHXH8mnZeXXxJK6mMzkgaDo1MH"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4","urls":["bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19","dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/POAMiddleware.sol":{"keccak256":"0x7ebe35c7acd8901b1066e709a2a7f94cc22bfe0f1926d277dc43525c3dd799e7","urls":["bzz-raw://6081b73fa73ebd12cdd7d4bb0dd9d3c257345b310f6f9c4471eee23724efee92","dweb:/ipfs/QmNrQMGwiCaSuMdLC6cjmG3o2Cg5if7JgNgHKXLc7dZze9"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d","urls":["bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd","dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x347547975c3b2aee9a08d077748851e374c695beb8270518d3b476dcdc9da153","urls":["bzz-raw://eb2e71f40e02dd20ee451bad3bf32b46c27118eee6d2b58eb77505746126dabd","dweb:/ipfs/QmStHKzwuoMheiz1tyXzCQjwrKdwywKJ8TJcQekzYKWdYu"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":81743,"exportedSymbols":{"Gear":[86834],"IMiddleware":[76054],"IPOAMiddleware":[76379],"MapWithTimeData":[87122],"OwnableUpgradeable":[19465],"POAMiddleware":[81742],"ReentrancyGuardTransient":[6594],"SlotDerivation":[6724],"StorageSlot":[6848],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:7210:163","nodes":[{"id":81165,"nodeType":"PragmaDirective","src":"114:24:163","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":81167,"nodeType":"ImportDirective","src":"140:101:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":81166,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81169,"nodeType":"ImportDirective","src":"242:88:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":81168,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"250:15:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81171,"nodeType":"ImportDirective","src":"331:100:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":81170,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"339:24:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81173,"nodeType":"ImportDirective","src":"432:80:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":81172,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"440:14:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81175,"nodeType":"ImportDirective","src":"513:74:163","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":81174,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"521:11:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81177,"nodeType":"ImportDirective","src":"588:48:163","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":76055,"symbolAliases":[{"foreign":{"id":81176,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"596:11:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81179,"nodeType":"ImportDirective","src":"637:54:163","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":76380,"symbolAliases":[{"foreign":{"id":81178,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76379,"src":"645:14:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81181,"nodeType":"ImportDirective","src":"692:44:163","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":86835,"symbolAliases":[{"foreign":{"id":81180,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"700:4:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81183,"nodeType":"ImportDirective","src":"737:66:163","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":81743,"sourceUnit":87123,"symbolAliases":[{"foreign":{"id":81182,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87122,"src":"745:15:163","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81742,"nodeType":"ContractDefinition","src":"805:6518:163","nodes":[{"id":81196,"nodeType":"VariableDeclaration","src":"1035:106:163","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1060:12:163","scope":81742,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1035:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":81195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1075:66:163","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":81199,"nodeType":"VariableDeclaration","src":"1258:110:163","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1283:16:163","scope":81742,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1258:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":81198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1302:66:163","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":81207,"nodeType":"FunctionDefinition","src":"1443:53:163","nodes":[],"body":{"id":81206,"nodeType":"Block","src":"1457:39:163","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81203,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"1467:20:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":81204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1467:22:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81205,"nodeType":"ExpressionStatement","src":"1467:22:163"}]},"documentation":{"id":81200,"nodeType":"StructuredDocumentation","src":"1375:63:163","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81201,"nodeType":"ParameterList","parameters":[],"src":"1454:2:163"},"returnParameters":{"id":81202,"nodeType":"ParameterList","parameters":[],"src":"1457:0:163"},"scope":81742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81238,"nodeType":"FunctionDefinition","src":"1502:251:163","nodes":[],"body":{"id":81237,"nodeType":"Block","src":"1570:183:163","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":81216,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81210,"src":"1595:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":81217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1603:5:163","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":75785,"src":"1595:13:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81215,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"1580:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:29:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81219,"nodeType":"ExpressionStatement","src":"1580:29:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":81221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1636:33:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":81220,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81717,"src":"1620:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1620:50:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81223,"nodeType":"ExpressionStatement","src":"1620:50:163"},{"assignments":[81226],"declarations":[{"constant":false,"id":81226,"mutability":"mutable","name":"$","nameLocation":"1696:1:163","nodeType":"VariableDeclaration","scope":81237,"src":"1680:17:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81225,"nodeType":"UserDefinedTypeName","pathNode":{"id":81224,"name":"Storage","nameLocations":["1680:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"1680:7:163"},"referencedDeclaration":75851,"src":"1680:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81229,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81227,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81656,"src":"1700:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1700:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1680:30:163"},{"expression":{"id":81235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81230,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81226,"src":"1721:1:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1723:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"1721:8:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81233,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81210,"src":"1732:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":81234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1740:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75809,"src":"1732:14:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1721:25:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81236,"nodeType":"ExpressionStatement","src":"1721:25:163"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":81213,"kind":"modifierInvocation","modifierName":{"id":81212,"name":"initializer","nameLocations":["1558:11:163"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"1558:11:163"},"nodeType":"ModifierInvocation","src":"1558:11:163"}],"name":"initialize","nameLocation":"1511:10:163","parameters":{"id":81211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81210,"mutability":"mutable","name":"_params","nameLocation":"1542:7:163","nodeType":"VariableDeclaration","scope":81238,"src":"1522:27:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":81209,"nodeType":"UserDefinedTypeName","pathNode":{"id":81208,"name":"InitParams","nameLocations":["1522:10:163"],"nodeType":"IdentifierPath","referencedDeclaration":75813,"src":"1522:10:163"},"referencedDeclaration":75813,"src":"1522:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$75813_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"1521:29:163"},"returnParameters":{"id":81214,"nodeType":"ParameterList","parameters":[],"src":"1570:0:163"},"scope":81742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81280,"nodeType":"FunctionDefinition","src":"1826:373:163","nodes":[],"body":{"id":81279,"nodeType":"Block","src":"1884:315:163","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":81248,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"1909:5:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1909:7:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81247,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"1894:14:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1894:23:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81251,"nodeType":"ExpressionStatement","src":"1894:23:163"},{"assignments":[81254],"declarations":[{"constant":false,"id":81254,"mutability":"mutable","name":"oldStorage","nameLocation":"1944:10:163","nodeType":"VariableDeclaration","scope":81279,"src":"1928:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81253,"nodeType":"UserDefinedTypeName","pathNode":{"id":81252,"name":"Storage","nameLocations":["1928:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"1928:7:163"},"referencedDeclaration":75851,"src":"1928:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81257,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81255,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81656,"src":"1957:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1957:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1928:39:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":81259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1994:33:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":81258,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81717,"src":"1978:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:50:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81261,"nodeType":"ExpressionStatement","src":"1978:50:163"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":81263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2057:36:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""},"value":"middleware.storage.POAMiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""}],"id":81262,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81741,"src":"2038:18:163","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:56:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81265,"nodeType":"ExpressionStatement","src":"2038:56:163"},{"assignments":[81268],"declarations":[{"constant":false,"id":81268,"mutability":"mutable","name":"newStorage","nameLocation":"2121:10:163","nodeType":"VariableDeclaration","scope":81279,"src":"2105:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81267,"nodeType":"UserDefinedTypeName","pathNode":{"id":81266,"name":"Storage","nameLocations":["2105:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"2105:7:163"},"referencedDeclaration":75851,"src":"2105:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":81271,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81269,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81656,"src":"2134:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2105:39:163"},{"expression":{"id":81277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81272,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81268,"src":"2155:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2166:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"2155:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81275,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81254,"src":"2175:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2186:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"2175:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2155:37:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81278,"nodeType":"ExpressionStatement","src":"2155:37:163"}]},"documentation":{"id":81239,"nodeType":"StructuredDocumentation","src":"1759:62:163","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":81242,"kind":"modifierInvocation","modifierName":{"id":81241,"name":"onlyOwner","nameLocations":["1857:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"1857:9:163"},"nodeType":"ModifierInvocation","src":"1857:9:163"},{"arguments":[{"hexValue":"32","id":81244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1881:1:163","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":81245,"kind":"modifierInvocation","modifierName":{"id":81243,"name":"reinitializer","nameLocations":["1867:13:163"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"1867:13:163"},"nodeType":"ModifierInvocation","src":"1867:16:163"}],"name":"reinitialize","nameLocation":"1835:12:163","parameters":{"id":81240,"nodeType":"ParameterList","parameters":[],"src":"1847:2:163"},"returnParameters":{"id":81246,"nodeType":"ParameterList","parameters":[],"src":"1884:0:163"},"scope":81742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81290,"nodeType":"FunctionDefinition","src":"2364:84:163","nodes":[],"body":{"id":81289,"nodeType":"Block","src":"2446:2:163","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":81281,"nodeType":"StructuredDocumentation","src":"2205:154:163","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":81287,"kind":"modifierInvocation","modifierName":{"id":81286,"name":"onlyOwner","nameLocations":["2436:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2436:9:163"},"nodeType":"ModifierInvocation","src":"2436:9:163"}],"name":"_authorizeUpgrade","nameLocation":"2373:17:163","overrides":{"id":81285,"nodeType":"OverrideSpecifier","overrides":[],"src":"2427:8:163"},"parameters":{"id":81284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81283,"mutability":"mutable","name":"newImplementation","nameLocation":"2399:17:163","nodeType":"VariableDeclaration","scope":81290,"src":"2391:25:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81282,"name":"address","nodeType":"ElementaryTypeName","src":"2391:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2390:27:163"},"returnParameters":{"id":81288,"nodeType":"ParameterList","parameters":[],"src":"2446:0:163"},"scope":81742,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":81306,"nodeType":"FunctionDefinition","src":"2579:124:163","nodes":[],"body":{"id":81305,"nodeType":"Block","src":"2650:53:163","nodes":[],"statements":[{"expression":{"id":81303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81299,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81669,"src":"2660:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$76371_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":81300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2660:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$76371_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":81301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2674:9:163","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76370,"src":"2660:23:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81302,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81294,"src":"2686:10:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2660:36:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":81304,"nodeType":"ExpressionStatement","src":"2660:36:163"}]},"baseFunctions":[76378],"documentation":{"id":81291,"nodeType":"StructuredDocumentation","src":"2454:120:163","text":" @dev Sets validators for POA middleware.\n @param validators The addresses of validators to set."},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":81297,"kind":"modifierInvocation","modifierName":{"id":81296,"name":"onlyOwner","nameLocations":["2640:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2640:9:163"},"nodeType":"ModifierInvocation","src":"2640:9:163"}],"name":"setValidators","nameLocation":"2588:13:163","parameters":{"id":81295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81294,"mutability":"mutable","name":"validators","nameLocation":"2619:10:163","nodeType":"VariableDeclaration","scope":81306,"src":"2602:27:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81292,"name":"address","nodeType":"ElementaryTypeName","src":"2602:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81293,"nodeType":"ArrayTypeName","src":"2602:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2601:29:163"},"returnParameters":{"id":81298,"nodeType":"ParameterList","parameters":[],"src":"2650:0:163"},"scope":81742,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81321,"nodeType":"FunctionDefinition","src":"2709:129:163","nodes":[],"body":{"id":81320,"nodeType":"Block","src":"2791:47:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81316,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81669,"src":"2808:11:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$76371_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":81317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2808:13:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$76371_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":81318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2822:9:163","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":76370,"src":"2808:23:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":81315,"id":81319,"nodeType":"Return","src":"2801:30:163"}]},"baseFunctions":[75962],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2718:14:163","parameters":{"id":81311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81321,"src":"2733:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81307,"name":"uint48","nodeType":"ElementaryTypeName","src":"2733:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":81310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81321,"src":"2741:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81309,"name":"uint256","nodeType":"ElementaryTypeName","src":"2741:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2732:17:163"},"returnParameters":{"id":81315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81321,"src":"2773:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81312,"name":"address","nodeType":"ElementaryTypeName","src":"2773:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81313,"nodeType":"ArrayTypeName","src":"2773:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2772:18:163"},"scope":81742,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":81331,"nodeType":"FunctionDefinition","src":"2844:91:163","nodes":[],"body":{"id":81330,"nodeType":"Block","src":"2894:41:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81326,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81656,"src":"2911:8:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$75851_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":81327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:10:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":81328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2922:6:163","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":75840,"src":"2911:17:163","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81325,"id":81329,"nodeType":"Return","src":"2904:24:163"}]},"baseFunctions":[75935],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2853:6:163","parameters":{"id":81322,"nodeType":"ParameterList","parameters":[],"src":"2859:2:163"},"returnParameters":{"id":81325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81331,"src":"2885:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81323,"name":"address","nodeType":"ElementaryTypeName","src":"2885:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2884:9:163"},"scope":81742,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":81341,"nodeType":"FunctionDefinition","src":"3094:94:163","nodes":[],"body":{"id":81340,"nodeType":"Block","src":"3146:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3163:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81336,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3156:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81339,"nodeType":"ExpressionStatement","src":"3156:25:163"}]},"baseFunctions":[75875],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3103:11:163","parameters":{"id":81332,"nodeType":"ParameterList","parameters":[],"src":"3114:2:163"},"returnParameters":{"id":81335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81341,"src":"3138:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81333,"name":"uint48","nodeType":"ElementaryTypeName","src":"3138:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3137:8:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81351,"nodeType":"FunctionDefinition","src":"3194:104:163","nodes":[],"body":{"id":81350,"nodeType":"Block","src":"3256:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3273:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81346,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3266:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3266:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81349,"nodeType":"ExpressionStatement","src":"3266:25:163"}]},"baseFunctions":[75880],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3203:21:163","parameters":{"id":81342,"nodeType":"ParameterList","parameters":[],"src":"3224:2:163"},"returnParameters":{"id":81345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81351,"src":"3248:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81343,"name":"uint48","nodeType":"ElementaryTypeName","src":"3248:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3247:8:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81361,"nodeType":"FunctionDefinition","src":"3304:102:163","nodes":[],"body":{"id":81360,"nodeType":"Block","src":"3364:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3381:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81356,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3374:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81359,"nodeType":"ExpressionStatement","src":"3374:25:163"}]},"baseFunctions":[75885],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3313:19:163","parameters":{"id":81352,"nodeType":"ParameterList","parameters":[],"src":"3332:2:163"},"returnParameters":{"id":81355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81361,"src":"3356:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81353,"name":"uint48","nodeType":"ElementaryTypeName","src":"3356:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3355:8:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81371,"nodeType":"FunctionDefinition","src":"3412:99:163","nodes":[],"body":{"id":81370,"nodeType":"Block","src":"3469:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3486:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81366,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3479:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3479:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81369,"nodeType":"ExpressionStatement","src":"3479:25:163"}]},"baseFunctions":[75890],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3421:16:163","parameters":{"id":81362,"nodeType":"ParameterList","parameters":[],"src":"3437:2:163"},"returnParameters":{"id":81365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81371,"src":"3461:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81363,"name":"uint48","nodeType":"ElementaryTypeName","src":"3461:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3460:8:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81381,"nodeType":"FunctionDefinition","src":"3517:98:163","nodes":[],"body":{"id":81380,"nodeType":"Block","src":"3573:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3590:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81376,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3583:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81379,"nodeType":"ExpressionStatement","src":"3583:25:163"}]},"baseFunctions":[75895],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3526:15:163","parameters":{"id":81372,"nodeType":"ParameterList","parameters":[],"src":"3541:2:163"},"returnParameters":{"id":81375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81381,"src":"3565:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81373,"name":"uint48","nodeType":"ElementaryTypeName","src":"3565:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3564:8:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81391,"nodeType":"FunctionDefinition","src":"3621:105:163","nodes":[],"body":{"id":81390,"nodeType":"Block","src":"3684:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3701:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81386,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3694:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3694:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81389,"nodeType":"ExpressionStatement","src":"3694:25:163"}]},"baseFunctions":[75900],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3630:22:163","parameters":{"id":81382,"nodeType":"ParameterList","parameters":[],"src":"3652:2:163"},"returnParameters":{"id":81385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81391,"src":"3676:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81383,"name":"uint48","nodeType":"ElementaryTypeName","src":"3676:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3675:8:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81401,"nodeType":"FunctionDefinition","src":"3732:109:163","nodes":[],"body":{"id":81400,"nodeType":"Block","src":"3799:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3816:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81396,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3809:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3809:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81399,"nodeType":"ExpressionStatement","src":"3809:25:163"}]},"baseFunctions":[75905],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3741:25:163","parameters":{"id":81392,"nodeType":"ParameterList","parameters":[],"src":"3766:2:163"},"returnParameters":{"id":81395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81401,"src":"3790:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81393,"name":"uint256","nodeType":"ElementaryTypeName","src":"3790:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3789:9:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81411,"nodeType":"FunctionDefinition","src":"3847:106:163","nodes":[],"body":{"id":81410,"nodeType":"Block","src":"3911:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3928:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81406,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3921:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3921:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81409,"nodeType":"ExpressionStatement","src":"3921:25:163"}]},"baseFunctions":[75910],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3856:23:163","parameters":{"id":81402,"nodeType":"ParameterList","parameters":[],"src":"3879:2:163"},"returnParameters":{"id":81405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81411,"src":"3903:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81403,"name":"uint64","nodeType":"ElementaryTypeName","src":"3903:6:163","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3902:8:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81421,"nodeType":"FunctionDefinition","src":"3959:102:163","nodes":[],"body":{"id":81420,"nodeType":"Block","src":"4019:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4036:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81416,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4029:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4029:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81419,"nodeType":"ExpressionStatement","src":"4029:25:163"}]},"baseFunctions":[75915],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"3968:19:163","parameters":{"id":81412,"nodeType":"ParameterList","parameters":[],"src":"3987:2:163"},"returnParameters":{"id":81415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81421,"src":"4011:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":81413,"name":"uint64","nodeType":"ElementaryTypeName","src":"4011:6:163","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4010:8:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81431,"nodeType":"FunctionDefinition","src":"4067:94:163","nodes":[],"body":{"id":81430,"nodeType":"Block","src":"4119:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4136:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81426,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4129:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81429,"nodeType":"ExpressionStatement","src":"4129:25:163"}]},"baseFunctions":[75920],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4076:10:163","parameters":{"id":81422,"nodeType":"ParameterList","parameters":[],"src":"4086:2:163"},"returnParameters":{"id":81425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81431,"src":"4110:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81423,"name":"address","nodeType":"ElementaryTypeName","src":"4110:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4109:9:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81441,"nodeType":"FunctionDefinition","src":"4167:94:163","nodes":[],"body":{"id":81440,"nodeType":"Block","src":"4219:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4236:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81436,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4229:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81439,"nodeType":"ExpressionStatement","src":"4229:25:163"}]},"baseFunctions":[75925],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4176:10:163","parameters":{"id":81432,"nodeType":"ParameterList","parameters":[],"src":"4186:2:163"},"returnParameters":{"id":81435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81441,"src":"4210:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4210:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4209:9:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81451,"nodeType":"FunctionDefinition","src":"4267:95:163","nodes":[],"body":{"id":81450,"nodeType":"Block","src":"4320:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4337:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81446,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4330:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4330:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81449,"nodeType":"ExpressionStatement","src":"4330:25:163"}]},"baseFunctions":[75930],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4276:11:163","parameters":{"id":81442,"nodeType":"ParameterList","parameters":[],"src":"4287:2:163"},"returnParameters":{"id":81445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81451,"src":"4311:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81443,"name":"uint256","nodeType":"ElementaryTypeName","src":"4311:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4310:9:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81462,"nodeType":"FunctionDefinition","src":"4368:125:163","nodes":[],"body":{"id":81461,"nodeType":"Block","src":"4451:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4468:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81457,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4461:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4461:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81460,"nodeType":"ExpressionStatement","src":"4461:25:163"}]},"baseFunctions":[75941],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4377:18:163","parameters":{"id":81452,"nodeType":"ParameterList","parameters":[],"src":"4395:2:163"},"returnParameters":{"id":81456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81462,"src":"4419:30:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":81454,"nodeType":"UserDefinedTypeName","pathNode":{"id":81453,"name":"Gear.SymbioticContracts","nameLocations":["4419:4:163","4424:18:163"],"nodeType":"IdentifierPath","referencedDeclaration":85905,"src":"4419:23:163"},"referencedDeclaration":85905,"src":"4419:23:163","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85905_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4418:32:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81470,"nodeType":"FunctionDefinition","src":"4499:81:163","nodes":[],"body":{"id":81469,"nodeType":"Block","src":"4538:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4555:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81465,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4548:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4548:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81468,"nodeType":"ExpressionStatement","src":"4548:25:163"}]},"baseFunctions":[75994],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4508:15:163","parameters":{"id":81463,"nodeType":"ParameterList","parameters":[],"src":"4523:2:163"},"returnParameters":{"id":81464,"nodeType":"ParameterList","parameters":[],"src":"4538:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81478,"nodeType":"FunctionDefinition","src":"4586:80:163","nodes":[],"body":{"id":81477,"nodeType":"Block","src":"4624:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4641:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81473,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4634:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4634:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81476,"nodeType":"ExpressionStatement","src":"4634:25:163"}]},"baseFunctions":[75998],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4595:14:163","parameters":{"id":81471,"nodeType":"ParameterList","parameters":[],"src":"4609:2:163"},"returnParameters":{"id":81472,"nodeType":"ParameterList","parameters":[],"src":"4624:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81488,"nodeType":"FunctionDefinition","src":"4672:93:163","nodes":[],"body":{"id":81487,"nodeType":"Block","src":"4723:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4740:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81483,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4733:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4733:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81486,"nodeType":"ExpressionStatement","src":"4733:25:163"}]},"baseFunctions":[75946],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4681:20:163","parameters":{"id":81481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81488,"src":"4702:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81479,"name":"address","nodeType":"ElementaryTypeName","src":"4702:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4701:9:163"},"returnParameters":{"id":81482,"nodeType":"ParameterList","parameters":[],"src":"4723:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81498,"nodeType":"FunctionDefinition","src":"4771:92:163","nodes":[],"body":{"id":81497,"nodeType":"Block","src":"4821:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4838:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81493,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4831:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4831:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81496,"nodeType":"ExpressionStatement","src":"4831:25:163"}]},"baseFunctions":[75951],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4780:19:163","parameters":{"id":81491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81498,"src":"4800:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81489,"name":"address","nodeType":"ElementaryTypeName","src":"4800:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4799:9:163"},"returnParameters":{"id":81492,"nodeType":"ParameterList","parameters":[],"src":"4821:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81506,"nodeType":"FunctionDefinition","src":"4869:82:163","nodes":[],"body":{"id":81505,"nodeType":"Block","src":"4909:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4926:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81501,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4919:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81504,"nodeType":"ExpressionStatement","src":"4919:25:163"}]},"baseFunctions":[75990],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4878:16:163","parameters":{"id":81499,"nodeType":"ParameterList","parameters":[],"src":"4894:2:163"},"returnParameters":{"id":81500,"nodeType":"ParameterList","parameters":[],"src":"4909:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81516,"nodeType":"FunctionDefinition","src":"4957:91:163","nodes":[],"body":{"id":81515,"nodeType":"Block","src":"5006:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5023:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81511,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5016:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5016:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81514,"nodeType":"ExpressionStatement","src":"5016:25:163"}]},"baseFunctions":[76004],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"4966:18:163","parameters":{"id":81509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81516,"src":"4985:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81507,"name":"address","nodeType":"ElementaryTypeName","src":"4985:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4984:9:163"},"returnParameters":{"id":81510,"nodeType":"ParameterList","parameters":[],"src":"5006:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81532,"nodeType":"FunctionDefinition","src":"5054:134:163","nodes":[],"body":{"id":81531,"nodeType":"Block","src":"5146:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5163:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81527,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5156:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5156:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81530,"nodeType":"ExpressionStatement","src":"5156:25:163"}]},"baseFunctions":[76042],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5063:25:163","parameters":{"id":81523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81532,"src":"5089:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81517,"name":"address","nodeType":"ElementaryTypeName","src":"5089:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81532,"src":"5098:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81519,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81532,"src":"5107:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5107:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5088:27:163"},"returnParameters":{"id":81526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81525,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81532,"src":"5137:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5137:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5136:9:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81547,"nodeType":"FunctionDefinition","src":"5194:150:163","nodes":[],"body":{"id":81546,"nodeType":"Block","src":"5302:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5319:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81542,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5312:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5312:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81545,"nodeType":"ExpressionStatement","src":"5312:25:163"}]},"baseFunctions":[76053],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5203:23:163","parameters":{"id":81538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81547,"src":"5227:35:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":81534,"nodeType":"UserDefinedTypeName","pathNode":{"id":81533,"name":"Gear.StakerRewardsCommitment","nameLocations":["5227:4:163","5232:23:163"],"nodeType":"IdentifierPath","referencedDeclaration":85724,"src":"5227:28:163"},"referencedDeclaration":85724,"src":"5227:28:163","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":81537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81547,"src":"5264:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81536,"name":"uint48","nodeType":"ElementaryTypeName","src":"5264:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5226:45:163"},"returnParameters":{"id":81541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81547,"src":"5293:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5293:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5292:9:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81559,"nodeType":"FunctionDefinition","src":"5350:95:163","nodes":[],"body":{"id":81558,"nodeType":"Block","src":"5403:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5420:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81554,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5413:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5413:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81557,"nodeType":"ExpressionStatement","src":"5413:25:163"}]},"baseFunctions":[76012],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5359:13:163","parameters":{"id":81552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81559,"src":"5373:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81548,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81559,"src":"5382:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81550,"name":"address","nodeType":"ElementaryTypeName","src":"5382:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5372:18:163"},"returnParameters":{"id":81553,"nodeType":"ParameterList","parameters":[],"src":"5403:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81569,"nodeType":"FunctionDefinition","src":"5451:85:163","nodes":[],"body":{"id":81568,"nodeType":"Block","src":"5494:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5511:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81564,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5504:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81567,"nodeType":"ExpressionStatement","src":"5504:25:163"}]},"baseFunctions":[76024],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5460:12:163","parameters":{"id":81562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81569,"src":"5473:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81560,"name":"address","nodeType":"ElementaryTypeName","src":"5473:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:9:163"},"returnParameters":{"id":81563,"nodeType":"ParameterList","parameters":[],"src":"5494:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81579,"nodeType":"FunctionDefinition","src":"5542:84:163","nodes":[],"body":{"id":81578,"nodeType":"Block","src":"5584:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5601:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81574,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5594:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5594:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81577,"nodeType":"ExpressionStatement","src":"5594:25:163"}]},"baseFunctions":[76030],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5551:11:163","parameters":{"id":81572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81579,"src":"5563:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81570,"name":"address","nodeType":"ElementaryTypeName","src":"5563:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5562:9:163"},"returnParameters":{"id":81573,"nodeType":"ParameterList","parameters":[],"src":"5584:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81589,"nodeType":"FunctionDefinition","src":"5632:88:163","nodes":[],"body":{"id":81588,"nodeType":"Block","src":"5678:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5695:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81584,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5688:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5688:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81587,"nodeType":"ExpressionStatement","src":"5688:25:163"}]},"baseFunctions":[76018],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5641:15:163","parameters":{"id":81582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81589,"src":"5657:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81580,"name":"address","nodeType":"ElementaryTypeName","src":"5657:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5656:9:163"},"returnParameters":{"id":81583,"nodeType":"ParameterList","parameters":[],"src":"5678:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81603,"nodeType":"FunctionDefinition","src":"5726:117:163","nodes":[],"body":{"id":81602,"nodeType":"Block","src":"5801:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5818:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81598,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5811:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5811:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81601,"nodeType":"ExpressionStatement","src":"5811:25:163"}]},"baseFunctions":[75972],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5735:18:163","parameters":{"id":81594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81603,"src":"5754:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81590,"name":"address","nodeType":"ElementaryTypeName","src":"5754:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81603,"src":"5763:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81592,"name":"uint48","nodeType":"ElementaryTypeName","src":"5763:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5753:17:163"},"returnParameters":{"id":81597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81603,"src":"5792:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81595,"name":"uint256","nodeType":"ElementaryTypeName","src":"5792:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5791:9:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81619,"nodeType":"FunctionDefinition","src":"5849:142:163","nodes":[],"body":{"id":81618,"nodeType":"Block","src":"5949:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5966:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81614,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5959:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5959:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81617,"nodeType":"ExpressionStatement","src":"5959:25:163"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5858:25:163","parameters":{"id":81606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81619,"src":"5884:6:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":81604,"name":"uint48","nodeType":"ElementaryTypeName","src":"5884:6:163","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5883:8:163"},"returnParameters":{"id":81613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81619,"src":"5913:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81607,"name":"address","nodeType":"ElementaryTypeName","src":"5913:7:163","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81608,"nodeType":"ArrayTypeName","src":"5913:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":81612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81619,"src":"5931:16:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":81610,"name":"uint256","nodeType":"ElementaryTypeName","src":"5931:7:163","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81611,"nodeType":"ArrayTypeName","src":"5931:9:163","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5912:36:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81631,"nodeType":"FunctionDefinition","src":"5997:98:163","nodes":[],"body":{"id":81630,"nodeType":"Block","src":"6053:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6070:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81626,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6063:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6063:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81629,"nodeType":"ExpressionStatement","src":"6063:25:163"}]},"baseFunctions":[75979],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6006:12:163","parameters":{"id":81624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81631,"src":"6019:20:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$75865_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":81621,"nodeType":"UserDefinedTypeName","pathNode":{"id":81620,"name":"SlashData","nameLocations":["6019:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":75865,"src":"6019:9:163"},"referencedDeclaration":75865,"src":"6019:9:163","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$75865_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":81622,"nodeType":"ArrayTypeName","src":"6019:11:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$75865_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6018:22:163"},"returnParameters":{"id":81625,"nodeType":"ParameterList","parameters":[],"src":"6053:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81643,"nodeType":"FunctionDefinition","src":"6101:104:163","nodes":[],"body":{"id":81642,"nodeType":"Block","src":"6163:42:163","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":81639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6180:17:163","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":81638,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6173:6:163","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":81640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:25:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81641,"nodeType":"ExpressionStatement","src":"6173:25:163"}]},"baseFunctions":[75986],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6110:12:163","parameters":{"id":81636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81643,"src":"6123:26:163","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$75870_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":81633,"nodeType":"UserDefinedTypeName","pathNode":{"id":81632,"name":"SlashIdentifier","nameLocations":["6123:15:163"],"nodeType":"IdentifierPath","referencedDeclaration":75870,"src":"6123:15:163"},"referencedDeclaration":75870,"src":"6123:15:163","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$75870_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":81634,"nodeType":"ArrayTypeName","src":"6123:17:163","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$75870_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6122:28:163"},"returnParameters":{"id":81637,"nodeType":"ParameterList","parameters":[],"src":"6163:0:163"},"scope":81742,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81656,"nodeType":"FunctionDefinition","src":"6211:201:163","nodes":[],"body":{"id":81655,"nodeType":"Block","src":"6281:131:163","nodes":[],"statements":[{"assignments":[81650],"declarations":[{"constant":false,"id":81650,"mutability":"mutable","name":"slot","nameLocation":"6299:4:163","nodeType":"VariableDeclaration","scope":81655,"src":"6291:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6291:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81653,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81651,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81681,"src":"6306:15:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":81652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6306:17:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6291:32:163"},{"AST":{"nativeSrc":"6359:47:163","nodeType":"YulBlock","src":"6359:47:163","statements":[{"nativeSrc":"6373:23:163","nodeType":"YulAssignment","src":"6373:23:163","value":{"name":"slot","nativeSrc":"6392:4:163","nodeType":"YulIdentifier","src":"6392:4:163"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6373:15:163","nodeType":"YulIdentifier","src":"6373:15:163"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81647,"isOffset":false,"isSlot":true,"src":"6373:15:163","suffix":"slot","valueSize":1},{"declaration":81650,"isOffset":false,"isSlot":false,"src":"6392:4:163","valueSize":1}],"flags":["memory-safe"],"id":81654,"nodeType":"InlineAssembly","src":"6334:72:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6220:8:163","parameters":{"id":81644,"nodeType":"ParameterList","parameters":[],"src":"6228:2:163"},"returnParameters":{"id":81648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81647,"mutability":"mutable","name":"middleware","nameLocation":"6269:10:163","nodeType":"VariableDeclaration","scope":81656,"src":"6253:26:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":81646,"nodeType":"UserDefinedTypeName","pathNode":{"id":81645,"name":"Storage","nameLocations":["6253:7:163"],"nodeType":"IdentifierPath","referencedDeclaration":75851,"src":"6253:7:163"},"referencedDeclaration":75851,"src":"6253:7:163","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$75851_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6252:28:163"},"scope":81742,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":81669,"nodeType":"FunctionDefinition","src":"6418:209:163","nodes":[],"body":{"id":81668,"nodeType":"Block","src":"6494:133:163","nodes":[],"statements":[{"assignments":[81663],"declarations":[{"constant":false,"id":81663,"mutability":"mutable","name":"slot","nameLocation":"6512:4:163","nodeType":"VariableDeclaration","scope":81668,"src":"6504:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6504:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81666,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81664,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81693,"src":"6519:18:163","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":81665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6519:20:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6504:35:163"},{"AST":{"nativeSrc":"6574:47:163","nodeType":"YulBlock","src":"6574:47:163","statements":[{"nativeSrc":"6588:23:163","nodeType":"YulAssignment","src":"6588:23:163","value":{"name":"slot","nativeSrc":"6607:4:163","nodeType":"YulIdentifier","src":"6607:4:163"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"6588:15:163","nodeType":"YulIdentifier","src":"6588:15:163"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81660,"isOffset":false,"isSlot":true,"src":"6588:15:163","suffix":"slot","valueSize":1},{"declaration":81663,"isOffset":false,"isSlot":false,"src":"6607:4:163","valueSize":1}],"flags":["memory-safe"],"id":81667,"nodeType":"InlineAssembly","src":"6549:72:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6427:11:163","parameters":{"id":81657,"nodeType":"ParameterList","parameters":[],"src":"6438:2:163"},"returnParameters":{"id":81661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81660,"mutability":"mutable","name":"poaStorage","nameLocation":"6482:10:163","nodeType":"VariableDeclaration","scope":81669,"src":"6463:29:163","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$76371_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":81659,"nodeType":"UserDefinedTypeName","pathNode":{"id":81658,"name":"POAStorage","nameLocations":["6463:10:163"],"nodeType":"IdentifierPath","referencedDeclaration":76371,"src":"6463:10:163"},"referencedDeclaration":76371,"src":"6463:10:163","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$76371_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6462:31:163"},"scope":81742,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":81681,"nodeType":"FunctionDefinition","src":"6633:128:163","nodes":[],"body":{"id":81680,"nodeType":"Block","src":"6691:70:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":81676,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81196,"src":"6735:12:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81674,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"6708:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":81675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6720:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"6708:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":81677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6708:40:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":81678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6749:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"6708:46:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81673,"id":81679,"nodeType":"Return","src":"6701:53:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6642:15:163","parameters":{"id":81670,"nodeType":"ParameterList","parameters":[],"src":"6657:2:163"},"returnParameters":{"id":81673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81681,"src":"6682:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6682:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6681:9:163"},"scope":81742,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":81693,"nodeType":"FunctionDefinition","src":"6767:135:163","nodes":[],"body":{"id":81692,"nodeType":"Block","src":"6828:74:163","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":81688,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81199,"src":"6872:16:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81686,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"6845:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":81687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6857:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"6845:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":81689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6845:44:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":81690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6890:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"6845:50:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81685,"id":81691,"nodeType":"Return","src":"6838:57:163"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6776:18:163","parameters":{"id":81682,"nodeType":"ParameterList","parameters":[],"src":"6794:2:163"},"returnParameters":{"id":81685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81693,"src":"6819:7:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6819:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6818:9:163"},"scope":81742,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":81717,"nodeType":"FunctionDefinition","src":"6908:200:163","nodes":[],"body":{"id":81716,"nodeType":"Block","src":"6976:132:163","nodes":[],"statements":[{"assignments":[81701],"declarations":[{"constant":false,"id":81701,"mutability":"mutable","name":"slot","nameLocation":"6994:4:163","nodeType":"VariableDeclaration","scope":81716,"src":"6986:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6986:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81706,"initialValue":{"arguments":[{"id":81704,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81695,"src":"7028:9:163","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":81702,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"7001:14:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":81703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7016:11:163","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"7001:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":81705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7001:37:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6986:52:163"},{"expression":{"id":81714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":81710,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81196,"src":"7075:12:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81707,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"7048:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":81709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7060:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"7048:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":81711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7048:40:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":81712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7089:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"7048:46:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81713,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"7097:4:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7048:53:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81715,"nodeType":"ExpressionStatement","src":"7048:53:163"}]},"implemented":true,"kind":"function","modifiers":[{"id":81698,"kind":"modifierInvocation","modifierName":{"id":81697,"name":"onlyOwner","nameLocations":["6966:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"6966:9:163"},"nodeType":"ModifierInvocation","src":"6966:9:163"}],"name":"_setStorageSlot","nameLocation":"6917:15:163","parameters":{"id":81696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81695,"mutability":"mutable","name":"namespace","nameLocation":"6947:9:163","nodeType":"VariableDeclaration","scope":81717,"src":"6933:23:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":81694,"name":"string","nodeType":"ElementaryTypeName","src":"6933:6:163","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6932:25:163"},"returnParameters":{"id":81699,"nodeType":"ParameterList","parameters":[],"src":"6976:0:163"},"scope":81742,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81741,"nodeType":"FunctionDefinition","src":"7114:207:163","nodes":[],"body":{"id":81740,"nodeType":"Block","src":"7185:136:163","nodes":[],"statements":[{"assignments":[81725],"declarations":[{"constant":false,"id":81725,"mutability":"mutable","name":"slot","nameLocation":"7203:4:163","nodeType":"VariableDeclaration","scope":81740,"src":"7195:12:163","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7195:7:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81730,"initialValue":{"arguments":[{"id":81728,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81719,"src":"7237:9:163","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":81726,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"7210:14:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":81727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7225:11:163","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"7210:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":81729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7210:37:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7195:52:163"},{"expression":{"id":81738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":81734,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81199,"src":"7284:16:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81731,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"7257:11:163","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":81733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7269:14:163","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"7257:26:163","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":81735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7257:44:163","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":81736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7302:5:163","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"7257:50:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81737,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81725,"src":"7310:4:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7257:57:163","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81739,"nodeType":"ExpressionStatement","src":"7257:57:163"}]},"implemented":true,"kind":"function","modifiers":[{"id":81722,"kind":"modifierInvocation","modifierName":{"id":81721,"name":"onlyOwner","nameLocations":["7175:9:163"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"7175:9:163"},"nodeType":"ModifierInvocation","src":"7175:9:163"}],"name":"_setPoaStorageSlot","nameLocation":"7123:18:163","parameters":{"id":81720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81719,"mutability":"mutable","name":"namespace","nameLocation":"7156:9:163","nodeType":"VariableDeclaration","scope":81741,"src":"7142:23:163","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":81718,"name":"string","nodeType":"ElementaryTypeName","src":"7142:6:163","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7141:25:163"},"returnParameters":{"id":81723,"nodeType":"ParameterList","parameters":[],"src":"7185:0:163"},"scope":81742,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":81184,"name":"IMiddleware","nameLocations":["831:11:163"],"nodeType":"IdentifierPath","referencedDeclaration":76054,"src":"831:11:163"},"id":81185,"nodeType":"InheritanceSpecifier","src":"831:11:163"},{"baseName":{"id":81186,"name":"IPOAMiddleware","nameLocations":["844:14:163"],"nodeType":"IdentifierPath","referencedDeclaration":76379,"src":"844:14:163"},"id":81187,"nodeType":"InheritanceSpecifier","src":"844:14:163"},{"baseName":{"id":81188,"name":"OwnableUpgradeable","nameLocations":["860:18:163"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"860:18:163"},"id":81189,"nodeType":"InheritanceSpecifier","src":"860:18:163"},{"baseName":{"id":81190,"name":"ReentrancyGuardTransient","nameLocations":["880:24:163"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"880:24:163"},"id":81191,"nodeType":"InheritanceSpecifier","src":"880:24:163"},{"baseName":{"id":81192,"name":"UUPSUpgradeable","nameLocations":["906:15:163"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"906:15:163"},"id":81193,"nodeType":"InheritanceSpecifier","src":"906:15:163"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[81742,2079,376,6594,19465,20363,1913,76379,76054],"name":"POAMiddleware","nameLocation":"814:13:163","scope":81743,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,19301,19306,75675,75678,75681,75684,75687,75690,75693,75696,75699,75702,75705,75708,75711,75714,75717,75720,75723,75726,75729,75732,75735,75738,75741,75744,75747,75750,75753,75756,75759,75762,75765,75768,75771,75774,75777,75780,75783],"usedEvents":[324,1670,19312]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":163} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Router.json b/ethexe/ethereum/abi/Router.json index 089c0b1e076..3a93d2d87f9 100644 --- a/ethexe/ethereum/abi/Router.json +++ b/ethexe/ethereum/abi/Router.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]},{"name":"head","type":"bytes32","internalType":"bytes32"},{"name":"lastAdvancedEthBlock","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"hasAggregatedPublicKey","type":"bool","internalType":"bool"},{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"name":"_signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterfaceAndExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v","type":"uint8","internalType":"uint8"},{"name":"_r","type":"bytes32","internalType":"bytes32"},{"name":"_s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v","type":"uint8","internalType":"uint8"},{"name":"_r","type":"bytes32","internalType":"bytes32"},{"name":"_s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v","type":"uint8","internalType":"uint8"},{"name":"_r","type":"bytes32","internalType":"bytes32"},{"name":"_s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidationBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationExtraFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationOnBehalf","inputs":[{"name":"_requester","type":"address","internalType":"address"},{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_blobHashes","type":"bytes32[]","internalType":"bytes32[]"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v1","type":"uint8","internalType":"uint8"},{"name":"_r1","type":"bytes32","internalType":"bytes32"},{"name":"_s1","type":"bytes32","internalType":"bytes32"},{"name":"_v2","type":"uint8","internalType":"uint8"},{"name":"_r2","type":"bytes32","internalType":"bytes32"},{"name":"_s2","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationBaseFee","inputs":[{"name":"newBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationExtraFee","inputs":[{"name":"newExtraFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"},{"name":"maxValidators","type":"uint16","internalType":"uint16"},{"name":"requestCodeValidationBaseFee","type":"uint256","internalType":"uint256"},{"name":"requestCodeValidationExtraFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BatchCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"EBCommitted","inputs":[{"name":"ethBlockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"MBCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidBlobHash","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"providedBlobHash","type":"bytes32","internalType":"bytes32"},{"name":"expectedBlobHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidBlobHashesLength","inputs":[{"name":"providedLength","type":"uint256","internalType":"uint256"},{"name":"expectedLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"requester","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020615c155f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051615b4e90816100c7823960805181818161282f01526128c20152f35b6001600160401b0319166001600160401b039081175f516020615c155f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613bba565b5f516020615ace5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613460575080630b9737ce1461342d5780630c18d277146133625780630d91bf2a1461319457806311bec80d146131615780631622441d14612cee578063188509e914612cc057806328e24b3d14612c925780633644e51514612c775780633683c4d214612bba5780633bd109fa14612b6b5780633d43b41814612b175780633f4ba83a14612a975780634f1ef2861461288357806352d1902d1461281c57806353f7fd4814611e375780635c975abb14611e085780636c2eb35014611899578063715018a61461183057806371a8cf2d146118025780637ecebe00146117aa57806382bdeaad146116925780638456cb591461161f57806384b0196e146114f757806384d22a4f1461149957806388f50cf0146114605780638b1edf1e146114015780638c4ace6a146112925780638da5cb5b1461125d5780638f381dbe146112175780639067088e146111ce57806396a2ddfa146111a05780639eb939a814611149578063a5d53a44146110c9578063ad3cb1cc14611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26134b6565b60036102fd5f516020615ace5f395f51905f525442906154fe565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796134b6565b610381613b87565b613b16565b80f35b50346103205780600319360112610320576020601f5f516020615ace5f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26134b6565b602435906044356001600160401b03811161080b576103f59036906004016134f4565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613bba565b8749156107f4575f516020615ace5f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f1981018352826135a5565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e0826135a5565b5190206105616156c6565b906040519161190160f01b83526002830152602282015260c43591604260a43592206157a7565b90929192615829565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613b09565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e881836135a5565b810190613747565b5f610677565b503d6106de565b6040513d86823e3d90fd5b81610715919493946135a5565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610764838686613911565b3514610771838686613911565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd90613afb565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a61348a565b6108326134a0565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613bba565b61086b602435600435613be1565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016136fd565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b6109848380926135a5565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e881836135a5565b5f610906565b6040513d88823e3d90fd5b816109ea916135a5565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615ace5f395f51905f525460086004610a2842846154fe565b0154910154906001600160801b038260801c921690615457565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615ace5f395f51905f525442906154fe565b0154604051908152f35b50346103205780600319360112610320575f516020615ace5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615ace5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615ace5f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615ace5f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f516020615ace5f395f51905f525442906154fe565b01613aa8565b60405191829160208352602083019061367a565b0390f35b5034610320578060031936011261032057604051610bd58161356e565b610bdd6139f7565b8152604051610beb81613553565b5f8152602081015f90526020820152610c026139f7565b6040820152610c0f613a75565b6060820152604051610c2081613553565b5f80825260208201526080820152610c366139f7565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615ace5f395f51905f5254610c71613a75565b50610c7e60098201615752565b90610c8b600f8201615752565b60088201549260405193610c9e8561358a565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce98761356e565b604051610cf581613524565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613553565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613524565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e60158901613949565b9760808a01988952601601610db290613a15565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb3916136b6565b90606001519061027f198a8203016102e08b0152610ed0916136b6565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615ace5f395f51905f52540160043582528452205416610f816040518092613635565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb49036906004016134f4565b905f516020615ace5f395f51905f525490610fce836138a6565b91610fdc60405193846135a5565b838352610fe8846138a6565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d6110586001938588613911565b613977565b828060a01b03165f528360205260405f20546110798288613935565b5201610ffc565b503461032057806003193601126103205750610bb46040516110a36040826135a5565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613656565b50346103205780600319360112610320575f516020615ace5f395f51905f52546001600160a01b03906002906111009042906154fe565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c808252019060408201918260405260208352611144603f19926060830190613656565b030190f35b50346103205780600319360112610320576111626139f7565b50606061117f60165f516020615ace5f395f51905f525401613a15565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615ace5f395f51905f52540154604051908152f35b5034610320576020366003190112610320576111e86134b6565b601a5f516020615ace5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b03821161032057602061125361124d36600486016134f4565b9061398b565b6040519015158152f35b50346103205780600319360112610320575f516020615a4e5f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff81168103610725576112bc613bba565b8249156113f2575f516020615ace5f395f51905f52546001810154156113e35760198101918385528260205260ff60408620541660038110156113cf576113c0576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af16113ab575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b816113b5916135a5565b61072557825f611376565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f525460018101908154611451576002015463ffffffff1640908115611442575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576114b2613780565b5060406114cf60155f516020615ace5f395f51905f525401613949565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f516020615a8e5f395f51905f52541580611609575b156115cc576115709061152f6152dd565b906115386153aa565b90602061157e6040519361154c83866135a5565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613656565b908682036040880152613656565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b8281106115b557505050500390f35b8351855286955093810193928101926001016115a6565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615b2e5f395f51905f52541561151e565b5034610320578060031936011261032057611638613b87565b611640613bba565b600160ff195f516020615aee5f395f51905f525416175f516020615aee5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e576116c39036906004016134f4565b905f516020615ace5f395f51905f5254906116dd836138a6565b916116eb60405193846135a5565b8383526116f7846138a6565b602084019490601f19013686376019869201915b81811061176057868587604051928392602084019060208552518091526040840192915b81811061173d575050500390f35b91935091602080826117526001948851613635565b01940191019184939261172f565b61176b818386613911565b3587528260205260ff6040882054166117848287613935565b6003821015611796575260010161170b565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b036117d26134b6565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615ace5f395f51905f52540154604051908152f35b5034610320578060031936011261032057611849613b87565b5f516020615a4e5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346103205780600319360112610320576118b2613b87565b5f516020615b0e5f395f51905f525460ff8160401c16908115611df3575b50611de4575f516020615b0e5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615a4e5f395f51905f525461192a906001600160a01b0316611922615727565b610381615727565b6119326137b6565b9061193b6137e3565b90611944615727565b61194c615727565b82516001600160401b038111611ce7576119735f516020615a2e5f395f51905f52546152a5565b601f8111611d80575b506020601f8211600114611d0657829394829392611cfb575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b81516001600160401b038111611ce7576119dd5f516020615a6e5f395f51905f52546152a5565b601f8111611c7a575b50602092601f8211600114611c0157928293829392611bf6575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b805f516020615a8e5f395f51905f5255805f516020615b2e5f395f51905f52555f516020615ace5f395f51905f5254611a5861520d565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611aa681613553565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611ad142846154fe565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611b22918491611bc7575b5061385a565b90816103e8026103e881048303611bb357601e820155816101f402916101f4830403611b9f57601f015560ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611be9915060203d602011611bef575b611be181836135a5565b810190613841565b5f611b1c565b503d611bd7565b015190505f80611a00565b601f198216935f516020615a6e5f395f51905f52845280842091845b868110611c625750836001959610611c4a575b505050811b015f516020615a6e5f395f51905f5255611a21565b01515f1960f88460031b161c191690555f8080611c30565b91926020600181928685015181550194019201611c1d565b818111156119e6575f516020615a6e5f395f51905f528352611cd9907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510611cdf575b601f82910160051c03910161528a565b5f6119e6565b859150611cc9565b634e487b7160e01b82526041600452602482fd5b015190505f80611995565b5f516020615a2e5f395f51905f52835280832090601f198316845b818110611d6857509583600195969710611d50575b505050811b015f516020615a2e5f395f51905f52556119b6565b01515f1960f88460031b161c191690555f8080611d36565b9192602060018192868b015181550194019201611d21565b8181111561197c575f516020615a2e5f395f51905f528352611dde907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611cdf57601f82910160051c03910161528a565b5f61197c565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f6118d0565b5034610320578060031936011261032057602060ff5f516020615aee5f395f51905f5254166040519015158152f35b50346103205761016036600319011261032057611e526134b6565b906024356001600160a01b0381169081900361098e57611e7061348a565b92611e796134a0565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b03811161080757611eed9036906004016134f4565b9590935f516020615b0e5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612814575b600114908161280a575b159081612801575b506127f257611f6f908a60016001600160401b03195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f52556127c2575b611922615727565b611f77615727565b611f7f6137b6565b611f876137e3565b90611f90615727565b611f98615727565b8051906001600160401b0382116127ae5781908b611fc35f516020615a2e5f395f51905f52546152a5565b601f811161275d575b5050602090601f83116001146126e1578c926126d6575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b8051906001600160401b0382116126c257819061202e5f516020615a6e5f395f51905f52546152a5565b601f8111612653575b50602090601f83116001146125d7578b926125cc575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b875f516020615a8e5f395f51905f5255875f516020615b2e5f395f51905f5255612096615727565b61209e615727565b42156125bd5781156125ae578181111561259f57600a6120be8383613802565b04831015612590576040809a81516120d683826135a5565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612109613b87565b5f1991519020018a5260ff1960208b2016809e815f516020615ace5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a161215e61520d565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906121a882613524565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561221c613780565b50895161222881613553565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061226d81613524565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa90811561258657906122cd918691611bc7575061385a565b806103e8026103e88104820361257257601e8a0155806101f402906101f482040361255e579061232d91601f8a015561232587519861230b8a613553565b60e4358a5260208a019461010435865260243692016135e1565b9336916138bd565b958051825170014551231950b75fc4402da1732fc9bebe198210918261254d575b50501561253e5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156125315752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156123f65782845260208085208201546001600160a01b03165f90815290869052869020805460ff191690556001016123be565b509195949094865b835181101561243e576001906001600160a01b0361241c8287613935565b5116828060a01b03165f5285602052865f208260ff19825416179055016123fe565b50925092938151916001600160401b03831161251d57600160401b831161251d576020908254848455808510612502575b500190865260208620865b8381106124e55750505050600e42910155612493575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161247a565b61251790848a528580858c200191039061528a565b5f61246f565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6125579250615923565b5f8061234e565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f8061204d565b5f516020615a6e5f395f51905f528c52818c209250601f1984168c5b81811061263b5750908460019594939210612623575b505050811b015f516020615a6e5f395f51905f525561206e565b01515f1960f88460031b161c191690555f8080612609565b929360206001819287860151815501950193016125f3565b82811115612037575f516020615a6e5f395f51905f528c526126b4907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e602087106126ba575b50601f82910160051c03910161528a565b5f612037565b91508e6126a3565b634e487b7160e01b8a52604160045260248afd5b015190505f80611fe3565b5f516020615a2e5f395f51905f528d52818d209250601f1984168d5b818110612745575090846001959493921061272d575b505050811b015f516020615a2e5f395f51905f5255612004565b01515f1960f88460031b161c191690555f8080612713565b929360206001819287860151815501950193016126fd565b83811115611fcc575f516020615a2e5f395f51905f5261279f92528d6020812091601f860160051c91602087106127a65750601f82910160051c03910161528a565b8b5f611fcc565b91508f6126a3565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f5255611f67565b63f92ee8a960e01b8952600489fd5b9050155f611f2d565b303b159150611f25565b8b9150611f1b565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036128745760206040515f516020615aae5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b506040366003190112610320576128986134b6565b906024356001600160401b03811161098e576128b8903690600401613617565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612a75575b50612a66576128fa613b87565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612a2e575b5061293f57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615aae5f395f51905f528103612a1c5750813b15612a0a575f516020615aae5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156129f057808360206129e495519101845af43d156129e8573d916129c8836135c6565b926129d660405194856135a5565b83523d85602085013e6159cf565b5080f35b6060916159cf565b505050346129fb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612a5e575b81612a4a602093836135a5565b81010312612a5a5751945f612926565b5f80fd5b3d9150612a3d565b63703e46dd60e11b8252600482fd5b5f516020615aae5f395f51905f52546001600160a01b0316141590505f6128ed565b5034610320578060031936011261032057612ab0613b87565b5f516020615aee5f395f51905f525460ff811615612b085760ff19165f516020615aee5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612b316134b6565b612b39613b87565b5f516020615ace5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612b84613780565b506040612ba8612ba35f516020615ace5f395f51905f525442906154fe565b613798565b60208251918051835201516020820152f35b503461032057606036600319011261032057612bd461348a565b612bdc613bba565b612bea602435600435614057565b506001600160a01b0390811691908116612c725750335b5f516020615ace5f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612c01565b50346103205780600319360112610320576020610a426156c6565b5034610320578060031936011261032057602060015f516020615ace5f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615ace5f395f51905f52540154604051908152f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57612d4b9036906004016134f4565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6131525760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ace5f395f51905f5254906001820154156113e3578154156130f6575b600382015460446004350135036130e75765ffffffffffff60048301541665ffffffffffff612dea60246004350161376d565b16106130d957612dff600435600401836141f9565b92612e1460a4600435016004356004016146fb565b808096925060051b046020148515171561257257612e348560051b615496565b8695865b818810612fa45750612f6a965060051b902090612e5a6004356004018661473d565b612e6960043560040187614b1b565b90612e7860246004350161376d565b93612e8760646004350161375f565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152612eec60e7826135a5565b5190209283600382015565ffffffffffff612f0b60246004350161376d565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff612f5f60246004350161376d565b169360243591614fa4565b15612f9557807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b612fb860a4600435016004356004016146fb565b8910156130c5578860061b8101358a526019880160205260ff60408b20541660038110156107d1576001036130b65760019160209161307b8b8b8e868360061b8601019261300584614730565b156130975760061b85013590525060198c01855260408e20805460ff19166002179055601c8c01805461303790613afb565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661306684614730565b1515926040519060061b8701358152a2614730565b908b60061b01358c52825360218b208186015201970196612e38565b60409260199160061b87013583520187522060ff19815416905561303a565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b61311361310760646004350161375f565b6004356004013561414f565b156131435765ffffffffffff61312d60246004350161376d565b164211612db757631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205760203660031901126103205761317b613b87565b600435601e5f516020615ace5f395f51905f5254015580f35b503461032057610100366003190112610320576131af61348a565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576131da613bba565b6131e8602435600435614057565b6006015490936001600160a01b0390911691823b1561080b5761322f8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016136fd565b038183885af161334d575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613342578591613323575b5015613314576001600160a01b039081169290811661330e575033905b5f516020615ace5f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b9061329f565b631e4e7d0960e21b8452600484fd5b61333c915060203d6020116106f6576106e881836135a5565b5f613282565b6040513d87823e3d90fd5b81613357916135a5565b61072557825f61323a565b34612a5a576080366003190112612a5a5761337b61348a565b6133836134a0565b9061338c613bba565b61339a602435600435613be1565b506001600160a01b0390811691908116613427575033915b813b15612a5a57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561341c5760209261340c575b50604051908152f35b5f613416916135a5565b5f613403565b6040513d5f823e3d90fd5b916133b2565b34612a5a576020366003190112612a5a57613446613b87565b600435601f5f516020615ace5f395f51905f525401555f80f35b34612a5a575f366003190112612a5a57602090601c5f516020615ace5f395f51905f525401548152f35b604435906001600160a01b0382168203612a5a57565b606435906001600160a01b0382168203612a5a57565b600435906001600160a01b0382168203612a5a57565b35906001600160a01b0382168203612a5a57565b35906001600160801b0382168203612a5a57565b9181601f84011215612a5a578235916001600160401b038311612a5a576020808501948460051b010111612a5a57565b606081019081106001600160401b0382111761353f57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761353f57604052565b61016081019081106001600160401b0382111761353f57604052565b608081019081106001600160401b0382111761353f57604052565b90601f801991011681019081106001600160401b0382111761353f57604052565b6001600160401b03811161353f57601f01601f191660200190565b9291926135ed826135c6565b916135fb60405193846135a5565b829481845281830111612a5a578281602093845f960137010152565b9080601f83011215612a5a57816020613632933591016135e1565b90565b9060038210156136425752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106136975750505090565b82516001600160a01b031684526020938401939092019160010161368a565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606136f4604085015160a08386015260a085019061367a565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612a5a57518015158103612a5a5790565b3560ff81168103612a5a5790565b3565ffffffffffff81168103612a5a5790565b6040519061378d82613553565b5f6020838281520152565b906040516137a581613553565b602060018294805484520154910152565b604051906137c56040836135a5565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906137f26040836135a5565b60018252603160f81b6020830152565b9190820391821161380f57565b634e487b7160e01b5f52601160045260245ffd5b811561382d570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612a5a575160ff81168103612a5a5790565b60ff16604d811161380f57600a0a90565b8181029291811591840414171561380f57565b9190826040910312612a5a5760405161389681613553565b6020808294803584520135910152565b6001600160401b03811161353f5760051b60200190565b9291906138c9816138a6565b936138d760405195866135a5565b602085838152019160051b8101928311612a5a57905b8282106138f957505050565b60208091613906846134cc565b8152019101906138ed565b91908110156139215760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139215760209160051b010190565b9060405161395681613553565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612a5a5790565b6139a45f516020615ace5f395f51905f525442906154fe565b600301905f5b8381106139ba5750505050600190565b6139c8611058828685613911565b6001600160a01b03165f9081526020849052604090205460ff16156139ef576001016139aa565b505050505f90565b60405190613a0482613524565b5f6040838281528260208201520152565b90604051613a2281613524565b60406002829480548452600181015460208501520154910152565b60405190613a4a8261358a565b5f606083604051613a5a81613553565b83815283602082015281528260208201528160408201520152565b60405190613a828261358a565b815f81525f6020820152613a94613a3d565b60408201526060613aa3613a3d565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ad9575050613ad7925003836135a5565b565b84546001600160a01b0316835260019485019487945060209093019201613ac2565b5f19811461380f5760010190565b9190820180921161380f57565b6001600160a01b03168015613b74575f516020615a4e5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615a4e5f395f51905f52546001600160a01b03163303613ba757565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615aee5f395f51905f525416613bd257565b63d93c066560e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f206040516103008101908082106001600160401b03831117612a5a576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f2060405160608101908082106001600160401b03831117612a5a57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b435f198101939290841161380f5760ff1643811061419f57505f925b8381101561417b575b505f925050565b804082810361418d5750600193505050565b1561419a575f190161416b565b614174565b6141a99043613802565b9261416b565b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160051b36038313612a5a57565b903590605e1981360301821215612a5a570190565b9060808101600161420a82846141af565b9050116146ec5761421b81836141af565b9050156146c55761422b916141af565b15613921578061423a916141e4565b9161424583806141af565b9190928260051b938385046020148415171561380f5761426785969495615496565b925f945f97601a60fe19853603019501965b888a1015614628578960051b85013586811215612a5a57850161429b81613977565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036142cd82615482565b16151580614615575b614604575b6001600160a01b036142ec84613977565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b039061436b906001600160a01b03614329856134cc565b1660248901526020840135604489015261434560408501614b0e565b151560648901526001600160a01b03614360606086016134cc565b1660848901526134e0565b1660a486015261437d60a08201614b0e565b151560c486015236819003601e190160c082013581811215612a5a578201602081359101936001600160401b038211612a5a576060820236038513612a5a57819061010060e48a015252610144870193905f905b8082106145ba5750505060e082013590811215612a5a5701803560208201926001600160401b038211612a5a578160051b908136038513612a5a5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106144ad5750505050505050602093916001600160801b03848093039316905af190811561341c575f9161447b575b50816020916001938a015201990198614279565b90506020813d82116144a5575b81614495602093836135a5565b81010312612a5a57516001614467565b3d9150614488565b919395979850919395601f19848203018752873582811215612a5a578301602081013582526001600160a01b036144e6604083016134cc565b1660208301526060810135603e193683900301811215612a5a578101602081013591906040016001600160401b038311612a5a578236038113612a5a57829060e060408601528160e08601526101008501375f61010083850101526001600160801b03614555608083016134e0565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612a5a578360209361459760e086956101009560a060019a015201614b0e565b151560c0830152601f80199101160101990197019401918a989796959391614436565b90919460608060019288358152838060a01b036145d960208b016134cc565b1660208201526001600160801b036145f360408b016134e0565b1660408201520196019201906143d1565b905061460f81615482565b906142db565b5061462260a08401614730565b156142d6565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a1013580614696575b604051916020830193845260408301526060820152606081526146906080826135a5565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a161466c565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160061b36038313612a5a57565b358015158103612a5a5790565b60c08201600161474d82856141af565b905011614acd5761475e81846141af565b9050156146c55761476f90836141af565b1561392157803590607e1981360301821215612a5a570191606083019060206147978361376d565b91019065ffffffffffff806147ab8461376d565b1691161015614abe576147bd8261376d565b65ffffffffffff80600286015460201c16911610614aaf5761480365ffffffffffff6147fc6147f6826147ef8761376d565b16876154bb565b9361376d565b16846154bb565b1115614aa0576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446148498361484189896141e4565b01358b613b09565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561341c575f91614a81575b5015614a72575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561341c575f95614a3a575b50906148ce916141e4565b916148d88261376d565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612a5a578101602081359101936001600160401b038211612a5a578160061b36038513612a5a5760606044890152819052869360c485019392915f5b818110614a0257505050836020959365ffffffffffff829484895f9601356064860152614971604060018060a01b0392016134cc565b16608485015216602483015203925af191821561341c575f926149cc575b506149999061376d565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526146906066826135a5565b9091506020813d6020116149fa575b816149e8602093836135a5565b81010312612a5a57519061499961498f565b3d91506149db565b919550919293604080600192838060a01b03614a1d8a6134cc565b16815260208901356020820152019601910191889594939261493b565b919094506020823d602011614a6a575b81614a57602093836135a5565b81010312612a5a579051936148ce6148c3565b3d9150614a4a565b6367b9145160e01b5f5260045ffd5b614a9a915060203d6020116106f6576106e881836135a5565b5f614876565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918136038313612a5a57565b35908115158203612a5a57565b9060e081016001614b2c82846141af565b905011614f9557614b3d81836141af565b9050156146c557614b4d916141af565b156139215780359060be1981360301821215612a5a570160808101614b7281836141af565b905015614f865765ffffffffffff600284015460201c1691614b948342613802565b614ba360168601548092613823565b9360a0830135946001810180911161380f578503614f7757614bc885614bce9361386b565b90613b09565b93614bdd601782015486613802565b4210614f6857614bec906154e3565b9160058301934285541015614f5957614c0483614730565b9260208101906060810193612325614c40614c1f8785614adc565b9190614c2b85876141af565b949091614c38368a61387e565b9436916135e1565b97614ea0575b50505f989798976003600489019801985b8854811015614c8e575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614c57565b5090919293949596985f5b8851811015614cda576001906001600160a01b03614cb7828c613935565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614c99565b50929598909396919497508151916001600160401b03831161353f57600160401b831161353f576020908254848455808510614e85575b5001905f5260205f205f5b838110614e685750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612a5a576040519260a08401908482106001600160401b0383111761353f57614d9091604052614d8784614b0e565b8552369061387e565b9460208401958652356001600160401b038111612a5a57614db49036908401613617565b604084015235906001600160401b038211612a5a570136601f82011215612a5a57614de69036906020813591016138bd565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110614e465750505081520380825261469090602001826135a5565b82516001600160a01b0316855286955060209485019490920191600101614e29565b82516001600160a01b031681830155602090920191600101614d1c565b614e9a90845f528580855f200191039061528a565b5f614d11565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182614f48575b505015614f395751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff0918215614f2c57526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614c46565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b614f529250615923565b5f80614ec6565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614fc342846154bb565b614fdb614fd56016860154809361386b565b83613b09565b9182841080806151f7575b156151c5575083106151b757614ffc9083613b09565b106151a85761500c905b826154fe565b94601960f81b5f523060601b60025260165260365f20936002811015613642578061509d5750506001810361508e57156139215761504d8161505492614adc565b36916135e1565b91606083510361507f578260206136329401516060604083015192015192600181549101549061551a565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150b05750505050505f90565b6150d590600860048796970154910154906001600160801b038260801c921690615457565b925f9260035f9201915b8681101561519d576151056105886150ff61504d8460051b860186614adc565b866158e9565b6001600160a01b0381165f9081526020859052604090205460ff16615130575b506001905b016150df565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15615175575060019061512a565b94600161518392965d613afb565b93858514615191575f615125565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116151e85761500c926151e0575b50615006565b90505f6151da565b6347860b9760e01b5f5260045ffd5b50615206601887015485613b09565b4210614fe6565b6152156139f7565b5063ffffffff43116152725765ffffffffffff421161525a5760405161523a81613524565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061529857505050565b5f8282015560010161528c565b90600182811c921680156152d3575b60208310146152bf57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916152b4565b604051905f825f516020615a2e5f395f51905f5254916152fc836152a5565b808352926001811690811561538b5750600114615320575b613ad7925003836135a5565b505f516020615a2e5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061536f575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615357565b60209250613ad794915060ff191682840152151560051b820101615314565b604051905f825f516020615a6e5f395f51905f5254916153c9836152a5565b808352926001811690811561538b57506001146153ec57613ad7925003836135a5565b505f516020615a6e5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061543b575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615423565b6001600160801b0380921602911661546f8183613823565b91811561382d5706156136325760010190565b356001600160801b0381168103612a5a5790565b6040519190601f01601f191682016001600160401b03811183821017612a5a57604052565b60166154da6136329365ffffffffffff600285015460201c1690613802565b91015490613823565b6154ed4282615889565b156154f85760090190565b600f0190565b906155099082615889565b1561551457600f0190565b60090190565b92939194906155298587615923565b156156bc5782156156bc5770014551231950b75fc4402da1732fc9bebe198310156156bc576001169061010e61555e81615496565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c0908801561519d5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6156ce615946565b6156d661599d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261469060c0826135a5565b60ff5f516020615b0e5f395f51905f525460401c161561574357565b631afcd79f60e31b5f5260045ffd5b61575a613a3d565b506002810154600582015460405192909161579a916004916001600160a01b03166157848661358a565b61578d82613798565b8652602086015201613aa8565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161581e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561341c575f516001600160a01b0381161561581457905f905f90565b505f906001905f90565b5050505f9160039190565b6004811015613642578061583b575050565b600181036158525763f645eedf60e01b5f5260045ffd5b6002810361586d575063fce698f760e01b5f5260045260245ffd5b6003146158775750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146158da578181841093119182159111159181906158d3575b156158c457826158be57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816158af565b63f26224af60e01b5f5260045ffd5b8151919060418303615919576159129250602082015190606060408401519301515f1a906157a7565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b61594e6152dd565b805190811561595e576020012090565b50505f516020615a8e5f395f51905f525480156159785790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159a56153aa565b80519081156159b5576020012090565b50505f516020615b2e5f395f51905f525480156159785790565b906159f357508051156159e457602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615a24575b615a04575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156159fc56fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:47875:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;7983:34:30;7979:146;;-1:-1:-1;1553:47875:165;;;;;;;;1052:13:60;1553:47875:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;8085:29:30;;1553:47875:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1553:47875:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613bba565b5f516020615ace5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613460575080630b9737ce1461342d5780630c18d277146133625780630d91bf2a1461319457806311bec80d146131615780631622441d14612cee578063188509e914612cc057806328e24b3d14612c925780633644e51514612c775780633683c4d214612bba5780633bd109fa14612b6b5780633d43b41814612b175780633f4ba83a14612a975780634f1ef2861461288357806352d1902d1461281c57806353f7fd4814611e375780635c975abb14611e085780636c2eb35014611899578063715018a61461183057806371a8cf2d146118025780637ecebe00146117aa57806382bdeaad146116925780638456cb591461161f57806384b0196e146114f757806384d22a4f1461149957806388f50cf0146114605780638b1edf1e146114015780638c4ace6a146112925780638da5cb5b1461125d5780638f381dbe146112175780639067088e146111ce57806396a2ddfa146111a05780639eb939a814611149578063a5d53a44146110c9578063ad3cb1cc14611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26134b6565b60036102fd5f516020615ace5f395f51905f525442906154fe565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796134b6565b610381613b87565b613b16565b80f35b50346103205780600319360112610320576020601f5f516020615ace5f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26134b6565b602435906044356001600160401b03811161080b576103f59036906004016134f4565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613bba565b8749156107f4575f516020615ace5f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f1981018352826135a5565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e0826135a5565b5190206105616156c6565b906040519161190160f01b83526002830152602282015260c43591604260a43592206157a7565b90929192615829565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613b09565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e881836135a5565b810190613747565b5f610677565b503d6106de565b6040513d86823e3d90fd5b81610715919493946135a5565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610764838686613911565b3514610771838686613911565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd90613afb565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a61348a565b6108326134a0565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613bba565b61086b602435600435613be1565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016136fd565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b6109848380926135a5565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e881836135a5565b5f610906565b6040513d88823e3d90fd5b816109ea916135a5565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615ace5f395f51905f525460086004610a2842846154fe565b0154910154906001600160801b038260801c921690615457565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615ace5f395f51905f525442906154fe565b0154604051908152f35b50346103205780600319360112610320575f516020615ace5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615ace5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615ace5f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615ace5f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f516020615ace5f395f51905f525442906154fe565b01613aa8565b60405191829160208352602083019061367a565b0390f35b5034610320578060031936011261032057604051610bd58161356e565b610bdd6139f7565b8152604051610beb81613553565b5f8152602081015f90526020820152610c026139f7565b6040820152610c0f613a75565b6060820152604051610c2081613553565b5f80825260208201526080820152610c366139f7565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615ace5f395f51905f5254610c71613a75565b50610c7e60098201615752565b90610c8b600f8201615752565b60088201549260405193610c9e8561358a565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce98761356e565b604051610cf581613524565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613553565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613524565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e60158901613949565b9760808a01988952601601610db290613a15565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb3916136b6565b90606001519061027f198a8203016102e08b0152610ed0916136b6565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615ace5f395f51905f52540160043582528452205416610f816040518092613635565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb49036906004016134f4565b905f516020615ace5f395f51905f525490610fce836138a6565b91610fdc60405193846135a5565b838352610fe8846138a6565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d6110586001938588613911565b613977565b828060a01b03165f528360205260405f20546110798288613935565b5201610ffc565b503461032057806003193601126103205750610bb46040516110a36040826135a5565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613656565b50346103205780600319360112610320575f516020615ace5f395f51905f52546001600160a01b03906002906111009042906154fe565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c808252019060408201918260405260208352611144603f19926060830190613656565b030190f35b50346103205780600319360112610320576111626139f7565b50606061117f60165f516020615ace5f395f51905f525401613a15565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615ace5f395f51905f52540154604051908152f35b5034610320576020366003190112610320576111e86134b6565b601a5f516020615ace5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b03821161032057602061125361124d36600486016134f4565b9061398b565b6040519015158152f35b50346103205780600319360112610320575f516020615a4e5f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff81168103610725576112bc613bba565b8249156113f2575f516020615ace5f395f51905f52546001810154156113e35760198101918385528260205260ff60408620541660038110156113cf576113c0576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af16113ab575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b816113b5916135a5565b61072557825f611376565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f525460018101908154611451576002015463ffffffff1640908115611442575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576114b2613780565b5060406114cf60155f516020615ace5f395f51905f525401613949565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f516020615a8e5f395f51905f52541580611609575b156115cc576115709061152f6152dd565b906115386153aa565b90602061157e6040519361154c83866135a5565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613656565b908682036040880152613656565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b8281106115b557505050500390f35b8351855286955093810193928101926001016115a6565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615b2e5f395f51905f52541561151e565b5034610320578060031936011261032057611638613b87565b611640613bba565b600160ff195f516020615aee5f395f51905f525416175f516020615aee5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e576116c39036906004016134f4565b905f516020615ace5f395f51905f5254906116dd836138a6565b916116eb60405193846135a5565b8383526116f7846138a6565b602084019490601f19013686376019869201915b81811061176057868587604051928392602084019060208552518091526040840192915b81811061173d575050500390f35b91935091602080826117526001948851613635565b01940191019184939261172f565b61176b818386613911565b3587528260205260ff6040882054166117848287613935565b6003821015611796575260010161170b565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b036117d26134b6565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615ace5f395f51905f52540154604051908152f35b5034610320578060031936011261032057611849613b87565b5f516020615a4e5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346103205780600319360112610320576118b2613b87565b5f516020615b0e5f395f51905f525460ff8160401c16908115611df3575b50611de4575f516020615b0e5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615a4e5f395f51905f525461192a906001600160a01b0316611922615727565b610381615727565b6119326137b6565b9061193b6137e3565b90611944615727565b61194c615727565b82516001600160401b038111611ce7576119735f516020615a2e5f395f51905f52546152a5565b601f8111611d80575b506020601f8211600114611d0657829394829392611cfb575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b81516001600160401b038111611ce7576119dd5f516020615a6e5f395f51905f52546152a5565b601f8111611c7a575b50602092601f8211600114611c0157928293829392611bf6575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b805f516020615a8e5f395f51905f5255805f516020615b2e5f395f51905f52555f516020615ace5f395f51905f5254611a5861520d565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611aa681613553565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611ad142846154fe565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611b22918491611bc7575b5061385a565b90816103e8026103e881048303611bb357601e820155816101f402916101f4830403611b9f57601f015560ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611be9915060203d602011611bef575b611be181836135a5565b810190613841565b5f611b1c565b503d611bd7565b015190505f80611a00565b601f198216935f516020615a6e5f395f51905f52845280842091845b868110611c625750836001959610611c4a575b505050811b015f516020615a6e5f395f51905f5255611a21565b01515f1960f88460031b161c191690555f8080611c30565b91926020600181928685015181550194019201611c1d565b818111156119e6575f516020615a6e5f395f51905f528352611cd9907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510611cdf575b601f82910160051c03910161528a565b5f6119e6565b859150611cc9565b634e487b7160e01b82526041600452602482fd5b015190505f80611995565b5f516020615a2e5f395f51905f52835280832090601f198316845b818110611d6857509583600195969710611d50575b505050811b015f516020615a2e5f395f51905f52556119b6565b01515f1960f88460031b161c191690555f8080611d36565b9192602060018192868b015181550194019201611d21565b8181111561197c575f516020615a2e5f395f51905f528352611dde907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611cdf57601f82910160051c03910161528a565b5f61197c565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f6118d0565b5034610320578060031936011261032057602060ff5f516020615aee5f395f51905f5254166040519015158152f35b50346103205761016036600319011261032057611e526134b6565b906024356001600160a01b0381169081900361098e57611e7061348a565b92611e796134a0565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b03811161080757611eed9036906004016134f4565b9590935f516020615b0e5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612814575b600114908161280a575b159081612801575b506127f257611f6f908a60016001600160401b03195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f52556127c2575b611922615727565b611f77615727565b611f7f6137b6565b611f876137e3565b90611f90615727565b611f98615727565b8051906001600160401b0382116127ae5781908b611fc35f516020615a2e5f395f51905f52546152a5565b601f811161275d575b5050602090601f83116001146126e1578c926126d6575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b8051906001600160401b0382116126c257819061202e5f516020615a6e5f395f51905f52546152a5565b601f8111612653575b50602090601f83116001146125d7578b926125cc575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b875f516020615a8e5f395f51905f5255875f516020615b2e5f395f51905f5255612096615727565b61209e615727565b42156125bd5781156125ae578181111561259f57600a6120be8383613802565b04831015612590576040809a81516120d683826135a5565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612109613b87565b5f1991519020018a5260ff1960208b2016809e815f516020615ace5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a161215e61520d565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906121a882613524565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561221c613780565b50895161222881613553565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061226d81613524565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa90811561258657906122cd918691611bc7575061385a565b806103e8026103e88104820361257257601e8a0155806101f402906101f482040361255e579061232d91601f8a015561232587519861230b8a613553565b60e4358a5260208a019461010435865260243692016135e1565b9336916138bd565b958051825170014551231950b75fc4402da1732fc9bebe198210918261254d575b50501561253e5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156125315752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156123f65782845260208085208201546001600160a01b03165f90815290869052869020805460ff191690556001016123be565b509195949094865b835181101561243e576001906001600160a01b0361241c8287613935565b5116828060a01b03165f5285602052865f208260ff19825416179055016123fe565b50925092938151916001600160401b03831161251d57600160401b831161251d576020908254848455808510612502575b500190865260208620865b8381106124e55750505050600e42910155612493575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161247a565b61251790848a528580858c200191039061528a565b5f61246f565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6125579250615923565b5f8061234e565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f8061204d565b5f516020615a6e5f395f51905f528c52818c209250601f1984168c5b81811061263b5750908460019594939210612623575b505050811b015f516020615a6e5f395f51905f525561206e565b01515f1960f88460031b161c191690555f8080612609565b929360206001819287860151815501950193016125f3565b82811115612037575f516020615a6e5f395f51905f528c526126b4907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e602087106126ba575b50601f82910160051c03910161528a565b5f612037565b91508e6126a3565b634e487b7160e01b8a52604160045260248afd5b015190505f80611fe3565b5f516020615a2e5f395f51905f528d52818d209250601f1984168d5b818110612745575090846001959493921061272d575b505050811b015f516020615a2e5f395f51905f5255612004565b01515f1960f88460031b161c191690555f8080612713565b929360206001819287860151815501950193016126fd565b83811115611fcc575f516020615a2e5f395f51905f5261279f92528d6020812091601f860160051c91602087106127a65750601f82910160051c03910161528a565b8b5f611fcc565b91508f6126a3565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f5255611f67565b63f92ee8a960e01b8952600489fd5b9050155f611f2d565b303b159150611f25565b8b9150611f1b565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036128745760206040515f516020615aae5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b506040366003190112610320576128986134b6565b906024356001600160401b03811161098e576128b8903690600401613617565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612a75575b50612a66576128fa613b87565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612a2e575b5061293f57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615aae5f395f51905f528103612a1c5750813b15612a0a575f516020615aae5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156129f057808360206129e495519101845af43d156129e8573d916129c8836135c6565b926129d660405194856135a5565b83523d85602085013e6159cf565b5080f35b6060916159cf565b505050346129fb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612a5e575b81612a4a602093836135a5565b81010312612a5a5751945f612926565b5f80fd5b3d9150612a3d565b63703e46dd60e11b8252600482fd5b5f516020615aae5f395f51905f52546001600160a01b0316141590505f6128ed565b5034610320578060031936011261032057612ab0613b87565b5f516020615aee5f395f51905f525460ff811615612b085760ff19165f516020615aee5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612b316134b6565b612b39613b87565b5f516020615ace5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612b84613780565b506040612ba8612ba35f516020615ace5f395f51905f525442906154fe565b613798565b60208251918051835201516020820152f35b503461032057606036600319011261032057612bd461348a565b612bdc613bba565b612bea602435600435614057565b506001600160a01b0390811691908116612c725750335b5f516020615ace5f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612c01565b50346103205780600319360112610320576020610a426156c6565b5034610320578060031936011261032057602060015f516020615ace5f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615ace5f395f51905f52540154604051908152f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57612d4b9036906004016134f4565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6131525760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ace5f395f51905f5254906001820154156113e3578154156130f6575b600382015460446004350135036130e75765ffffffffffff60048301541665ffffffffffff612dea60246004350161376d565b16106130d957612dff600435600401836141f9565b92612e1460a4600435016004356004016146fb565b808096925060051b046020148515171561257257612e348560051b615496565b8695865b818810612fa45750612f6a965060051b902090612e5a6004356004018661473d565b612e6960043560040187614b1b565b90612e7860246004350161376d565b93612e8760646004350161375f565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152612eec60e7826135a5565b5190209283600382015565ffffffffffff612f0b60246004350161376d565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff612f5f60246004350161376d565b169360243591614fa4565b15612f9557807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b612fb860a4600435016004356004016146fb565b8910156130c5578860061b8101358a526019880160205260ff60408b20541660038110156107d1576001036130b65760019160209161307b8b8b8e868360061b8601019261300584614730565b156130975760061b85013590525060198c01855260408e20805460ff19166002179055601c8c01805461303790613afb565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661306684614730565b1515926040519060061b8701358152a2614730565b908b60061b01358c52825360218b208186015201970196612e38565b60409260199160061b87013583520187522060ff19815416905561303a565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b61311361310760646004350161375f565b6004356004013561414f565b156131435765ffffffffffff61312d60246004350161376d565b164211612db757631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205760203660031901126103205761317b613b87565b600435601e5f516020615ace5f395f51905f5254015580f35b503461032057610100366003190112610320576131af61348a565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576131da613bba565b6131e8602435600435614057565b6006015490936001600160a01b0390911691823b1561080b5761322f8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016136fd565b038183885af161334d575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613342578591613323575b5015613314576001600160a01b039081169290811661330e575033905b5f516020615ace5f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b9061329f565b631e4e7d0960e21b8452600484fd5b61333c915060203d6020116106f6576106e881836135a5565b5f613282565b6040513d87823e3d90fd5b81613357916135a5565b61072557825f61323a565b34612a5a576080366003190112612a5a5761337b61348a565b6133836134a0565b9061338c613bba565b61339a602435600435613be1565b506001600160a01b0390811691908116613427575033915b813b15612a5a57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561341c5760209261340c575b50604051908152f35b5f613416916135a5565b5f613403565b6040513d5f823e3d90fd5b916133b2565b34612a5a576020366003190112612a5a57613446613b87565b600435601f5f516020615ace5f395f51905f525401555f80f35b34612a5a575f366003190112612a5a57602090601c5f516020615ace5f395f51905f525401548152f35b604435906001600160a01b0382168203612a5a57565b606435906001600160a01b0382168203612a5a57565b600435906001600160a01b0382168203612a5a57565b35906001600160a01b0382168203612a5a57565b35906001600160801b0382168203612a5a57565b9181601f84011215612a5a578235916001600160401b038311612a5a576020808501948460051b010111612a5a57565b606081019081106001600160401b0382111761353f57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761353f57604052565b61016081019081106001600160401b0382111761353f57604052565b608081019081106001600160401b0382111761353f57604052565b90601f801991011681019081106001600160401b0382111761353f57604052565b6001600160401b03811161353f57601f01601f191660200190565b9291926135ed826135c6565b916135fb60405193846135a5565b829481845281830111612a5a578281602093845f960137010152565b9080601f83011215612a5a57816020613632933591016135e1565b90565b9060038210156136425752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106136975750505090565b82516001600160a01b031684526020938401939092019160010161368a565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606136f4604085015160a08386015260a085019061367a565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612a5a57518015158103612a5a5790565b3560ff81168103612a5a5790565b3565ffffffffffff81168103612a5a5790565b6040519061378d82613553565b5f6020838281520152565b906040516137a581613553565b602060018294805484520154910152565b604051906137c56040836135a5565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906137f26040836135a5565b60018252603160f81b6020830152565b9190820391821161380f57565b634e487b7160e01b5f52601160045260245ffd5b811561382d570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612a5a575160ff81168103612a5a5790565b60ff16604d811161380f57600a0a90565b8181029291811591840414171561380f57565b9190826040910312612a5a5760405161389681613553565b6020808294803584520135910152565b6001600160401b03811161353f5760051b60200190565b9291906138c9816138a6565b936138d760405195866135a5565b602085838152019160051b8101928311612a5a57905b8282106138f957505050565b60208091613906846134cc565b8152019101906138ed565b91908110156139215760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139215760209160051b010190565b9060405161395681613553565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612a5a5790565b6139a45f516020615ace5f395f51905f525442906154fe565b600301905f5b8381106139ba5750505050600190565b6139c8611058828685613911565b6001600160a01b03165f9081526020849052604090205460ff16156139ef576001016139aa565b505050505f90565b60405190613a0482613524565b5f6040838281528260208201520152565b90604051613a2281613524565b60406002829480548452600181015460208501520154910152565b60405190613a4a8261358a565b5f606083604051613a5a81613553565b83815283602082015281528260208201528160408201520152565b60405190613a828261358a565b815f81525f6020820152613a94613a3d565b60408201526060613aa3613a3d565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ad9575050613ad7925003836135a5565b565b84546001600160a01b0316835260019485019487945060209093019201613ac2565b5f19811461380f5760010190565b9190820180921161380f57565b6001600160a01b03168015613b74575f516020615a4e5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615a4e5f395f51905f52546001600160a01b03163303613ba757565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615aee5f395f51905f525416613bd257565b63d93c066560e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f206040516103008101908082106001600160401b03831117612a5a576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f2060405160608101908082106001600160401b03831117612a5a57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b435f198101939290841161380f5760ff1643811061419f57505f925b8381101561417b575b505f925050565b804082810361418d5750600193505050565b1561419a575f190161416b565b614174565b6141a99043613802565b9261416b565b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160051b36038313612a5a57565b903590605e1981360301821215612a5a570190565b9060808101600161420a82846141af565b9050116146ec5761421b81836141af565b9050156146c55761422b916141af565b15613921578061423a916141e4565b9161424583806141af565b9190928260051b938385046020148415171561380f5761426785969495615496565b925f945f97601a60fe19853603019501965b888a1015614628578960051b85013586811215612a5a57850161429b81613977565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036142cd82615482565b16151580614615575b614604575b6001600160a01b036142ec84613977565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b039061436b906001600160a01b03614329856134cc565b1660248901526020840135604489015261434560408501614b0e565b151560648901526001600160a01b03614360606086016134cc565b1660848901526134e0565b1660a486015261437d60a08201614b0e565b151560c486015236819003601e190160c082013581811215612a5a578201602081359101936001600160401b038211612a5a576060820236038513612a5a57819061010060e48a015252610144870193905f905b8082106145ba5750505060e082013590811215612a5a5701803560208201926001600160401b038211612a5a578160051b908136038513612a5a5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106144ad5750505050505050602093916001600160801b03848093039316905af190811561341c575f9161447b575b50816020916001938a015201990198614279565b90506020813d82116144a5575b81614495602093836135a5565b81010312612a5a57516001614467565b3d9150614488565b919395979850919395601f19848203018752873582811215612a5a578301602081013582526001600160a01b036144e6604083016134cc565b1660208301526060810135603e193683900301811215612a5a578101602081013591906040016001600160401b038311612a5a578236038113612a5a57829060e060408601528160e08601526101008501375f61010083850101526001600160801b03614555608083016134e0565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612a5a578360209361459760e086956101009560a060019a015201614b0e565b151560c0830152601f80199101160101990197019401918a989796959391614436565b90919460608060019288358152838060a01b036145d960208b016134cc565b1660208201526001600160801b036145f360408b016134e0565b1660408201520196019201906143d1565b905061460f81615482565b906142db565b5061462260a08401614730565b156142d6565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a1013580614696575b604051916020830193845260408301526060820152606081526146906080826135a5565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a161466c565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160061b36038313612a5a57565b358015158103612a5a5790565b60c08201600161474d82856141af565b905011614acd5761475e81846141af565b9050156146c55761476f90836141af565b1561392157803590607e1981360301821215612a5a570191606083019060206147978361376d565b91019065ffffffffffff806147ab8461376d565b1691161015614abe576147bd8261376d565b65ffffffffffff80600286015460201c16911610614aaf5761480365ffffffffffff6147fc6147f6826147ef8761376d565b16876154bb565b9361376d565b16846154bb565b1115614aa0576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446148498361484189896141e4565b01358b613b09565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561341c575f91614a81575b5015614a72575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561341c575f95614a3a575b50906148ce916141e4565b916148d88261376d565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612a5a578101602081359101936001600160401b038211612a5a578160061b36038513612a5a5760606044890152819052869360c485019392915f5b818110614a0257505050836020959365ffffffffffff829484895f9601356064860152614971604060018060a01b0392016134cc565b16608485015216602483015203925af191821561341c575f926149cc575b506149999061376d565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526146906066826135a5565b9091506020813d6020116149fa575b816149e8602093836135a5565b81010312612a5a57519061499961498f565b3d91506149db565b919550919293604080600192838060a01b03614a1d8a6134cc565b16815260208901356020820152019601910191889594939261493b565b919094506020823d602011614a6a575b81614a57602093836135a5565b81010312612a5a579051936148ce6148c3565b3d9150614a4a565b6367b9145160e01b5f5260045ffd5b614a9a915060203d6020116106f6576106e881836135a5565b5f614876565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918136038313612a5a57565b35908115158203612a5a57565b9060e081016001614b2c82846141af565b905011614f9557614b3d81836141af565b9050156146c557614b4d916141af565b156139215780359060be1981360301821215612a5a570160808101614b7281836141af565b905015614f865765ffffffffffff600284015460201c1691614b948342613802565b614ba360168601548092613823565b9360a0830135946001810180911161380f578503614f7757614bc885614bce9361386b565b90613b09565b93614bdd601782015486613802565b4210614f6857614bec906154e3565b9160058301934285541015614f5957614c0483614730565b9260208101906060810193612325614c40614c1f8785614adc565b9190614c2b85876141af565b949091614c38368a61387e565b9436916135e1565b97614ea0575b50505f989798976003600489019801985b8854811015614c8e575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614c57565b5090919293949596985f5b8851811015614cda576001906001600160a01b03614cb7828c613935565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614c99565b50929598909396919497508151916001600160401b03831161353f57600160401b831161353f576020908254848455808510614e85575b5001905f5260205f205f5b838110614e685750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612a5a576040519260a08401908482106001600160401b0383111761353f57614d9091604052614d8784614b0e565b8552369061387e565b9460208401958652356001600160401b038111612a5a57614db49036908401613617565b604084015235906001600160401b038211612a5a570136601f82011215612a5a57614de69036906020813591016138bd565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110614e465750505081520380825261469090602001826135a5565b82516001600160a01b0316855286955060209485019490920191600101614e29565b82516001600160a01b031681830155602090920191600101614d1c565b614e9a90845f528580855f200191039061528a565b5f614d11565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182614f48575b505015614f395751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff0918215614f2c57526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614c46565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b614f529250615923565b5f80614ec6565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614fc342846154bb565b614fdb614fd56016860154809361386b565b83613b09565b9182841080806151f7575b156151c5575083106151b757614ffc9083613b09565b106151a85761500c905b826154fe565b94601960f81b5f523060601b60025260165260365f20936002811015613642578061509d5750506001810361508e57156139215761504d8161505492614adc565b36916135e1565b91606083510361507f578260206136329401516060604083015192015192600181549101549061551a565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150b05750505050505f90565b6150d590600860048796970154910154906001600160801b038260801c921690615457565b925f9260035f9201915b8681101561519d576151056105886150ff61504d8460051b860186614adc565b866158e9565b6001600160a01b0381165f9081526020859052604090205460ff16615130575b506001905b016150df565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15615175575060019061512a565b94600161518392965d613afb565b93858514615191575f615125565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116151e85761500c926151e0575b50615006565b90505f6151da565b6347860b9760e01b5f5260045ffd5b50615206601887015485613b09565b4210614fe6565b6152156139f7565b5063ffffffff43116152725765ffffffffffff421161525a5760405161523a81613524565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061529857505050565b5f8282015560010161528c565b90600182811c921680156152d3575b60208310146152bf57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916152b4565b604051905f825f516020615a2e5f395f51905f5254916152fc836152a5565b808352926001811690811561538b5750600114615320575b613ad7925003836135a5565b505f516020615a2e5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061536f575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615357565b60209250613ad794915060ff191682840152151560051b820101615314565b604051905f825f516020615a6e5f395f51905f5254916153c9836152a5565b808352926001811690811561538b57506001146153ec57613ad7925003836135a5565b505f516020615a6e5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061543b575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615423565b6001600160801b0380921602911661546f8183613823565b91811561382d5706156136325760010190565b356001600160801b0381168103612a5a5790565b6040519190601f01601f191682016001600160401b03811183821017612a5a57604052565b60166154da6136329365ffffffffffff600285015460201c1690613802565b91015490613823565b6154ed4282615889565b156154f85760090190565b600f0190565b906155099082615889565b1561551457600f0190565b60090190565b92939194906155298587615923565b156156bc5782156156bc5770014551231950b75fc4402da1732fc9bebe198310156156bc576001169061010e61555e81615496565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c0908801561519d5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6156ce615946565b6156d661599d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261469060c0826135a5565b60ff5f516020615b0e5f395f51905f525460401c161561574357565b631afcd79f60e31b5f5260045ffd5b61575a613a3d565b506002810154600582015460405192909161579a916004916001600160a01b03166157848661358a565b61578d82613798565b8652602086015201613aa8565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161581e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561341c575f516001600160a01b0381161561581457905f905f90565b505f906001905f90565b5050505f9160039190565b6004811015613642578061583b575050565b600181036158525763f645eedf60e01b5f5260045ffd5b6002810361586d575063fce698f760e01b5f5260045260245ffd5b6003146158775750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146158da578181841093119182159111159181906158d3575b156158c457826158be57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816158af565b63f26224af60e01b5f5260045ffd5b8151919060418303615919576159129250602082015190606060408401519301515f1a906157a7565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b61594e6152dd565b805190811561595e576020012090565b50505f516020615a8e5f395f51905f525480156159785790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159a56153aa565b80519081156159b5576020012090565b50505f516020615b2e5f395f51905f525480156159785790565b906159f357508051156159e457602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615a24575b615a04575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156159fc56fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1553:47875:165:-:0;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;49133:19;;;1553:47875;49133:38;1553:47875;;-1:-1:-1;;;;;49242:9:165;1553:47875;49270:9;1553:47875;;49330:10;-1:-1:-1;1553:47875:165;;;49358:28;;;;;1553:47875;;;;;;49358:42;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;15023:40;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;15023:40:165;:52;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;13147:34;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;2357:1:29;1553:47875:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1553:47875:165;;;;;;;;;;;;;;;;19936:52;-1:-1:-1;;;;;;;;;;;1553:47875:165;19936:52;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;25900:11:165;;:16;1553:47875;;-1:-1:-1;;;;;;;;;;;1553:47875:165;25996:19;1553:47875;25996:19;;1553:47875;25996:38;1553:47875;;26089:19;;;1553:47875;;;;;;;;;;;;;;;;;;;;;26199:29;26269:27;;;;;26411:39;;;1553:47875;;26531:13;;26546:22;;;;;;26825:15;;;:28;1553:47875;;;;;27089:29;;;-1:-1:-1;;;;;2670:66:165;;;;27089:29;1553:47875;2670:66;7051:25:77;2670:66:165;7105:8:77;2670:66:165;;;;;;;;;27089:29;;1553:47875;;27089:29;;;;;;:::i;:::-;1553:47875;27079:40;;1553:47875;;;;;;;;;;;;972:64:36;1553:47875:165;;;;;;;;;;;;;;;26938:261;1553:47875;26938:261;;1553:47875;2670:66;1553:47875;;2670:66;1553:47875;2670:66;;1553:47875;2670:66;1553:47875;2670:66;;1553:47875;;2670:66;;1553:47875;;2670:66;;1553:47875;2670:66;1553:47875;2670:66;;1553:47875;;26938:261;;;1553:47875;26938:261;;:::i;:::-;1553:47875;26915:294;;3980:23:40;;:::i;:::-;3993:249:80;1553:47875:165;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1553:47875:165;;;3993:249:80;1553:47875:165;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;27343:20;;;2670:66;;1553:47875;;;;27521:100;1553:47875;;;;;27451:32;;;1553:47875;;27521:48;27572:49;27521:48;;;1553:47875;27572:49;;1553:47875;27521:100;;:::i;:::-;27635:77;;;;;;1553:47875;;-1:-1:-1;;;27635:77:165;;-1:-1:-1;;;;;1553:47875:165;;;27635:77;;1553:47875;27675:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27635:77;;;;;26526:223;-1:-1:-1;1553:47875:165;;-1:-1:-1;;;27748:57:165;;-1:-1:-1;;;;;1553:47875:165;;;;27748:57;;1553:47875;27675:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;27748:57;;;;;;;;;;;;;;26526:223;1553:47875;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;23337:19;1553:47875;;;;;;;27951:32;;;1553:47875;;;-1:-1:-1;;;1553:47875:165;;;;;27748:57;;;;1553:47875;27748:57;1553:47875;27748:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:47875;;;;;;;;;27635:77;;;;;;;;:::i;:::-;1553:47875;;27635:77;;;;;1553:47875;;;;27635:77;1553:47875;;;2670:66;-1:-1:-1;;;2670:66:165;;1553:47875;;;;;2670:66;;;1553:47875;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;26570:3;26616:11;;26649:14;;;;;;:::i;:::-;1553:47875;26649:34;26704:14;;;;;:::i;:::-;1553:47875;;;;;26570:3;;1553:47875;;26531:13;;1553:47875;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;26238:155;26363:19;;;:::i;:::-;26238:155;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;35540:37:165;1553:47875;;;;35540:37;:::i;:::-;35629:32;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;35677:96;;;;;;1553:47875;;;;;;;;;;;;35677:96;;1553:47875;;;;;;;;35717:4;;35697:10;1553:47875;35677:96;;;:::i;:::-;;;;;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;35809:79:165;;35697:10;1553:47875;35809:79;;1553:47875;35717:4;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;35809:79;;;;;;;;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;36004:70;1553:47875;;;;35697:10;;36004:70;;35947:238;;;;;1553:47875;;-1:-1:-1;;;35947:238:165;;-1:-1:-1;;;;;1553:47875:165;;;;35947:238;;1553:47875;;;;;;;;;;;;;;;;;;;;;;35947:238;;;;;;;;;36004:70;1553:47875;;;;;;;;35947:238;;;;;;:::i;:::-;1553:47875;;35947:238;;;1553:47875;;;;35947:238;1553:47875;;;;;;;;;35947:238;1553:47875;;;36004:70;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;35809:79;;;;1553:47875;35809:79;1553:47875;35809:79;;;;;;;:::i;:::-;;;;;1553:47875;;;;;;;;;35677:96;;;;;:::i;:::-;1553:47875;;35677:96;;;;1553:47875;;;;;;;;;;;;;;16468:211;-1:-1:-1;;;;;;;;;;;1553:47875:165;16565:25;1553:47875;28658:37:169;28679:15;28658:37;;:::i;:::-;16506:38:165;1553:47875;16565:25;;1553:47875;;-1:-1:-1;;;;;1553:47875:165;;;;;16468:211;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;16082:41:165;1553:47875;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12604:23;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;15511:25;-1:-1:-1;;;;;;;;;;;1553:47875:165;15511:25;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12336:40;1553:47875;;;;;;;;;;;;;;;;;;;;;;;11746:32;-1:-1:-1;;;;;;;;;;;1553:47875:165;11746:32;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;15821:41:165;1553:47875;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;:::i;:::-;-1:-1:-1;33999:28:169;34006:20;;;33999:28;:::i;:::-;34085:20;34078:28;34085:20;;;34078:28;:::i;:::-;10519:25:165;;;1553:47875;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;34123:241:169;;1553:47875:165;;34123:241:169;;1553:47875:165;;34123:241:169;;1553:47875:165;10908:33;;;1553:47875;10976:39;;;;1553:47875;11044:33;;;1553:47875;;;11121:48;;;1553:47875;11214:49;;;;1553:47875;;;;;;;;:::i;:::-;;;;;;:::i;:::-;34006:20:169;10602:19:165;;1553:47875;;;10908:33;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10657:27;;;1553:47875;;;;;;;;;;;;;;10562:712;;1553:47875;;;;;;;;;:::i;:::-;10713:20;;;1553:47875;-1:-1:-1;;;;;1553:47875:165;;;2288:3;;11214:49;1553:47875;;;;;;;;2288:3;34085:20:169;1553:47875:165;;;;;;;;2288:3;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10816:22;;;1553:47875;:::i;:::-;10562:712;1553:47875;10562:712;;1553:47875;;;10863:16;;1553:47875;;;:::i;:::-;10562:712;1553:47875;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;17434:22;-1:-1:-1;;;;;;;;;;;1553:47875:165;17434:22;1553:47875;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47875:165;;;;18671:28;18603:13;18671:28;;18598:129;18618:23;;;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;18671:28;1553:47875;;;18643:3;18700:15;;;18671:28;18700:15;;;;:::i;:::-;;:::i;:::-;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;18662:54;;;;:::i;:::-;1553:47875;;18603:13;;1553:47875;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;14144:77;;28658:37:169;;28679:15;;28658:37;:::i;:::-;14144:77:165;1553:47875;;;9268:329:171;1553:47875:165;;;;;9268:329:171;;;;;;;;;;;;;;;;;;;;1553:47875:165;9268:329:171;;;;1553:47875:165;9268:329:171;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20174:19;-1:-1:-1;;;;;;;;;;;1553:47875:165;20174:19;1553:47875;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18943:36;-1:-1:-1;;;;;;;;;;;1553:47875:165;18943:36;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;18196:31;-1:-1:-1;;;;;;;;;;;1553:47875:165;18196:31;:43;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;23241:11:165;;:16;1553:47875;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;23337:19;;1553:47875;23337:38;1553:47875;;23430:19;;;1553:47875;;;;;;;;;;;;;;;;;;;;;23581:32;;;1553:47875;23643:48;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;23705:78;;;;;1553:47875;;-1:-1:-1;;;23705:78:165;;23725:10;1553:47875;23705:78;;1553:47875;23745:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23705:78;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;23819:61:165;;23725:10;1553:47875;23819:61;;1553:47875;23745:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;23819:61;1553:47875;23705:78;;;;;:::i;:::-;1553:47875;;23705:78;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;21933:19;;;1553:47875;;;;;22040:26;;1553:47875;;;22030:37;;22086:25;;1553:47875;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12876:35;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17203:25;-1:-1:-1;;;;;;;;;;;1553:47875:165;17203:25;1553:47875;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;5647:18:40;:43;;;1553:47875:165;;;;;;;;:::i;:::-;;;;:::i;:::-;;2446:3;1553:47875;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;;1553:47875:165;;;;5870:4:40;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;5647:43:40;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;5669:21:40;5647:43;;1553:47875:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;3319:20:37;1553:47875:165;;;966:10:34;1553:47875:165;;3319:20:37;1553:47875:165;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47875:165;;;;17903:19;17838:13;17903:19;;17833:120;17853:20;;;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;17875:3;17929:12;;;;;:::i;:::-;1553:47875;;;;;;;;;;;;17894:48;;;;:::i;:::-;1553:47875;;;;;;;;;17838:13;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;:::i;:::-;;;;972:64:36;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;12030:30;-1:-1:-1;;;;;;;;;;;1553:47875:165;12030:30;1553:47875;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;3975:40:29;1553:47875:165;;3975:40:29;1553:47875:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;6429:44:30;;;;;1553:47875:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6959:1:30;;-1:-1:-1;;;;;1553:47875:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1553:47875:165;;:::i;:::-;2224:17;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;3676:10:40;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;9356:17;;:::i;:::-;2288:3;;6591:4:30;9334:19:165;;1553:47875;3652:7:40;2288:3:165;;;1553:47875;;2288:3;;;1553:47875;2288:3;1553:47875;2288:3;;;;;1553:47875;2288:3;;;;;;;;;;1553:47875;;;;;;;:::i;:::-;;;;9413:57;1553:47875;9383:27;3676:10:40;9383:27:165;;1553:47875;;;;;;;;;;;;;28658:37:169;28679:15;28658:37;;:::i;:::-;9523:38:165;1553:47875;;;9480:33;;;1553:47875;;2203:1:169;;;;;;;;1553:47875:165;;;;;;;9623:32;;;1553:47875;;;;;;;;;;;9610:57;;;;;;;;9604:63;9610:57;;;;;1553:47875;9604:63;;:::i;:::-;2366:5;;;;;;;;;;;9677:48;;;1553:47875;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;1553:47875;9795:49;1553:47875;-1:-1:-1;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6654:20:30;1553:47875:165;;;6943:1;1553:47875;;6654:20:30;1553:47875:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;;;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;;;;9610:57;;;;1553:47875;9610:57;1553:47875;9610:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;3676:10:40;1553:47875:165;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;6943:1;1553:47875;;;;;;;;;;;;6943:1;1553:47875;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47875:165;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;6943:1;1553:47875;;;;;;;;;;;6943:1;1553:47875;;;;;:::i;:::-;;;;6425:105:30;-1:-1:-1;;;6496:23:30;;1553:47875:165;;6496:23:30;6429:44;6943:1:165;1553:47875;;-1:-1:-1;;;;;1553:47875:165;6448:25:30;;6429:44;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;4301:16:30;1553:47875:165;;4724:16:30;;:34;;;;1553:47875:165;;4788:16:30;:50;;;;1553:47875:165;4853:13:30;:30;;;;1553:47875:165;4849:91:30;;;6959:1;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;4977:67:30;;1553:47875:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:47875:165;;:::i;:::-;2224:17;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3676:10:40;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6891:76:30;;:::i;:::-;;;:::i;:::-;4821:15:165;:19;2288:3;;4879:21;;2288:3;;4946:32;;;2288:3;;;5227:2;5191:32;;;;:::i;:::-;2288:3;5171:58;;2288:3;;;1553:47875;;;;;;;;;:::i;:::-;2288:3;1553:47875;;;2288:3;;;;;2303:62:29;;:::i;:::-;1553:47875:165;;1800:178:73;;;;;;;1553:47875:165;;;1800:178:73;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;48851:24;;;5385:17;;:::i;:::-;2288:3;;1553:47875;5363:19;;1553:47875;3652:7:40;2288:3:165;;;1553:47875;2288:3;;;1553:47875;;2288:3;;;;;;1553:47875;2288:3;;;;;;;;;;;1553:47875;;;;;;:::i;:::-;2288:3;;;-1:-1:-1;;;;;1553:47875:165;;;;5435:52;;2288:3;;;1553:47875;;;5435:52;;;;2288:3;;;5412:20;;;;;1553:47875;;;;;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;2288:3;;;1553:47875;;;;;;;;2288:3;;;1553:47875;;;;;;;;;;2203:1:169;5497:25:165;;;2203:1:169;1553:47875:165;;:::i;:::-;;;;;;;:::i;:::-;1855:13:169;1553:47875:165;;2383:18:169;1553:47875:165;23662:89:169;;;1553:47875:165;5685:22;;;1553:47875;;-1:-1:-1;;;;;;2203:1:169;;;;;1553:47875:165;;;;;;;;;:::i;:::-;;;;;5772:65;;1553:47875;;;5772:65;1553:47875;5753:16;;;1553:47875;2288:3;2203:1:169;;1553:47875:165;2203:1:169;;;1553:47875:165;5847:33;;;2203:1:169;;-1:-1:-1;;2203:1:169;1553:47875:165;;;2203:1:169;;;1553:47875:165;;-1:-1:-1;;;5951:37:165;;1553:47875;;;;;5951:37;;1553:47875;5951:37;1553:47875;5951:37;;;;;;;;5945:43;5951:37;;;;;5945:43;;:::i;:::-;2366:5;;;;;;;;;;5998:48;;;1553:47875;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;6116:49;2446:3;6116:49;1553:47875;6116:49;;1553:47875;2446:3;1553:47875;;;;;;:::i;:::-;;;2446:3;;1553:47875;2446:3;;1553:47875;2446:3;1553:47875;2446:3;;1553:47875;;;;2446:3;:::i;:::-;1553:47875;;2446:3;;:::i;:::-;2203:1:169;;;;;1145:66:27;;1837:24:26;;:71;;;;1553:47875:165;;;;;;2203:1:169;6308:37:165;;;1553:47875;2203:1:169;5227:2:165;1553:47875;;;1705:1673:171;;;;;;;;;;;;;;;;5685:22:165;1705:1673:171;;;;;;;;;;;47733:52:165;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;1705:1673:171;;47979:15:165;;;;47862:13;47881:16;;;;47862:13;47906:3;1553:47875;;47877:27;;;;;1553:47875;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;47862:13;;47877:27;;;;;;;48039:13;48081:3;1553:47875;;48054:25;;;;;1553:47875;;-1:-1:-1;;;;;48121:17:165;1553:47875;48121:17;;:::i;:::-;2288:3;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;48039:13;;48054:25;;;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;48034:163;1553:47875;;;;;;;;;;;;;;;4821:15;;;;48249:28;4821:15;48249:28;;1553:47875;5064:101:30;;1553:47875:165;;;5064:101:30;1553:47875:165;5140:14:30;1553:47875:165;-1:-1:-1;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;5140:14:30;1553:47875:165;;;2288:3;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;1705:1673:171;;;;1553:47875:165;1705:1673:171;;1553:47875:165;-1:-1:-1;;;1553:47875:165;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;2366:5:165;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;1553:47875;2288:3;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;1553:47875;2288:3;;5951:37;1553:47875;;;;;;;;;2288:3;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;3676:10:40;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;4977:67:30;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1553:47875:165;4906:23:30;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1553:47875:165;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1553:47875:165;4815:4:60;4807:23;4803:145;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1553:47875:165;;4908:29:60;1553:47875:165;-1:-1:-1;1553:47875:165;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1553:47875:165;4392:4:60;4384:23;;;:120;;;;1553:47875:165;4367:251:60;;;2303:62:29;;:::i;:::-;1553:47875:165;;-1:-1:-1;;;5865:52:60;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;5865:52:60;;;;;;;;1553:47875:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1553:47875:165;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;;-1:-1:-1;;;;;;;;;;;5959:40:60;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;2407:36:53;;;;1553:47875:165;;;;2458:15:53;:11;;4065:25:66;;1553:47875:165;4107:55:66;4065:25;;;;;;;1553:47875:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1553:47875:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1553:47875:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1553:47875:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1553:47875:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1553:47875:165;;;6026:34:60;;5865:52;;;;1553:47875:165;5865:52:60;;1553:47875:165;5865:52:60;;;;;;1553:47875:165;5865:52:60;;;:::i;:::-;;;1553:47875:165;;;;;5865:52:60;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1553:47875:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1553:47875:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;2971:9:37;2967:62;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;3627:22:37;1553:47875:165;;;966:10:34;1553:47875:165;;3627:22:37;1553:47875:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1553:47875:165;3003:15:37;;1553:47875:165;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;20709:23;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;1553:47875:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;29254:36:165;1553:47875;;;;29254:36;:::i;:::-;-1:-1:-1;;;;;;1553:47875:165;;;;29341:70;1553:47875;;;;29378:10;;29341:70;-1:-1:-1;;;;;;;;;;;1553:47875:165;12604:23;;1553:47875;-1:-1:-1;;;;;1553:47875:165;29301:134;;;;;1553:47875;;-1:-1:-1;;;29301:134:165;;-1:-1:-1;;;;;1553:47875:165;;;;29301:134;;1553:47875;;;;;;;;;;;;;;;;;;29301:134;1553:47875;;29301:134;;;;;;;;;1553:47875;;;;;;;;29341:70;;;1553:47875;;;;;;;;;;;;;;3980:23:40;;:::i;1553:47875:165:-;;;;;;;;;;;;;;11492:22;-1:-1:-1;;;;;;;;;;;1553:47875:165;11492:22;1553:47875;;;;;;;;;;;;;;;;;;;;;19536:51;-1:-1:-1;;;;;;;;;;;1553:47875:165;19536:51;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1553:47875:165;36916:19;1948:4:38;36916:19:165;;1553:47875;36916:38;1553:47875;;;;37154:20;37150:295;;1553:47875;37558:27;;;1553:47875;;;;37594:33;1553:47875;37558:69;1553:47875;;;;37693:37;;1553:47875;;;37734:21;1553:47875;;;37734:21;;:::i;:::-;1553:47875;-1:-1:-1;1553:47875:165;;37824:28;1553:47875;;;;37824:28;;:::i;:::-;1553:47875;40813:22;;1553:47875;;40813:22;1553:47875;;;;40813:22;:::i;:::-;2366:5;;;;;;;;1553:47875;2366:5;;;;;;;40948:40;2366:5;;;40948:40;:::i;:::-;40998:18;;;41047:22;;;;;;2366:5;38622:146;2366:5;;;;1083:131:25;;1553:47875:165;37964:30;1553:47875;;;;37964:30;;:::i;:::-;38040:33;1553:47875;;;;38040:33;;:::i;:::-;1553:47875;38173:21;1553:47875;;;37734:21;38173;:::i;:::-;1553:47875;38255:13;;1553:47875;;38255:13;;:::i;:::-;1553:47875;;;20171:303:169;1553:47875:165;20171:303:169;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;37594:33;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20171:303:169;;;;;;:::i;:::-;1553:47875:165;20148:336:169;;37558:27:165;;;;;1553:47875;;38527:21;1553:47875;;;37734:21;38527;:::i;:::-;1553:47875;;;;37693:37;;1553:47875;;;;37693:37;;1553:47875;38564:26;1553:47875;;;;;;38564:26;1553:47875;38733:21;1553:47875;;;37734:21;38733;:::i;:::-;1553:47875;;;;38622:146;;:::i;:::-;2113:66;;;3556:68:76;757:66:38;3556:68:76;1553:47875:165;;2113:66;-1:-1:-1;;;2113:66:165;;1553:47875;;2113:66;41071:3;41133:22;40813;1553:47875;;40813:22;1553:47875;;;;41133:22;:::i;:::-;1553:47875;;;;;;;;;;;;;41198:19;;;1553:47875;;;;;;;;37558:27;1553:47875;;;;;1948:4:38;41198:79:165;1553:47875;;1948:4:38;1553:47875:165;;;41776:17;1553:47875;;;;;;;;;41356:17;;;;;:::i;:::-;;;;1553:47875;;;;;;;-1:-1:-1;41198:19:165;;;1553:47875;;;;;;;-1:-1:-1;;1553:47875:165;;;;;41479:39;;;1553:47875;;41479:41;;;:::i;:::-;1553:47875;;41352:270;41674:17;41641:51;41674:17;;;;:::i;:::-;1553:47875;;;;;;;;;;;;;41641:51;41776:17;:::i;:::-;1553:47875;;;;;;17874:159:169;;;;;;;4093:83:22;;;;1553:47875:165;41071:3;1553:47875;41032:13;;;41352:270;1553:47875;;41198:19;1553:47875;;;;;;;;41198:19;1553:47875;;;;;;;;;;41352:270;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;37150:295;37198:56;37240:13;;1553:47875;;37240:13;;:::i;:::-;1553:47875;;;;;37198:56;:::i;:::-;1553:47875;;;;37385:21;1553:47875;;;37385:21;;:::i;:::-;1553:47875;37367:15;:39;37150:295;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1553:47875:165;1789:30:38;;1553:47875:165;;;;;;;-1:-1:-1;;1553:47875:165;;;;2303:62:29;;:::i;:::-;1553:47875:165;;21027:51;-1:-1:-1;;;;;;;;;;;1553:47875:165;21027:51;1553:47875;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;31297:36:165;1553:47875;;;;31297:36;:::i;:::-;31385:32;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;31433:96;;;;;;1553:47875;;;;;;;;;;;;31433:96;;1553:47875;;;;;;;;31473:4;;31453:10;1553:47875;31433:96;;;:::i;:::-;;;;;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;31565:79:165;;31453:10;1553:47875;31565:79;;1553:47875;31473:4;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;31565:79;;;;;;;;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;31760:70;1553:47875;;;;31453:10;;31760:70;;-1:-1:-1;;;;;;;;;;;1553:47875:165;31385:20;12604:23;1553:47875;-1:-1:-1;;;;;1553:47875:165;31703:236;;;;;1553:47875;;-1:-1:-1;;;31703:236:165;;-1:-1:-1;;;;;1553:47875:165;;;;31703:236;;1553:47875;;;;;;;;;;;;;;31703:236;1553:47875;;;31703:236;;;;;;;;;;1553:47875;;;;;;;;31760:70;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;31565:79;;;;1553:47875;31565:79;1553:47875;31565:79;;;;;;;:::i;:::-;;;;;1553:47875;;;;;;;;;31433:96;;;;;:::i;:::-;1553:47875;;31433:96;;;;1553:47875;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;:::i;:::-;1944:72:37;;;:::i;:::-;33365:37:165;1553:47875;;;;33365:37;:::i;:::-;-1:-1:-1;;;;;;1553:47875:165;;;;33453:70;1553:47875;;;;33490:10;;33453:70;;33413:136;;;;;1553:47875;;-1:-1:-1;;;33413:136:165;;-1:-1:-1;;;;;1553:47875:165;;;;33413:136;;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;33413:136;1553:47875;-1:-1:-1;33413:136:165;;;;;;;;1553:47875;33413:136;;;33453:70;1553:47875;;;;;;;33413:136;1553:47875;33413:136;;;:::i;:::-;1553:47875;33413:136;;;1553:47875;;;;;;;;;33453:70;;;;1553:47875;;;;;;-1:-1:-1;;1553:47875:165;;;;2303:62:29;;:::i;:::-;1553:47875:165;;21424:52;-1:-1:-1;;;;;;;;;;;1553:47875:165;21424:52;1553:47875;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;19201:42;-1:-1:-1;;;;;;;;;;;1553:47875:165;19201:42;1553:47875;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;2288:3;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::o;:::-;2288:3;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47875:165;;;;:::o;2224:17::-;1553:47875;;;;;;;:::i;:::-;2224:17;1553:47875;;-1:-1:-1;;;1553:47875:165;2224:17;;;:::o;2288:3::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2203:1:169;;;;;;;;;;1553:47875:165;;;;;;;2203:1:169;:::o;:::-;1553:47875:165;;2203:1:169;;;;;;;;:::o;2366:5:165:-;;;;;;;;;;;;;;;;:::o;2446:3::-;;;;;;;;;;;1553:47875;;;;:::i;:::-;2446:3;;;1553:47875;;;2446:3;;;1553:47875;2446:3;;;:::o;:::-;-1:-1:-1;;;;;2446:3:165;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:47875;;;;;;;:::i;:::-;2446:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:47875;;;;;:::i;:::-;2446:3;;;;;;;;1553:47875;;;;;;;;;;;;:::o;:::-;2288:3;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;14401:375::-;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;14653:22:165;;;1553:47875;14605:22;;;;;;14758:11;;;;1553:47875;14401:375;:::o;14629:3::-;14676:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;14652:39;14648:90;;1553:47875;;14590:13;;14648:90;14711:12;;;;1553:47875;14711:12;:::o;1553:47875::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;:::o;2670:66::-;;;;;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1553:47875:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1553:47875:165;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1553:47875:165;;-1:-1:-1;2763:40:29;2709:128:37;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;38872:934:165;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;39048:19;;;;1553:47875;39048:38;1553:47875;;;;;39141:19;;;1553:47875;;;;;;;;;;;;;;39179:24;39141:62;1553:47875;;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;;3543:209:25;1553:47875:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1651:6:167;1052:614:22;1553:47875:165;1052:614:22;1888:66:167;4093:83:22;;1998:66:167;1553:47875:165;4093:83:22;;;2108:66:167;1553:47875:165;4093:83:22;;;2218:66:167;2210:6;4093:83:22;;;2328:66:167;2320:6;4093:83:22;;;2438:66:167;2430:6;4093:83:22;;;2548:66:167;2540:6;4093:83:22;;;2658:66:167;2650:6;4093:83:22;;;2768:66:167;2760:6;4093:83:22;;;2878:66:167;2870:6;4093:83:22;;;2988:66:167;2980:6;4093:83:22;;;3098:66:167;3090:6;4093:83:22;;;3208:66:167;3200:6;4093:83:22;;;3318:66:167;3310:6;4093:83:22;;;3428:66:167;3420:6;4093:83:22;;;3538:66:167;3530:6;4093:83:22;;;3648:66:167;3640:6;4093:83:22;;;3758:66:167;3750:6;4093:83:22;;;3868:66:167;3860:6;4093:83:22;;;3978:66:167;3970:6;4093:83:22;;;4088:66:167;4080:6;4093:83:22;;;4198:66:167;4190:6;4093:83:22;;;39601:4:165;4536:2:167;1553:47875:165;4437:66:167;;;;;4436:103;4416:6;4093:83:22;;;4592:66:167;4584:6;4093:83:22;;;39478:135:165;4670:150:167;;;;;;1553:47875:165;;;;;;;-1:-1:-1;1553:47875:165;39624:28;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;39681:33;;;:35;1553:47875;;39681:35;:::i;:::-;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;39732:32;;1553:47875;;39732:32;39775:24;38872:934;:::o;1553:47875::-;;;;;;;;;38872:934;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;39048:19;31328:4;39048:19;;1553:47875;39048:38;1553:47875;;;-1:-1:-1;1553:47875:165;39141:19;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;;;;;39179:24;39141:62;1553:47875;;3543:209:25;-1:-1:-1;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;-1:-1:-1;3543:209:25;1553:47875:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1545:4:168;1052:614:22;1553:47875:165;1052:614:22;2041:66:168;4093:83:22;;39540:4:165;1052:614:22;1553:47875:165;2187:66:168;2186:105;1553:47875:165;4093:83:22;;;2342:66:168;1553:47875:165;4093:83:22;;;-1:-1:-1;2420:150:168;;;;;;1553:47875:165;;;;;;;-1:-1:-1;1553:47875:165;39624:28;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;39681:33;;;:35;1553:47875;;39681:35;:::i;22859:532:169:-;22984:12;-1:-1:-1;;2288:3:165;;;22859:532:169;;2288:3:165;;;;1553:47875;;22984:12:169;23024:22;;22984:12;;23024:50;1553:47875:165;23024:50:169;;23108:8;;;;;;23084:278;-1:-1:-1;1553:47875:165;;-1:-1:-1;;22859:532:169:o;23089:17::-;23147:12;;23177:11;;;;;-1:-1:-1;22999:1:169;;-1:-1:-1;;;23208:11:169:o;23173:119::-;23244:8;23240:52;;-1:-1:-1;;1553:47875:165;23089:17:169;;23240:52;23272:5;;23024:50;23053:21;22984:12;;23053:21;:::i;:::-;23024:50;;;1553:47875:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;39812:846::-;;39940:22;;;39973:1;39940:22;;;;:::i;:::-;:34;;;1553:47875;;40017:22;;;;:::i;:::-;:34;;;40013:177;;40244:22;;;:::i;:::-;1553:47875;;;;;;;:::i;:::-;40334:23;;;;;:::i;:::-;2366:5;;;;1553:47875;2366:5;;;;;45846:2;2366:5;;;;;;;45892:36;;;;;;:::i;:::-;45938:18;1553:47875;45972:13;1553:47875;;46107:28;1553:47875;;;;;;46107:28;;45967:685;46007:3;45987:18;;;;;;1553:47875;;;;;;;;;;;;;;46136:18;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;46107:53;1553:47875;;;39940:22;46230:25;;-1:-1:-1;;;;;46230:25:165;;;:::i;:::-;1553:47875;46230:30;;:72;;;46007:3;46226:144;;46007:3;-1:-1:-1;;;;;46417:18:165;;;:::i;:::-;1553:47875;;-1:-1:-1;;;46409:76:165;;45846:2;46409:76;;;1553:47875;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;:::i;:::-;;;;;;45846:2;1553:47875;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;45846:2;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;41641:51;1553:47875;;;;;;;;;;;;45846:2;1553:47875;;;;;;;;;;;;;;;;;;;;;;;46409:76;;;;;;;45846:2;46409:76;;-1:-1:-1;;;;;46409:76:165;;;;1553:47875;;46409:76;;;;;;;;1553:47875;46409:76;;;1553:47875;4093:83:22;;45846:2:165;4093:83:22;39973:1:165;4093:83:22;;;;1553:47875:165;46007:3;1553:47875;45972:13;;;46409:76;;;45846:2;46409:76;;;;;;;;;1553:47875;46409:76;;;:::i;:::-;;;1553:47875;;;;;39973:1;46409:76;;;;;-1:-1:-1;46409:76:165;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;45846:2;1553:47875;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;45846:2;1553:47875;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;39940:22;1553:47875;;;:::i;:::-;;;;;;;;;;39940:22;1553:47875;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;;;;;;39973:1;1553:47875;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39973:1;1553:47875;;;;;;;;;;;45846:2;1553:47875;;;:::i;:::-;;45846:2;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;46226:144;46330:25;;;;;:::i;:::-;46226:144;;;46230:72;46265:37;;1553:47875;46265:37;;;:::i;:::-;46264:38;46230:72;;45987:18;;;;;;;;;;1083:131:25;40386:16:165;1553:47875;45846:2;40386:16;;1553:47875;;40374:29;45846:2;1553:47875;;;;;40374:29;40417:32;1553:47875;40417:46;40413:127;;45967:685;1553:47875;;17498:64:169;45846:2:165;17498:64:169;;1553:47875:165;;;;;;;;;;;;17498:64:169;;;39940:22:165;17498:64:169;;:::i;:::-;1553:47875:165;17488:75:169;;39812:846:165;:::o;40413:127::-;40484:45;45846:2;1553:47875;;;;;40484:45;40413:127;;40013:177;40159:20;;;40166:13;40159:20;:::o;1553:47875::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;42108:1705::-;42238:24;;;42273:1;42238:24;;;;:::i;:::-;:36;;;1553:47875;;42319:24;;;;:::i;:::-;:36;;;42315:179;;42550:24;;;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;42596:21;;;;;42620;42596;;;:::i;:::-;42620;;;1553:47875;42620:21;;;;:::i;:::-;1553:47875;;;42596:45;1553:47875;;;42699:21;;;:::i;:::-;1553:47875;42724:29;;;;1553:47875;42620:21;1553:47875;;;;42699:54;1553:47875;;42910:46;1553:47875;42934:21;42830:46;42854:21;;;;:::i;:::-;1553:47875;42830:46;;:::i;:::-;42934:21;;:::i;:::-;1553:47875;42910:46;;:::i;:::-;-1:-1:-1;1553:47875:165;;;43078:31;;;1553:47875;43147:32;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;43246:19;;;;1553:47875;;;;42620:21;;1553:47875;43134:144;43215:62;42620:21;43246:19;;1553:47875;43246:19;:::i;:::-;:31;1553:47875;43215:62;;:::i;:::-;43246:19;1553:47875;;;;;;;;;43134:144;;;;;;1553:47875;;;;;43134:144;;;;;;;1553:47875;43134:144;;;42108:1705;1553:47875;;;;;43246:19;1553:47875;-1:-1:-1;;;43368:185:165;;-1:-1:-1;;;;;1553:47875:165;;;43134:144;43368:185;;1553:47875;;;;;;;;42620:21;43513:26;;;1553:47875;43134:144;1553:47875;;;;43368:185;1553:47875;-1:-1:-1;43368:185:165;;;;;;;;1553:47875;43368:185;;;42108:1705;43654:19;;;;;:::i;:::-;43675:21;;;;:::i;:::-;1553:47875;43246:19;1553:47875;;;;;43605:92;;43246:19;43134:144;43605:92;;1553:47875;;;;;;;;;;;;;;;;;;;;42620:21;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;43147:32;1553:47875;;;;;;;42596:21;43134:144;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;42620:21;1553:47875;;;;;;;;;;;43368:185;1553:47875;;;;43246:19;1553:47875;;;;;;;;:::i;:::-;;;;;;;;;;;43605:92;;;;;;;;;1553:47875;43605:92;;;1553:47875;43784:21;;;;:::i;:::-;43246:19;1553:47875;18547:70:169;42620:21:165;18547:70:169;;1553:47875:165;;;43246:19;1553:47875;;;;;;;;;;42596:21;1553:47875;;;18547:70:169;;;;;;;:::i;43605:92:165:-;;;;42620:21;43605:92;;42620:21;43605:92;;;;;;1553:47875;43605:92;;;:::i;:::-;;;1553:47875;;;;;;43784:21;43605:92;;;;;-1:-1:-1;43605:92:165;;1553:47875;;;;;;;43246:19;1553:47875;42273:1;1553:47875;;;;;;;;;:::i;:::-;;;;42620:21;1553:47875;;;42620:21;1553:47875;;;;;;;;;;;;;;;;43368:185;;;;;42620:21;43368:185;;42620:21;43368:185;;;;;;1553:47875;43368:185;;;:::i;:::-;;;1553:47875;;;;;;;43654:19;43368:185;;;;;-1:-1:-1;43368:185:165;;1553:47875;;;;;;43134:144;1553:47875;;43134:144;;;;42620:21;43134:144;42620:21;43134:144;;;;;;;:::i;:::-;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;43880:1705::-;;44013:27;;;44051:1;44013:27;;;;:::i;:::-;:39;;;1553:47875;;44100:27;;;;:::i;:::-;:39;;;44096:182;;44337:27;;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;44386:22;;;;;;;:::i;:::-;:33;;;1553:47875;;;44553:29;;;1553:47875;;;;44535:15;:47;:15;;:47;:::i;:::-;44534:72;44586:16;;;1553:47875;44534:72;;;:::i;:::-;44625:20;;;;1553:47875;2670:66;44051:1;2670:66;;;;;;;44625:43;;1553:47875;;44759:43;;44727:75;44759:43;;:::i;:::-;44727:75;;:::i;:::-;44854:25;44839:40;44854:25;;;1553:47875;44839:40;;:::i;:::-;44535:15;44820:59;1553:47875;;44998:34;;;:::i;:::-;45050:28;1553:47875;45050:28;;44535:15;;1553:47875;;45050:46;1553:47875;;;45245:34;;;:::i;:::-;45293:31;1553:47875;45293:31;;45338:45;;;;;2446:3;;45338:45;;;;:::i;:::-;45397:22;;;;;;:::i;:::-;1553:47875;;;2446:3;1553:47875;2446:3;;:::i;:::-;1553:47875;;2446:3;;:::i;:::-;47096:752;;;43880:1705;47862:13;;1553:47875;47862:13;;;47881:16;1553:47875;47881:16;;;47979:15;;47857:168;47906:3;1553:47875;;47877:27;;;;;1553:47875;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;44051:1;1553:47875;47862:13;;47877:27;;;;;;;;;;1553:47875;48081:3;1553:47875;;48054:25;;;;;44051:1;;-1:-1:-1;;;;;48121:17:165;1553:47875;48121:17;;:::i;:::-;2288:3;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;48039:13;;48054:25;;;;;;;;;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;48034:163;1553:47875;;;;;;;;;;;;;;;;;;;;45471:47;1553:47875;;;;;;45471:47;1553:47875;;;;;;;;;;44625:20;1553:47875;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;45338:45;1553:47875;;;;44386:22;1553:47875;;;;;;18992:30:169;;2203:1;1553:47875:165;2203:1:169;;19042:32;;2203:1;1553:47875:165;;;18907:257:169;;;1553:47875:165;18907:257:169;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;18907:257:169;;;;;;1553:47875:165;18907:257:169;;;:::i;1553:47875:165:-;;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;44051:1;1553:47875;;;;2288:3;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;44051:1;1553:47875;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;47096:752;2203:1:169;;47557:25:165;1553:47875;47557:25;;2203:1:169;;;1145:66:27;;1837:24:26;;:71;;;;47096:752:165;1553:47875;;;;;2203:1:169;1553:47875:165;;2203:1:169;44051::165;1553:47875;;;1705:1673:171;;;;;;;;;;;;;;;;;;;1553:47875:165;1705:1673:171;;;;;;;44553:29:165;47733:52;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;-1:-1:-1;;47096:752:165;;1705:1673:171;;1553:47875:165;1705:1673:171;;;;1553:47875:165;;;;;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24604:3813:169;;;;;;1553:47875:165;32602:29:169;;;1553:47875:165;;;;32634:22:169;24973:15;32634:22;;:::i;:::-;32602:77;32634:45;32659:16;;;1553:47875:165;32634:45:169;;;:::i;:::-;32602:77;;:::i;:::-;25003:15;;;;;;:82;;24604:3813;24999:676;;;25109:35;;;1553:47875:165;;25194:25:169;;;;:::i;:::-;:39;1553:47875:165;;25769:24:169;24999:676;;25769:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1553:47875:165;3226:200:80;25834:4:169;3226:200:80;;32602:29:169;3226:200:80;32659:16:169;3226:200:80;;1553:47875:165;3226:200:80;1553:47875:165;32602:29:169;1553:47875:165;;;;;25897:37:169;;;25958:23;;32602:19;25958:23;;1553:47875:165;;;;;;;2446:3;1553:47875;;:::i;:::-;2446:3;;;:::i;:::-;1553:47875;3226:200:80;1553:47875:165;;26089:23:169;1553:47875:165;;26279:240:169;1553:47875:165;26800:272:169;26279:240;;;3226:200:80;26279:240:169;;;;;;;1553:47875:165;32602:19:169;1553:47875:165;;26889:32:169;;1553:47875:165;26800:272:169;;:::i;1553:47875:165:-;;;;;;;;;;;;;;;;;;25893:2495:169;1553:47875:165;;;32602:19:169;27093:37;27089:1299;;25893:2495;;;;;1553:47875:165;24604:3813:169;:::o;27089:1299::-;27166:199;27203:15;27243:25;27203:15;;;;;1553:47875:165;27243:25:169;;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;27166:199:169;;:::i;:::-;27380:27;1553:47875:165;27427:13:169;27623:14;1553:47875:165;27623:14:169;;27422:929;27466:3;27442:22;;;;;;3927:8:77;3871:27;2446:3:165;1553:47875;;;;;;;;:::i;2446:3::-;3871:27:77;;:::i;3927:8::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;27619:718:169;;27466:3;;32602:19;27466:3;27427:13;1553:47875:165;27427:13:169;;27619:718;-1:-1:-1;;;;;2780:163:73;1553:47875:165;2780:163:73;;;2113:66:165;1553:47875;2780:163:73;;;;3327:69:76;;27982:50:169;;;28060:8;32602:19;28060:8;;;27978:223;3556:68:76;32602:19:169;28227:17;3556:68:76;;;28227:17:169;:::i;:::-;:30;;;;28223:96;;27619:718;;;28223:96;28285:11;;;;;;;32602:19;28285:11;:::o;27442:22::-;;;;;;;;1553:47875:165;28365:12:169;:::o;1553:47875:165:-;;;;;;;;;;;;;;;;;;24999:676:169;24973:15;;;;;;25468:21;;1553:47875:165;;25769:24:169;25526:69;;;24999:676;;;;25526:69;25565:15;;25526:69;;;1553:47875:165;;;;;;;;;25003:82:169;25053:32;25040:45;25053:32;;;1553:47875:165;25040:45:169;;:::i;:::-;24973:15;25022:63;25003:82;;23884:229;1553:47875:165;;:::i;:::-;;;24062:12:169;15374:24:83;15370:103;;1553:47875:165;837:15:87;14374:24:83;14370:103;;1553:47875:165;;;;;:::i;:::-;24032:1:169;1553:47875:165;;;24062:12:169;1553:47875:165;24000:106:169;;;1553:47875:165;;837:15:87;1553:47875:165;;24000:106:169;;1553:47875:165;23884:229:169;:::o;14370:103:83:-;15421:41;;;24032:1:169;14421:41:83;14452:2;14421:41;1553:47875:165;837:15:87;1553:47875:165;;;24032:1:169;14421:41:83;15370:103;15421:41;;;24032:1:169;15421:41:83;15452:2;15421:41;1553:47875:165;24062:12:169;1553:47875:165;;;24032:1:169;15421:41:83;1553:47875:165;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;2288:3;;;1553:47875;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31451:456:169;-1:-1:-1;;;;;31451:456:169;;1553:47875:165;;;;31760:24:169;;;;:::i;:::-;1553:47875:165;;;;;;31872:5:169;1553:47875:165;;31885:1:169;1553:47875:165;31451:456:169;:::o;1553:47875:165:-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;863:809:22:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;32092:179:169:-;32244:16;32206:34;32205:59;32092:179;1553:47875:165;32211:29:169;;;1553:47875:165;;;;32206:34:169;;:::i;:::-;32244:16;;1553:47875:165;32205:59:169;;:::i;28908:322::-;29028:50;29062:15;29028:50;;:::i;:::-;29062:15;;;29101:37;;29094:44;:::o;29024:200::-;29176:37;;29169:44;:::o;29367:312::-;;29490:37;29367:312;29490:37;;:::i;:::-;;;;29550;;29543:44;:::o;29486:187::-;29625:37;;29618:44;:::o;7001:1787:20:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:20;;;8025:68;;2933:1:27;2929:5;4026:14:20;2670:66:165;4010:31:20;;;:::i;:::-;1553:47875:165;425:3:20;1553:47875:165;;;4003:1:27;2933;2929:5;;1553:47875:165;425:3:20;4492:84:22;;;4093:83;2670:66:165;4093:83:22;;;4003:1:27;1553:47875:165;;2670:66;4492:84:22;;;2670:66:165;4093:83:22;;;;;2670:66:165;4093:83:22;;;1581:66:20;2670::165;4093:83:22;;;-1:-1:-1;;;2670:66:165;4093:83:22;;;531:131:25;;2670:66:165;4093:83:22;;;;;;4003:1:27;2670:66:165;4492:84:22;;2933:1:27;4492:84:22;;2670:66:165;531:131:25;;5696:10:20;;;4093:83:22;;4492:84;2670:66:165;1145::27;;531:131:25;;6084:3:20;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;6084:3:20;1553:47875:165;;6062:44:20;1145:66:27;;;1860::20;1553:47875:165;1860:66:20;;1553:47875:165;6037:2:20;1553:47875:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1553:47875:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1553:47875:165;4093:83:22;;1553:47875:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1553:47875:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1553:47875:165;1640:140:24;3543:209:25;1553:47875:165;3543:209:25;648:2:20;3543:209:25;1553:47875:165;;;;;6037:2:20;1553:47875:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1553:47875:165;8070:12:20;:::o;4016:191:40:-;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1553:47875:165;;4107:92:40;;;;1553:47875:165;1959:95:40;1553:47875:165;;;1959:95:40;;1553:47875:165;1959:95:40;;;1553:47875:165;4170:13:40;1959:95;;;1553:47875:165;4193:4:40;1959:95;;;1553:47875:165;1959:95:40;4107:92;;;;;;:::i;7082:141:30:-;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;33026:467:169;1553:47875:165;;:::i;:::-;-1:-1:-1;33330:51:169;;;1553:47875:165;33448:27:169;;;1553:47875:165;;;;;;;;33401:15:169;;-1:-1:-1;;;;;1553:47875:165;;;;:::i;:::-;;;;:::i;:::-;;;33189:297:169;;;2288:3:165;33401:15:169;1553:47875:165;:::i;:::-;;33189:297:169;;1553:47875:165;33189:297:169;;;1553:47875:165;33026:467:169;:::o;5203:1551:77:-;;;6283:66;6270:79;;6266:164;;1553:47875:165;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1553:47875:165;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1553:47875:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1553:47875:165;7462:38:77;;1553:47875:165;;7523:23:77;;;7375:20;7523:23;1553:47875:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1553:47875:165;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1553:47875:165;;;7375:20:77;7763:32;30086:863:169;;30332:54;30254;;;1553:47875:165;30332:54:169;;1553:47875:165;30460:10:169;;;1553:47875:165;;30531:9:169;;;;30563;;;;;30595;;;30696:14;;;;;30086:863;1553:47875:165;;;30912:30:169;;;30905:37;;30086:863;:::o;30912:30::-;30927:14;;30086:863;-1:-1:-1;30086:863:169:o;1553:47875:165:-;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;30696:14:169;;;;;1553:47875:165;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;2129:778:77;1553:47875:165;;;2129:778:77;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:77;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;1767:250:27:-;-1:-1:-1;;912:66:27;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:27;;1948:15;:62;1767:250;:::o;6928:687:40:-;1553:47875:165;;:::i;:::-;;;;7100:22:40;;;;1553:47875:165;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1553:47875:165;;:::i;:::-;;;;8017:25:40;;;;1553:47875:165;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1553:47875:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1553:47875:165;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1553:47875:165;;;;4933:24:66;1553:47875:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":10287,"length":32},{"start":10434,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"1622441d","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":"ee32004f","createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":"0d91bf2a","eip712Domain()":"84b0196e","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":"8c4ace6a","requestCodeValidationBaseFee()":"188509e9","requestCodeValidationExtraFee()":"f1ef31ec","requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":"f0fd702a","setMirror(address)":"3d43b418","setRequestCodeValidationBaseFee(uint256)":"11bec80d","setRequestCodeValidationExtraFee(uint256)":"0b9737ce","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"providedBlobHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedBlobHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidBlobHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedLength\",\"type\":\"uint256\"}],\"name\":\"InvalidBlobHashesLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ethBlockHash\",\"type\":\"bytes32\"}],\"name\":\"EBCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"MBCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastAdvancedEthBlock\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasAggregatedPublicKey\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"createProgramWithAbiInterfaceAndExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"createProgramWithExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationExtraFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_requester\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"_blobHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v1\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s1\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_v2\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s2\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidationOnBehalf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExtraFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationExtraFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxValidators\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationBaseFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationExtraFee\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BlobNotFound()\":[{\"details\":\"Thrown when the tx is not in EIP-4844/EIP-7594 format, so it doesn't have blobhashes.\"}],\"CodeAlreadyOnValidationOrValidated()\":[{\"details\":\"Thrown when the code is already on validation or validated.\"}],\"CodeNotValidated()\":[{\"details\":\"Thrown when the code is not validated and someone tries to create program with it.\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"EraDurationTooShort()\":[{\"details\":\"Thrown when the era duration is too short (era duration must be greater than election duration).\"}],\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"ExpiredSignature(uint256)\":[{\"details\":\"Thrown when deadline for code validation request has expired.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"GenesisHashAlreadySet()\":[{\"details\":\"Thrown when the genesis hash is already set by someone else.\"}],\"GenesisHashNotFound()\":[{\"details\":\"Thrown when the genesis hash is not found from previous blocks. There is 256 blocks lookback for `blockhash` opcode, so if the genesis block is too old, it may not be found.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidBlobHash(uint256,bytes32,bytes32)\":[{\"details\":\"Thrown when the blobhash for code validation request is invalid.\"}],\"InvalidBlobHashesLength(uint256,uint256)\":[{\"details\":\"Thrown when the provided blob hashes length doesn't match the actual blob hashes length in transaction.\"}],\"InvalidElectionDuration()\":[{\"details\":\"Thrown when an invalid election duration is provided (must be greater than 0).\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidSigner(address,address)\":[{\"details\":\"Thrown when the signer of the code validation request is not the requester.\"}],\"InvalidTimestamp()\":[{\"details\":\"Thrown when an invalid block.timestamp is provided (must be greater than 0).\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"RouterGenesisHashNotInitialized()\":[{\"details\":\"Thrown when the router's genesis hash is not initialized (no one called `lookupGenesisHash` yet).\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidationDelayTooBig()\":[{\"details\":\"Thrown when the validation delay is too big.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"events\":{\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch hash (`keccak256` algorithm), see `Gear.batchCommitmentHash(...)`.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, one the client side it's calculated as `gprimitives::CodeId::generate(wasm_code)`.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"EBCommitted(bytes32)\":{\"details\":\"Lets observers update `last_committed_eb` so the producer can decide when to issue a checkpoint batch even with no transitions.\",\"params\":{\"ethBlockHash\":\"Latest Ethereum block hash whose events were folded into the chain commitment's MB head.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MBCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\"}},\"StorageSlotChanged(bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\",\"params\":{\"slot\":\"The new storage slot.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\",\"returns\":{\"_0\":\"domainSeparator The domain separator.\"}},\"areValidators(address[])\":{\"details\":\"Checks if the given addresses are all validators.\",\"returns\":{\"_0\":\"areValidators `true` if all addresses are validators, `false` otherwise.\"}},\"codeState(bytes32)\":{\"details\":\"Returns the state of code.\",\"returns\":{\"_0\":\"codeState The state of the code.\"}},\"codesStates(bytes32[])\":{\"details\":\"Returns the states of multiple codes.\",\"returns\":{\"_0\":\"codesStates The states of the codes.\"}},\"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])\":{\"details\":\"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\",\"params\":{\"_batch\":\"The batch commitment data.\",\"_signatureType\":\"The type of signature to validate.\",\"_signatures\":\"The signatures for the batch commitment.\"}},\"computeSettings()\":{\"details\":\"Returns the computation settings.\",\"returns\":{\"_0\":\"computeSettings The computation settings.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createProgram(bytes32,bytes32,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterface(bytes32,bytes32,address,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"genesisBlockHash()\":{\"details\":\"Returns the hash of the genesis block.\",\"returns\":{\"_0\":\"genesisBlockHash The hash of the genesis block.\"}},\"genesisTimestamp()\":{\"details\":\"Returns the timestamp of the genesis block.\",\"returns\":{\"_0\":\"genesisTimestamp The timestamp of the genesis block.\"}},\"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])\":{\"details\":\"Initializes the `Router` with the given parameters.\",\"params\":{\"_aggregatedPublicKey\":\"The optional aggregated public key of the initial validators. Will be used in future.\",\"_electionDuration\":\"The duration of an election in seconds.\",\"_eraDuration\":\"The duration of an era in seconds.\",\"_middleware\":\"The address of the middleware contract.\",\"_mirror\":\"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\",\"_owner\":\"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\",\"_validationDelay\":\"The delay before validators can start validating in seconds.\",\"_validators\":\"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.\",\"_verifiableSecretSharingCommitment\":\"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\",\"_wrappedVara\":\"The address of the `WrappedVara` (WVARA) ERC20 token contract.\"}},\"isValidator(address)\":{\"details\":\"Checks if the given address is a validator.\",\"returns\":{\"_0\":\"isValidator `true` if the address is a validator, `false` otherwise.\"}},\"latestCommittedBatchHash()\":{\"details\":\"Returns the hash of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchHash The hash of the latest committed batch.\"}},\"latestCommittedBatchTimestamp()\":{\"details\":\"Returns the timestamp of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchTimestamp The timestamp of the latest committed batch.\"}},\"lookupGenesisHash()\":{\"details\":\"Looks up the genesis hash from previous blocks.\"},\"middleware()\":{\"details\":\"Returns the address of the middleware implementation.\",\"returns\":{\"_0\":\"middleware The address of the middleware implementation.\"}},\"mirrorImpl()\":{\"details\":\"Returns the address of the mirror implementation.\",\"returns\":{\"_0\":\"mirrorImpl The address of the mirror implementation.\"}},\"nonces(address)\":{\"details\":\"Returns the next unused nonce for an address.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Pauses the contract.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\",\"returns\":{\"_0\":\"isPaused `true` if the contract is paused, `false` otherwise.\"}},\"programCodeId(address)\":{\"details\":\"Returns the code ID of the given program.\",\"returns\":{\"_0\":\"codeId The code ID of the program.\"}},\"programsCodeIds(address[])\":{\"details\":\"Returns the code IDs of the given programs.\",\"returns\":{\"_0\":\"codesIds The code IDs of the programs.\"}},\"programsCount()\":{\"details\":\"Returns the count of programs.\",\"returns\":{\"_0\":\"programsCount The count of programs.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\",\"details\":\"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.\",\"params\":{\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\"}},\"requestCodeValidationBaseFee()\":{\"details\":\"Returns the base fee for requesting code validation in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationBaseFee The base fee for requesting code validation.\"}},\"requestCodeValidationExtraFee()\":{\"details\":\"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else.\"}},\"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.\",\"params\":{\"_blobHashes\":\"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.\",\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_r2\":\"ECDSA signature parameter (for permit).\",\"_requester\":\"The address of the requester on behalf of whom the code validation is requested.\",\"_s1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_s2\":\"ECDSA signature parameter (for permit).\",\"_v1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_v2\":\"ECDSA signature parameter (for permit).\"}},\"setMirror(address)\":{\"details\":\"Sets the `Mirror` implementation address.\",\"params\":{\"newMirror\":\"The new mirror implementation address.\"}},\"setRequestCodeValidationBaseFee(uint256)\":{\"details\":\"Sets the base fee for requesting code validation in WVARA ERC20 token.\",\"params\":{\"newBaseFee\":\"The new base fee for requesting code validation.\"}},\"setRequestCodeValidationExtraFee(uint256)\":{\"details\":\"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"params\":{\"newExtraFee\":\"The new extra fee for requesting code validation on behalf of someone else.\"}},\"signingThresholdFraction()\":{\"details\":\"Returns the signing threshold fraction.\",\"returns\":{\"thresholdDenominator\":\"The denominator of the signing threshold fraction.\",\"thresholdNumerator\":\"The numerator of the signing threshold fraction.\"}},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\",\"returns\":{\"_0\":\"storageView The storage view of the contract storage.\"}},\"timelines()\":{\"details\":\"Returns the timelines.\",\"returns\":{\"_0\":\"timelines The timelines.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Unpauses the contract.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"validatedCodesCount()\":{\"details\":\"Returns the count of validated codes.\",\"returns\":{\"_0\":\"validatedCodesCount The count of validated codes.\"}},\"validators()\":{\"details\":\"Returns the list of current validators.\",\"returns\":{\"_0\":\"validators The list of current validators.\"}},\"validatorsAggregatedPublicKey()\":{\"details\":\"Returns the aggregated public key of the current validators.\",\"returns\":{\"_0\":\"validatorsAggregatedPublicKey The aggregated public key of the current validators.\"}},\"validatorsCount()\":{\"details\":\"Returns the count of current validators.\",\"returns\":{\"_0\":\"validatorsCount The count of current validators.\"}},\"validatorsThreshold()\":{\"details\":\"Returns the threshold number of validators required for a valid signature.\",\"returns\":{\"_0\":\"threshold The threshold number of validators required for a valid signature.\"}},\"validatorsVerifiableSecretSharingCommitment()\":{\"details\":\"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\",\"returns\":{\"_0\":\"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators.\"}},\"wrappedVara()\":{\"details\":\"Returns the address of the wrapped Vara implementation.\",\"returns\":{\"_0\":\"wrappedVara The address of the wrapped Vara implementation.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its `Gear.CodeState` changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"EBCommitted(bytes32)\":{\"notice\":\"Emitted when a chain commitment carrying a `lastAdvancedEthBlock` lands on-chain.\"},\"MBCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Router.sol\":{\"keccak256\":\"0x1f0d777704c9ea8a2f5e8e9e02d3f61765667dc40dc943d65d6f25c4a605406f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://959a5d6b41c8a9946f3f33480d84e6efda68d653d2618e517a0a443c175a4036\",\"dweb:/ipfs/QmSubQM2F8doVQ1KojePgmTfrGweEUx5frzwBRPiY53kcH\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3\",\"dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b\",\"dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389\",\"dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32","name":"providedBlobHash","type":"bytes32"},{"internalType":"bytes32","name":"expectedBlobHash","type":"bytes32"}],"type":"error","name":"InvalidBlobHash"},{"inputs":[{"internalType":"uint256","name":"providedLength","type":"uint256"},{"internalType":"uint256","name":"expectedLength","type":"uint256"}],"type":"error","name":"InvalidBlobHashesLength"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"requester","type":"address"}],"type":"error","name":"InvalidSigner"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"ethBlockHash","type":"bytes32","indexed":false}],"type":"event","name":"EBCommitted","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"MBCommitted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]},{"internalType":"bytes32","name":"head","type":"bytes32"},{"internalType":"bytes32","name":"lastAdvancedEthBlock","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"bool","name":"hasAggregatedPublicKey","type":"bool"},{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterfaceAndExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationExtraFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_requester","type":"address"},{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32[]","name":"_blobHashes","type":"bytes32[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v1","type":"uint8"},{"internalType":"bytes32","name":"_r1","type":"bytes32"},{"internalType":"bytes32","name":"_s1","type":"bytes32"},{"internalType":"uint8","name":"_v2","type":"uint8"},{"internalType":"bytes32","name":"_r2","type":"bytes32"},{"internalType":"bytes32","name":"_s2","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidationOnBehalf"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"uint256","name":"newBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationBaseFee"},{"inputs":[{"internalType":"uint256","name":"newExtraFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationExtraFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"},{"internalType":"uint16","name":"maxValidators","type":"uint16"},{"internalType":"uint256","name":"requestCodeValidationBaseFee","type":"uint256"},{"internalType":"uint256","name":"requestCodeValidationExtraFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.","returns":{"_0":"domainSeparator The domain separator."}},"areValidators(address[])":{"details":"Checks if the given addresses are all validators.","returns":{"_0":"areValidators `true` if all addresses are validators, `false` otherwise."}},"codeState(bytes32)":{"details":"Returns the state of code.","returns":{"_0":"codeState The state of the code."}},"codesStates(bytes32[])":{"details":"Returns the states of multiple codes.","returns":{"_0":"codesStates The states of the codes."}},"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":{"details":"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.","params":{"_batch":"The batch commitment data.","_signatureType":"The type of signature to validate.","_signatures":"The signatures for the batch commitment."}},"computeSettings()":{"details":"Returns the computation settings.","returns":{"_0":"computeSettings The computation settings."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createProgram(bytes32,bytes32,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterface(bytes32,bytes32,address,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"genesisBlockHash()":{"details":"Returns the hash of the genesis block.","returns":{"_0":"genesisBlockHash The hash of the genesis block."}},"genesisTimestamp()":{"details":"Returns the timestamp of the genesis block.","returns":{"_0":"genesisTimestamp The timestamp of the genesis block."}},"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":{"details":"Initializes the `Router` with the given parameters.","params":{"_aggregatedPublicKey":"The optional aggregated public key of the initial validators. Will be used in future.","_electionDuration":"The duration of an election in seconds.","_eraDuration":"The duration of an era in seconds.","_middleware":"The address of the middleware contract.","_mirror":"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.","_owner":"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.","_validationDelay":"The delay before validators can start validating in seconds.","_validators":"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.","_verifiableSecretSharingCommitment":"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.","_wrappedVara":"The address of the `WrappedVara` (WVARA) ERC20 token contract."}},"isValidator(address)":{"details":"Checks if the given address is a validator.","returns":{"_0":"isValidator `true` if the address is a validator, `false` otherwise."}},"latestCommittedBatchHash()":{"details":"Returns the hash of the latest committed batch.","returns":{"_0":"latestCommittedBatchHash The hash of the latest committed batch."}},"latestCommittedBatchTimestamp()":{"details":"Returns the timestamp of the latest committed batch.","returns":{"_0":"latestCommittedBatchTimestamp The timestamp of the latest committed batch."}},"lookupGenesisHash()":{"details":"Looks up the genesis hash from previous blocks."},"middleware()":{"details":"Returns the address of the middleware implementation.","returns":{"_0":"middleware The address of the middleware implementation."}},"mirrorImpl()":{"details":"Returns the address of the mirror implementation.","returns":{"_0":"mirrorImpl The address of the mirror implementation."}},"nonces(address)":{"details":"Returns the next unused nonce for an address."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"Pauses the contract."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise.","returns":{"_0":"isPaused `true` if the contract is paused, `false` otherwise."}},"programCodeId(address)":{"details":"Returns the code ID of the given program.","returns":{"_0":"codeId The code ID of the program."}},"programsCodeIds(address[])":{"details":"Returns the code IDs of the given programs.","returns":{"_0":"codesIds The code IDs of the programs."}},"programsCount()":{"details":"Returns the count of programs.","returns":{"_0":"programsCount The count of programs."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":"","details":"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.","params":{"_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter."}},"requestCodeValidationBaseFee()":{"details":"Returns the base fee for requesting code validation in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationBaseFee The base fee for requesting code validation."}},"requestCodeValidationExtraFee()":{"details":"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."}},"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.","params":{"_blobHashes":"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.","_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r1":"ECDSA signature parameter (for requestCodeValidation).","_r2":"ECDSA signature parameter (for permit).","_requester":"The address of the requester on behalf of whom the code validation is requested.","_s1":"ECDSA signature parameter (for requestCodeValidation).","_s2":"ECDSA signature parameter (for permit).","_v1":"ECDSA signature parameter (for requestCodeValidation).","_v2":"ECDSA signature parameter (for permit)."}},"setMirror(address)":{"details":"Sets the `Mirror` implementation address.","params":{"newMirror":"The new mirror implementation address."}},"setRequestCodeValidationBaseFee(uint256)":{"details":"Sets the base fee for requesting code validation in WVARA ERC20 token.","params":{"newBaseFee":"The new base fee for requesting code validation."}},"setRequestCodeValidationExtraFee(uint256)":{"details":"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","params":{"newExtraFee":"The new extra fee for requesting code validation on behalf of someone else."}},"signingThresholdFraction()":{"details":"Returns the signing threshold fraction.","returns":{"thresholdDenominator":"The denominator of the signing threshold fraction.","thresholdNumerator":"The numerator of the signing threshold fraction."}},"storageView()":{"details":"Returns the storage view of the contract storage.","returns":{"_0":"storageView The storage view of the contract storage."}},"timelines()":{"details":"Returns the timelines.","returns":{"_0":"timelines The timelines."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"details":"Unpauses the contract."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"validatedCodesCount()":{"details":"Returns the count of validated codes.","returns":{"_0":"validatedCodesCount The count of validated codes."}},"validators()":{"details":"Returns the list of current validators.","returns":{"_0":"validators The list of current validators."}},"validatorsAggregatedPublicKey()":{"details":"Returns the aggregated public key of the current validators.","returns":{"_0":"validatorsAggregatedPublicKey The aggregated public key of the current validators."}},"validatorsCount()":{"details":"Returns the count of current validators.","returns":{"_0":"validatorsCount The count of current validators."}},"validatorsThreshold()":{"details":"Returns the threshold number of validators required for a valid signature.","returns":{"_0":"threshold The threshold number of validators required for a valid signature."}},"validatorsVerifiableSecretSharingCommitment()":{"details":"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.","returns":{"_0":"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."}},"wrappedVara()":{"details":"Returns the address of the wrapped Vara implementation.","returns":{"_0":"wrappedVara The address of the wrapped Vara implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Router.sol":{"keccak256":"0x1f0d777704c9ea8a2f5e8e9e02d3f61765667dc40dc943d65d6f25c4a605406f","urls":["bzz-raw://959a5d6b41c8a9946f3f33480d84e6efda68d653d2618e517a0a443c175a4036","dweb:/ipfs/QmSubQM2F8doVQ1KojePgmTfrGweEUx5frzwBRPiY53kcH"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Clones.sol":{"keccak256":"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7","urls":["bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3","dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/ClonesSmall.sol":{"keccak256":"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70","urls":["bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b","dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/SSTORE2.sol":{"keccak256":"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd","urls":["bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389","dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":82354,"exportedSymbols":{"Clones":[82749],"ClonesSmall":[82833],"ECDSA":[51038],"EIP712Upgradeable":[44416],"FROST":[40965],"Gear":[84099],"Hashes":[41483],"IMiddleware":[74131],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006],"Memory":[41257],"NoncesUpgradeable":[43698],"OwnableUpgradeable":[42322],"PausableUpgradeable":[43858],"ReentrancyGuardTransientUpgradeable":[43943],"Router":[82353],"SSTORE2":[84555],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:49355:165","nodes":[{"id":79429,"nodeType":"PragmaDirective","src":"74:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":79431,"nodeType":"ImportDirective","src":"100:101:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":79430,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79433,"nodeType":"ImportDirective","src":"202:98:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43699,"symbolAliases":[{"foreign":{"id":79432,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43698,"src":"210:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79435,"nodeType":"ImportDirective","src":"301:102:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43859,"symbolAliases":[{"foreign":{"id":79434,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43858,"src":"309:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79437,"nodeType":"ImportDirective","src":"404:140:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":79436,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"417:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79439,"nodeType":"ImportDirective","src":"545:111:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":44417,"symbolAliases":[{"foreign":{"id":79438,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44416,"src":"553:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79441,"nodeType":"ImportDirective","src":"657:88:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":79440,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"665:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79443,"nodeType":"ImportDirective","src":"746:80:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":79442,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"754:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79445,"nodeType":"ImportDirective","src":"827:74:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":79444,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"835:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79447,"nodeType":"ImportDirective","src":"902:75:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":79446,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"910:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79449,"nodeType":"ImportDirective","src":"978:52:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":79448,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"986:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79451,"nodeType":"ImportDirective","src":"1031:60:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":79450,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"1039:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79453,"nodeType":"ImportDirective","src":"1092:73:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":79452,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"1100:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79455,"nodeType":"ImportDirective","src":"1166:48:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":79454,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"1174:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79457,"nodeType":"ImportDirective","src":"1215:40:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":79456,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"1223:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79459,"nodeType":"ImportDirective","src":"1256:40:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":79458,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"1264:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79461,"nodeType":"ImportDirective","src":"1297:50:165","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":79460,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"1305:12:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79463,"nodeType":"ImportDirective","src":"1348:48:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":82750,"symbolAliases":[{"foreign":{"id":79462,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82749,"src":"1356:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79465,"nodeType":"ImportDirective","src":"1397:58:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":82834,"symbolAliases":[{"foreign":{"id":79464,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82833,"src":"1405:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79467,"nodeType":"ImportDirective","src":"1456:44:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":79466,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"1464:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79469,"nodeType":"ImportDirective","src":"1501:50:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":84556,"symbolAliases":[{"foreign":{"id":79468,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"1509:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82353,"nodeType":"ContractDefinition","src":"1553:47875:165","nodes":[{"id":79486,"nodeType":"VariableDeclaration","src":"1849:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1874:12:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1849:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":79485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:66:165","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":79489,"nodeType":"VariableDeclaration","src":"2068:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2093:17:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2068:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":79488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:66:165","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":79492,"nodeType":"VariableDeclaration","src":"2186:55:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2210:11:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79490,"name":"string","nodeType":"ElementaryTypeName","src":"2186:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":79491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2224:17:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_ded8ea4cbd8dfac3d256d1ee2019397a32c8630b040ad63275830e967889ecd8","typeString":"literal_string \"Vara.ETH Router\""},"value":"Vara.ETH Router"},"visibility":"private"},{"id":79495,"nodeType":"VariableDeclaration","src":"2247:44:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2271:14:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79493,"name":"string","nodeType":"ElementaryTypeName","src":"2247:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":79494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2288:3:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"private"},{"id":79498,"nodeType":"VariableDeclaration","src":"2298:73:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2323:40:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79496,"name":"uint256","nodeType":"ElementaryTypeName","src":"2298:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":79497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2366:5:165","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"id":79501,"nodeType":"VariableDeclaration","src":"2377:72:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2402:41:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2377:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":79500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:3:165","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"private"},{"id":79504,"nodeType":"VariableDeclaration","src":"2592:144:165","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2617:42:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":79503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:66:165","typeDescriptions":{"typeIdentifier":"t_rational_25041847662038966976180655381136102362768580769727479521951050179079337377943_by_1","typeString":"int_const 2504...(69 digits omitted)...7943"},"value":"0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097"},"visibility":"private"},{"id":79512,"nodeType":"FunctionDefinition","src":"2811:53:165","nodes":[],"body":{"id":79511,"nodeType":"Block","src":"2825:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79508,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"2835:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2835:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79510,"nodeType":"ExpressionStatement","src":"2835:22:165"}]},"documentation":{"id":79505,"nodeType":"StructuredDocumentation","src":"2743:63:165","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":79506,"nodeType":"ParameterList","parameters":[],"src":"2822:2:165"},"returnParameters":{"id":79507,"nodeType":"ParameterList","parameters":[],"src":"2825:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79717,"nodeType":"FunctionDefinition","src":"4048:2520:165","nodes":[],"body":{"id":79716,"nodeType":"Block","src":"4463:2105:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":79541,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79515,"src":"4488:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79540,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4473:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4473:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79543,"nodeType":"ExpressionStatement","src":"4473:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79544,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43762,"src":"4505:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79546,"nodeType":"ExpressionStatement","src":"4505:17:165"},{"expression":{"arguments":[{"id":79548,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79492,"src":"4546:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79549,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"4559:14:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":79547,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"4532:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79551,"nodeType":"ExpressionStatement","src":"4532:42:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79552,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"4584:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4584:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79554,"nodeType":"ExpressionStatement","src":"4584:15:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79555,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"4609:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4609:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79557,"nodeType":"ExpressionStatement","src":"4609:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79559,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4821:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4827:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"4821:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4821:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79563,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74544,"src":"4842:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4813:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4813:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79566,"nodeType":"ExpressionStatement","src":"4813:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79568,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"4879:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4899:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4879:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79571,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74547,"src":"4902:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4902:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79567,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4871:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4871:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79574,"nodeType":"ExpressionStatement","src":"4871:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79576,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"4946:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79577,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"4961:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4946:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79579,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74550,"src":"4980:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4980:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4938:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4938:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79582,"nodeType":"ExpressionStatement","src":"4938:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79584,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79527,"src":"5171:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79585,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"5191:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":79586,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"5206:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5191:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79588,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5190:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":79589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5227:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5190:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5171:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79592,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74555,"src":"5231:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5163:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79595,"nodeType":"ExpressionStatement","src":"5163:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":79597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5282:25:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":79596,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82293,"src":"5266:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5266:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79599,"nodeType":"ExpressionStatement","src":"5266:42:165"},{"assignments":[79602],"declarations":[{"constant":false,"id":79602,"mutability":"mutable","name":"router","nameLocation":"5334:6:165","nodeType":"VariableDeclaration","scope":79716,"src":"5318:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79601,"nodeType":"UserDefinedTypeName","pathNode":{"id":79600,"name":"Storage","nameLocations":["5318:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"5318:7:165"},"referencedDeclaration":74490,"src":"5318:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79605,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79603,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"5343:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5343:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5318:34:165"},{"expression":{"id":79612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79606,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5363:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5370:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"5363:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79609,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5385:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5390:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83551,"src":"5385:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83080_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5385:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5363:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79613,"nodeType":"ExpressionStatement","src":"5363:39:165"},{"expression":{"id":79623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79614,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5412:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5419:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"5412:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79619,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79517,"src":"5452:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79620,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79519,"src":"5461:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79621,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79521,"src":"5475:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79617,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5435:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5440:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":82951,"src":"5435:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$82951_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":79622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5435:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5412:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79624,"nodeType":"ExpressionStatement","src":"5412:75:165"},{"expression":{"id":79632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79625,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5497:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5504:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"5497:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5523:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"5497:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79630,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5544:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5549:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":82872,"src":"5544:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5497:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79633,"nodeType":"ExpressionStatement","src":"5497:82:165"},{"expression":{"id":79641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79634,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5589:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5596:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"5589:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"5589:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79639,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5638:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5643:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":82876,"src":"5638:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5589:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79642,"nodeType":"ExpressionStatement","src":"5589:86:165"},{"expression":{"id":79649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79643,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5685:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5692:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"5685:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79646,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5710:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5715:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":83528,"src":"5710:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$83072_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":79648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5710:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"5685:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":79650,"nodeType":"ExpressionStatement","src":"5685:58:165"},{"expression":{"id":79660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79651,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5753:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5760:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"5753:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79656,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"5787:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79657,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"5801:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79658,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79527,"src":"5820:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79654,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5772:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5777:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":83175,"src":"5772:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$83175_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":79659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"5753:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":79661,"nodeType":"ExpressionStatement","src":"5753:84:165"},{"expression":{"id":79672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79662,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5847:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5854:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"5847:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5867:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"5847:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":79669,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79535,"src":"5890:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5902:6:165","memberName":"length","nodeType":"MemberAccess","src":"5890:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5883:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79667,"name":"uint16","nodeType":"ElementaryTypeName","src":"5883:6:165","typeDescriptions":{}}},"id":79671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5883:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5847:62:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79673,"nodeType":"ExpressionStatement","src":"5847:62:165"},{"assignments":[79675],"declarations":[{"constant":false,"id":79675,"mutability":"mutable","name":"decimalsFactor","nameLocation":"5928:14:165","nodeType":"VariableDeclaration","scope":79716,"src":"5920:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79674,"name":"uint256","nodeType":"ElementaryTypeName","src":"5920:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79683,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5945:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79678,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79519,"src":"5964:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79677,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"5951:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":79679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":79680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5978:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"5951:35:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5945:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5920:68:165"},{"expression":{"id":79692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79684,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5998:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6005:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"5998:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6018:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"5998:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79689,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"6049:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79690,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79675,"src":"6092:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6049:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5998:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79693,"nodeType":"ExpressionStatement","src":"5998:108:165"},{"expression":{"id":79702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79694,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"6116:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6123:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"6116:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6136:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"6116:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79699,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79501,"src":"6168:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79700,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79675,"src":"6212:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6168:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6116:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79703,"nodeType":"ExpressionStatement","src":"6116:110:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":79705,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"6308:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6315:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"6308:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6334:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"6308:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},{"hexValue":"74727565","id":79708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6359:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":79709,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79530,"src":"6377:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":79710,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79532,"src":"6411:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79711,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79535,"src":"6459:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":79712,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6484:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6490:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"6484:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79704,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82240,"src":"6278:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$82928_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$82907_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":79714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6278:231:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79715,"nodeType":"ExpressionStatement","src":"6278:231:165"}]},"documentation":{"id":79513,"nodeType":"StructuredDocumentation","src":"2870:1173:165","text":" @dev Initializes the `Router` with the given parameters.\n @param _owner The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\n @param _mirror The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\n @param _wrappedVara The address of the `WrappedVara` (WVARA) ERC20 token contract.\n @param _middleware The address of the middleware contract.\n @param _eraDuration The duration of an era in seconds.\n @param _electionDuration The duration of an election in seconds.\n @param _validationDelay The delay before validators can start validating in seconds.\n @param _aggregatedPublicKey The optional aggregated public key of the initial validators. Will be used in future.\n @param _verifiableSecretSharingCommitment The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\n @param _validators The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures,\n so the list of validators is used for signature verification."},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":79538,"kind":"modifierInvocation","modifierName":{"id":79537,"name":"initializer","nameLocations":["4451:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"4451:11:165"},"nodeType":"ModifierInvocation","src":"4451:11:165"}],"name":"initialize","nameLocation":"4057:10:165","parameters":{"id":79536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79515,"mutability":"mutable","name":"_owner","nameLocation":"4085:6:165","nodeType":"VariableDeclaration","scope":79717,"src":"4077:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79514,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79517,"mutability":"mutable","name":"_mirror","nameLocation":"4109:7:165","nodeType":"VariableDeclaration","scope":79717,"src":"4101:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79516,"name":"address","nodeType":"ElementaryTypeName","src":"4101:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79519,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4134:12:165","nodeType":"VariableDeclaration","scope":79717,"src":"4126:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79518,"name":"address","nodeType":"ElementaryTypeName","src":"4126:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79521,"mutability":"mutable","name":"_middleware","nameLocation":"4164:11:165","nodeType":"VariableDeclaration","scope":79717,"src":"4156:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79520,"name":"address","nodeType":"ElementaryTypeName","src":"4156:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79523,"mutability":"mutable","name":"_eraDuration","nameLocation":"4193:12:165","nodeType":"VariableDeclaration","scope":79717,"src":"4185:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4185:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79525,"mutability":"mutable","name":"_electionDuration","nameLocation":"4223:17:165","nodeType":"VariableDeclaration","scope":79717,"src":"4215:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79524,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79527,"mutability":"mutable","name":"_validationDelay","nameLocation":"4258:16:165","nodeType":"VariableDeclaration","scope":79717,"src":"4250:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79526,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79530,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4318:20:165","nodeType":"VariableDeclaration","scope":79717,"src":"4284:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79529,"nodeType":"UserDefinedTypeName","pathNode":{"id":79528,"name":"Gear.AggregatedPublicKey","nameLocations":["4284:4:165","4289:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"4284:24:165"},"referencedDeclaration":82907,"src":"4284:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":79532,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4363:34:165","nodeType":"VariableDeclaration","scope":79717,"src":"4348:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79531,"name":"bytes","nodeType":"ElementaryTypeName","src":"4348:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79535,"mutability":"mutable","name":"_validators","nameLocation":"4426:11:165","nodeType":"VariableDeclaration","scope":79717,"src":"4407:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79533,"name":"address","nodeType":"ElementaryTypeName","src":"4407:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79534,"nodeType":"ArrayTypeName","src":"4407:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4067:376:165"},"returnParameters":{"id":79539,"nodeType":"ParameterList","parameters":[],"src":"4463:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79812,"nodeType":"FunctionDefinition","src":"6888:3024:165","nodes":[],"body":{"id":79811,"nodeType":"Block","src":"6946:2966:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79727,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"9219:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9219:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79726,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"9204:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79730,"nodeType":"ExpressionStatement","src":"9204:23:165"},{"expression":{"arguments":[{"id":79732,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79492,"src":"9251:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79733,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"9264:14:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":79731,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"9237:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9237:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79735,"nodeType":"ExpressionStatement","src":"9237:42:165"},{"assignments":[79738],"declarations":[{"constant":false,"id":79738,"mutability":"mutable","name":"router","nameLocation":"9306:6:165","nodeType":"VariableDeclaration","scope":79811,"src":"9290:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79737,"nodeType":"UserDefinedTypeName","pathNode":{"id":79736,"name":"Storage","nameLocations":["9290:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"9290:7:165"},"referencedDeclaration":74490,"src":"9290:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79739,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"9315:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9315:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9290:34:165"},{"expression":{"id":79748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79742,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9334:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9341:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"9334:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79745,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9356:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9361:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83551,"src":"9356:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83080_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9334:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79749,"nodeType":"ExpressionStatement","src":"9334:39:165"},{"expression":{"id":79761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79750,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9383:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9390:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"9383:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":79757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9452:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9444:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9444:7:165","typeDescriptions":{}}},"id":79758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9444:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":79759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9467:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":79753,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9413:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9418:18:165","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"9413:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$83066_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":79760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9438:4:165","9456:9:165"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"9413:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"9383:87:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79762,"nodeType":"ExpressionStatement","src":"9383:87:165"},{"expression":{"id":79777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79763,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9480:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9487:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9480:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9500:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"9480:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79772,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9549:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79770,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9523:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9528:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"9523:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9523:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9557:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"9523:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9562:6:165","memberName":"length","nodeType":"MemberAccess","src":"9523:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79768,"name":"uint16","nodeType":"ElementaryTypeName","src":"9516:6:165","typeDescriptions":{}}},"id":79776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:53:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9480:89:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79778,"nodeType":"ExpressionStatement","src":"9480:89:165"},{"assignments":[79780],"declarations":[{"constant":false,"id":79780,"mutability":"mutable","name":"decimalsFactor","nameLocation":"9587:14:165","nodeType":"VariableDeclaration","scope":79811,"src":"9579:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79779,"name":"uint256","nodeType":"ElementaryTypeName","src":"9579:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79790,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9604:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":79783,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9630:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"9623:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9644:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"9623:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79782,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"9610:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":79786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9610:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":79787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9657:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"9610:55:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9610:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9604:63:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9579:88:165"},{"expression":{"id":79799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79791,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9677:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9684:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9677:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9697:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"9677:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79796,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"9728:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79797,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79780,"src":"9771:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9728:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9677:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79800,"nodeType":"ExpressionStatement","src":"9677:108:165"},{"expression":{"id":79809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79801,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9795:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9802:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9795:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9815:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"9795:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79806,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79501,"src":"9847:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79807,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79780,"src":"9891:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9847:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9795:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79810,"nodeType":"ExpressionStatement","src":"9795:110:165"}]},"documentation":{"id":79718,"nodeType":"StructuredDocumentation","src":"6574:309:165","text":" @dev Reinitializes the `Router` to set up new storage layout.\n This function is intended to be called during an upgrade/wipe and can contain any logic.\n NOTE: Don't forget to bump `reinitializer(version)` in modifier!\n @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":79721,"kind":"modifierInvocation","modifierName":{"id":79720,"name":"onlyOwner","nameLocations":["6919:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6919:9:165"},"nodeType":"ModifierInvocation","src":"6919:9:165"},{"arguments":[{"hexValue":"35","id":79723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6943:1:165","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":79724,"kind":"modifierInvocation","modifierName":{"id":79722,"name":"reinitializer","nameLocations":["6929:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"6929:13:165"},"nodeType":"ModifierInvocation","src":"6929:16:165"}],"name":"reinitialize","nameLocation":"6897:12:165","parameters":{"id":79719,"nodeType":"ParameterList","parameters":[],"src":"6909:2:165"},"returnParameters":{"id":79725,"nodeType":"ParameterList","parameters":[],"src":"6946:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79822,"nodeType":"FunctionDefinition","src":"10077:84:165","nodes":[],"body":{"id":79821,"nodeType":"Block","src":"10159:2:165","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79813,"nodeType":"StructuredDocumentation","src":"9918:154:165","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":79819,"kind":"modifierInvocation","modifierName":{"id":79818,"name":"onlyOwner","nameLocations":["10149:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"10149:9:165"},"nodeType":"ModifierInvocation","src":"10149:9:165"}],"name":"_authorizeUpgrade","nameLocation":"10086:17:165","overrides":{"id":79817,"nodeType":"OverrideSpecifier","overrides":[],"src":"10140:8:165"},"parameters":{"id":79816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79815,"mutability":"mutable","name":"newImplementation","nameLocation":"10112:17:165","nodeType":"VariableDeclaration","scope":79822,"src":"10104:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79814,"name":"address","nodeType":"ElementaryTypeName","src":"10104:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10103:27:165"},"returnParameters":{"id":79820,"nodeType":"ParameterList","parameters":[],"src":"10159:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79876,"nodeType":"FunctionDefinition","src":"10333:948:165","nodes":[],"body":{"id":79875,"nodeType":"Block","src":"10397:884:165","nodes":[],"statements":[{"assignments":[79831],"declarations":[{"constant":false,"id":79831,"mutability":"mutable","name":"router","nameLocation":"10423:6:165","nodeType":"VariableDeclaration","scope":79875,"src":"10407:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79830,"nodeType":"UserDefinedTypeName","pathNode":{"id":79829,"name":"Storage","nameLocations":["10407:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"10407:7:165"},"referencedDeclaration":74490,"src":"10407:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79834,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79832,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"10432:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10432:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10407:34:165"},{"assignments":[79839],"declarations":[{"constant":false,"id":79839,"mutability":"mutable","name":"validationSettings","nameLocation":"10486:18:165","nodeType":"VariableDeclaration","scope":79875,"src":"10451:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":79838,"nodeType":"UserDefinedTypeName","pathNode":{"id":79837,"name":"Gear.ValidationSettingsView","nameLocations":["10451:4:165","10456:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":83199,"src":"10451:27:165"},"referencedDeclaration":83199,"src":"10451:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":79845,"initialValue":{"arguments":[{"expression":{"id":79842,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10519:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10526:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"10519:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":79840,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"10507:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10512:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":84098,"src":"10507:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$83187_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$83199_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":79844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10507:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"10451:94:165"},{"expression":{"arguments":[{"expression":{"id":79847,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10602:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10609:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"10602:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":79849,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10657:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10664:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"10657:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":79851,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10713:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10720:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"10713:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":79853,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79839,"src":"10767:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":79854,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10816:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10823:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"10816:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":79856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10863:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10870:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"10863:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":79858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10908:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10915:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"10908:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10928:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"10908:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79861,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10976:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10983:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"10976:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10996:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"10976:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79864,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11044:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11051:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11044:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11064:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"11044:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":79867,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11121:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11128:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11121:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11141:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"11121:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79870,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11214:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11221:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11214:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11234:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"11214:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79846,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74457,"src":"10562:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$74457_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":79873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10588:12:165","10635:20:165","10698:13:165","10747:18:165","10799:15:165","10852:9:165","10893:13:165","10955:19:165","11029:13:165","11091:28:165","11183:29:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee"],"nodeType":"FunctionCall","src":"10562:712:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":79828,"id":79874,"nodeType":"Return","src":"10555:719:165"}]},"baseFunctions":[74648],"documentation":{"id":79823,"nodeType":"StructuredDocumentation","src":"10186:142:165","text":" @dev Returns the storage view of the contract storage.\n @return storageView The storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"10342:11:165","parameters":{"id":79824,"nodeType":"ParameterList","parameters":[],"src":"10353:2:165"},"returnParameters":{"id":79828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79876,"src":"10377:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":79826,"nodeType":"UserDefinedTypeName","pathNode":{"id":79825,"name":"StorageView","nameLocations":["10377:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":74457,"src":"10377:11:165"},"referencedDeclaration":74457,"src":"10377:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"10376:20:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79888,"nodeType":"FunctionDefinition","src":"11417:109:165","nodes":[],"body":{"id":79887,"nodeType":"Block","src":"11475:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79882,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"11492:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11492:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11502:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"11492:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11515:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"11492:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79881,"id":79886,"nodeType":"Return","src":"11485:34:165"}]},"baseFunctions":[74654],"documentation":{"id":79877,"nodeType":"StructuredDocumentation","src":"11287:125:165","text":" @dev Returns the hash of the genesis block.\n @return genesisBlockHash The hash of the genesis block."},"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"11426:16:165","parameters":{"id":79878,"nodeType":"ParameterList","parameters":[],"src":"11442:2:165"},"returnParameters":{"id":79881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79888,"src":"11466:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11466:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11465:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79900,"nodeType":"FunctionDefinition","src":"11672:113:165","nodes":[],"body":{"id":79899,"nodeType":"Block","src":"11729:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79894,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"11746:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11746:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11756:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"11746:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11769:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"11746:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79893,"id":79898,"nodeType":"Return","src":"11739:39:165"}]},"baseFunctions":[74660],"documentation":{"id":79889,"nodeType":"StructuredDocumentation","src":"11532:135:165","text":" @dev Returns the timestamp of the genesis block.\n @return genesisTimestamp The timestamp of the genesis block."},"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"11681:16:165","parameters":{"id":79890,"nodeType":"ParameterList","parameters":[],"src":"11697:2:165"},"returnParameters":{"id":79893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79900,"src":"11721:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79891,"name":"uint48","nodeType":"ElementaryTypeName","src":"11721:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11720:8:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79912,"nodeType":"FunctionDefinition","src":"11947:125:165","nodes":[],"body":{"id":79911,"nodeType":"Block","src":"12013:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79906,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12030:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12030:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12040:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"12030:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12061:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"12030:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79905,"id":79910,"nodeType":"Return","src":"12023:42:165"}]},"baseFunctions":[74666],"documentation":{"id":79901,"nodeType":"StructuredDocumentation","src":"11791:151:165","text":" @dev Returns the hash of the latest committed batch.\n @return latestCommittedBatchHash The hash of the latest committed batch."},"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"11956:24:165","parameters":{"id":79902,"nodeType":"ParameterList","parameters":[],"src":"11980:2:165"},"returnParameters":{"id":79905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79912,"src":"12004:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12004:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12003:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79924,"nodeType":"FunctionDefinition","src":"12249:134:165","nodes":[],"body":{"id":79923,"nodeType":"Block","src":"12319:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79918,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12336:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12336:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12346:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"12336:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12367:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"12336:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79917,"id":79922,"nodeType":"Return","src":"12329:47:165"}]},"baseFunctions":[74672],"documentation":{"id":79913,"nodeType":"StructuredDocumentation","src":"12078:166:165","text":" @dev Returns the timestamp of the latest committed batch.\n @return latestCommittedBatchTimestamp The timestamp of the latest committed batch."},"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"12258:29:165","parameters":{"id":79914,"nodeType":"ParameterList","parameters":[],"src":"12287:2:165"},"returnParameters":{"id":79917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79924,"src":"12311:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79915,"name":"uint48","nodeType":"ElementaryTypeName","src":"12311:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12310:8:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79936,"nodeType":"FunctionDefinition","src":"12535:106:165","nodes":[],"body":{"id":79935,"nodeType":"Block","src":"12587:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79930,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12604:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12604:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12614:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"12604:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12628:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"12604:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79929,"id":79934,"nodeType":"Return","src":"12597:37:165"}]},"baseFunctions":[74678],"documentation":{"id":79925,"nodeType":"StructuredDocumentation","src":"12389:141:165","text":" @dev Returns the address of the mirror implementation.\n @return mirrorImpl The address of the mirror implementation."},"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"12544:10:165","parameters":{"id":79926,"nodeType":"ParameterList","parameters":[],"src":"12554:2:165"},"returnParameters":{"id":79929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79936,"src":"12578:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79927,"name":"address","nodeType":"ElementaryTypeName","src":"12578:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12577:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79948,"nodeType":"FunctionDefinition","src":"12806:112:165","nodes":[],"body":{"id":79947,"nodeType":"Block","src":"12859:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79942,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12876:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12876:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12886:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"12876:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12900:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"12876:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79941,"id":79946,"nodeType":"Return","src":"12869:42:165"}]},"baseFunctions":[74684],"documentation":{"id":79937,"nodeType":"StructuredDocumentation","src":"12647:154:165","text":" @dev Returns the address of the wrapped Vara implementation.\n @return wrappedVara The address of the wrapped Vara implementation."},"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"12815:11:165","parameters":{"id":79938,"nodeType":"ParameterList","parameters":[],"src":"12826:2:165"},"returnParameters":{"id":79941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79948,"src":"12850:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79939,"name":"address","nodeType":"ElementaryTypeName","src":"12850:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12849:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79960,"nodeType":"FunctionDefinition","src":"13078:110:165","nodes":[],"body":{"id":79959,"nodeType":"Block","src":"13130:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79954,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"13147:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13147:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13157:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"13147:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13171:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":82950,"src":"13147:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79953,"id":79958,"nodeType":"Return","src":"13140:41:165"}]},"baseFunctions":[74690],"documentation":{"id":79949,"nodeType":"StructuredDocumentation","src":"12924:149:165","text":" @dev Returns the address of the middleware implementation.\n @return middleware The address of the middleware implementation."},"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"13087:10:165","parameters":{"id":79950,"nodeType":"ParameterList","parameters":[],"src":"13097:2:165"},"returnParameters":{"id":79953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79960,"src":"13121:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79951,"name":"address","nodeType":"ElementaryTypeName","src":"13121:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13120:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79975,"nodeType":"FunctionDefinition","src":"13381:175:165","nodes":[],"body":{"id":79974,"nodeType":"Block","src":"13476:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79969,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"13519:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13519:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79967,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"13493:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13498:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"13493:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13493:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13530:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"13493:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":79966,"id":79973,"nodeType":"Return","src":"13486:63:165"}]},"baseFunctions":[74697],"documentation":{"id":79961,"nodeType":"StructuredDocumentation","src":"13194:182:165","text":" @dev Returns the aggregated public key of the current validators.\n @return validatorsAggregatedPublicKey The aggregated public key of the current validators."},"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"13390:29:165","parameters":{"id":79962,"nodeType":"ParameterList","parameters":[],"src":"13419:2:165"},"returnParameters":{"id":79966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79975,"src":"13443:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79964,"nodeType":"UserDefinedTypeName","pathNode":{"id":79963,"name":"Gear.AggregatedPublicKey","nameLocations":["13443:4:165","13448:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"13443:24:165"},"referencedDeclaration":82907,"src":"13443:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"13442:33:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79992,"nodeType":"FunctionDefinition","src":"14022:207:165","nodes":[],"body":{"id":79991,"nodeType":"Block","src":"14114:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79985,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"14170:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14170:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79983,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"14144:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14149:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"14144:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14144:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14181:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"14144:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79981,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"14131:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84555_$","typeString":"type(library SSTORE2)"}},"id":79982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14139:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":84528,"src":"14131:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":79989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14131:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":79980,"id":79990,"nodeType":"Return","src":"14124:98:165"}]},"baseFunctions":[74703],"documentation":{"id":79976,"nodeType":"StructuredDocumentation","src":"13562:455:165","text":" @dev Returns the verifiable secret sharing commitment of the current validators.\n This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct.\n See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\n @return validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."},"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"14031:43:165","parameters":{"id":79977,"nodeType":"ParameterList","parameters":[],"src":"14074:2:165"},"returnParameters":{"id":79980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79992,"src":"14100:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":79978,"name":"bytes","nodeType":"ElementaryTypeName","src":"14100:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14099:14:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80039,"nodeType":"FunctionDefinition","src":"14401:375:165","nodes":[],"body":{"id":80038,"nodeType":"Block","src":"14483:293:165","nodes":[],"statements":[{"assignments":[80005],"declarations":[{"constant":false,"id":80005,"mutability":"mutable","name":"_currentValidators","nameLocation":"14517:18:165","nodeType":"VariableDeclaration","scope":80038,"src":"14493:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80004,"nodeType":"UserDefinedTypeName","pathNode":{"id":80003,"name":"Gear.Validators","nameLocations":["14493:4:165","14498:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"14493:15:165"},"referencedDeclaration":82928,"src":"14493:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80011,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80008,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"14564:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14564:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80006,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"14538:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14543:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"14538:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14538:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14493:81:165"},{"body":{"id":80034,"nodeType":"Block","src":"14634:114:165","statements":[{"condition":{"id":80029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14652:39:165","subExpression":{"baseExpression":{"expression":{"id":80023,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80005,"src":"14653:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14672:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"14653:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80028,"indexExpression":{"baseExpression":{"id":80025,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79996,"src":"14676:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80027,"indexExpression":{"id":80026,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14688:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14676:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14653:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80033,"nodeType":"IfStatement","src":"14648:90:165","trueBody":{"id":80032,"nodeType":"Block","src":"14693:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":80030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14718:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80000,"id":80031,"nodeType":"Return","src":"14711:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80016,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14605:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80017,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79996,"src":"14609:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14621:6:165","memberName":"length","nodeType":"MemberAccess","src":"14609:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14605:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80035,"initializationExpression":{"assignments":[80013],"declarations":[{"constant":false,"id":80013,"mutability":"mutable","name":"i","nameLocation":"14598:1:165","nodeType":"VariableDeclaration","scope":80035,"src":"14590:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80012,"name":"uint256","nodeType":"ElementaryTypeName","src":"14590:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80015,"initialValue":{"hexValue":"30","id":80014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14602:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14590:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14629:3:165","subExpression":{"id":80020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14629:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80022,"nodeType":"ExpressionStatement","src":"14629:3:165"},"nodeType":"ForStatement","src":"14585:163:165"},{"expression":{"hexValue":"74727565","id":80036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14765:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80000,"id":80037,"nodeType":"Return","src":"14758:11:165"}]},"baseFunctions":[74712],"documentation":{"id":79993,"nodeType":"StructuredDocumentation","src":"14235:161:165","text":" @dev Checks if the given addresses are all validators.\n @return areValidators `true` if all addresses are validators, `false` otherwise."},"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"14410:13:165","parameters":{"id":79997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79996,"mutability":"mutable","name":"_validators","nameLocation":"14443:11:165","nodeType":"VariableDeclaration","scope":80039,"src":"14424:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79994,"name":"address","nodeType":"ElementaryTypeName","src":"14424:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79995,"nodeType":"ArrayTypeName","src":"14424:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14423:32:165"},"returnParameters":{"id":80000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80039,"src":"14477:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79998,"name":"bool","nodeType":"ElementaryTypeName","src":"14477:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14476:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80057,"nodeType":"FunctionDefinition","src":"14938:144:165","nodes":[],"body":{"id":80056,"nodeType":"Block","src":"15006:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80049,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15049:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15049:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80047,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"15023:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15028:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"15023:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15023:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15060:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"15023:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80054,"indexExpression":{"id":80053,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80042,"src":"15064:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15023:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80046,"id":80055,"nodeType":"Return","src":"15016:59:165"}]},"baseFunctions":[74720],"documentation":{"id":80040,"nodeType":"StructuredDocumentation","src":"14782:151:165","text":" @dev Checks if the given address is a validator.\n @return isValidator `true` if the address is a validator, `false` otherwise."},"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"14947:11:165","parameters":{"id":80043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80042,"mutability":"mutable","name":"_validator","nameLocation":"14967:10:165","nodeType":"VariableDeclaration","scope":80057,"src":"14959:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80041,"name":"address","nodeType":"ElementaryTypeName","src":"14959:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14958:20:165"},"returnParameters":{"id":80046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80045,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80057,"src":"15000:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80044,"name":"bool","nodeType":"ElementaryTypeName","src":"15000:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14999:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80082,"nodeType":"FunctionDefinition","src":"15326:285:165","nodes":[],"body":{"id":80081,"nodeType":"Block","src":"15441:170:165","nodes":[],"statements":[{"assignments":[80069],"declarations":[{"constant":false,"id":80069,"mutability":"mutable","name":"router","nameLocation":"15475:6:165","nodeType":"VariableDeclaration","scope":80081,"src":"15451:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80068,"nodeType":"UserDefinedTypeName","pathNode":{"id":80067,"name":"IRouter.Storage","nameLocations":["15451:7:165","15459:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"15451:15:165"},"referencedDeclaration":74490,"src":"15451:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80072,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80070,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15484:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15484:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15451:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":80073,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80069,"src":"15511:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15518:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"15511:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15537:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"15511:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80076,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80069,"src":"15557:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15564:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"15557:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15583:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"15557:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80079,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15510:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":80064,"id":80080,"nodeType":"Return","src":"15503:101:165"}]},"baseFunctions":[74728],"documentation":{"id":80058,"nodeType":"StructuredDocumentation","src":"15088:233:165","text":" @dev Returns the signing threshold fraction.\n @return thresholdNumerator The numerator of the signing threshold fraction.\n @return thresholdDenominator The denominator of the signing threshold fraction."},"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"15335:24:165","parameters":{"id":80059,"nodeType":"ParameterList","parameters":[],"src":"15359:2:165"},"returnParameters":{"id":80064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80061,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15391:18:165","nodeType":"VariableDeclaration","scope":80082,"src":"15383:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80060,"name":"uint128","nodeType":"ElementaryTypeName","src":"15383:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80063,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15419:20:165","nodeType":"VariableDeclaration","scope":80082,"src":"15411:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80062,"name":"uint128","nodeType":"ElementaryTypeName","src":"15411:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"15382:58:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80097,"nodeType":"FunctionDefinition","src":"15743:126:165","nodes":[],"body":{"id":80096,"nodeType":"Block","src":"15804:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80091,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15847:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15847:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80089,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"15821:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15826:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"15821:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15821:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15858:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"15821:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":80088,"id":80095,"nodeType":"Return","src":"15814:48:165"}]},"baseFunctions":[74735],"documentation":{"id":80083,"nodeType":"StructuredDocumentation","src":"15617:121:165","text":" @dev Returns the list of current validators.\n @return validators The list of current validators."},"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"15752:10:165","parameters":{"id":80084,"nodeType":"ParameterList","parameters":[],"src":"15762:2:165"},"returnParameters":{"id":80088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80097,"src":"15786:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80085,"name":"address","nodeType":"ElementaryTypeName","src":"15786:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80086,"nodeType":"ArrayTypeName","src":"15786:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15785:18:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80112,"nodeType":"FunctionDefinition","src":"16008:129:165","nodes":[],"body":{"id":80111,"nodeType":"Block","src":"16065:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80105,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"16108:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16108:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80103,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16082:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"16082:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16082:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16119:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"16082:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:6:165","memberName":"length","nodeType":"MemberAccess","src":"16082:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80102,"id":80110,"nodeType":"Return","src":"16075:55:165"}]},"baseFunctions":[74741],"documentation":{"id":80098,"nodeType":"StructuredDocumentation","src":"15875:128:165","text":" @dev Returns the count of current validators.\n @return validatorsCount The count of current validators."},"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"16017:15:165","parameters":{"id":80099,"nodeType":"ParameterList","parameters":[],"src":"16032:2:165"},"returnParameters":{"id":80102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80112,"src":"16056:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80100,"name":"uint256","nodeType":"ElementaryTypeName","src":"16056:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16055:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80143,"nodeType":"FunctionDefinition","src":"16338:348:165","nodes":[],"body":{"id":80142,"nodeType":"Block","src":"16399:287:165","nodes":[],"statements":[{"assignments":[80122],"declarations":[{"constant":false,"id":80122,"mutability":"mutable","name":"router","nameLocation":"16433:6:165","nodeType":"VariableDeclaration","scope":80142,"src":"16409:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80121,"nodeType":"UserDefinedTypeName","pathNode":{"id":80120,"name":"IRouter.Storage","nameLocations":["16409:7:165","16417:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"16409:15:165"},"referencedDeclaration":74490,"src":"16409:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80125,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80123,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"16442:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16442:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16409:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":80130,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16532:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80128,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16506:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16511:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"16506:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16506:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16540:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"16506:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16545:6:165","memberName":"length","nodeType":"MemberAccess","src":"16506:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80134,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16565:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16572:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"16565:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16591:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"16565:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80137,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16630:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"16623:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16649:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"16623:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":80126,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16468:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16473:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"16468:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":80140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80117,"id":80141,"nodeType":"Return","src":"16461:218:165"}]},"baseFunctions":[74747],"documentation":{"id":80113,"nodeType":"StructuredDocumentation","src":"16143:190:165","text":" @dev Returns the threshold number of validators required for a valid signature.\n @return threshold The threshold number of validators required for a valid signature."},"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"16347:19:165","parameters":{"id":80114,"nodeType":"ParameterList","parameters":[],"src":"16366:2:165"},"returnParameters":{"id":80117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80143,"src":"16390:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80115,"name":"uint256","nodeType":"ElementaryTypeName","src":"16390:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16389:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80157,"nodeType":"FunctionDefinition","src":"16858:122:165","nodes":[],"body":{"id":80156,"nodeType":"Block","src":"16942:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":80152,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"16959:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$82353_$","typeString":"type(contract super Router)"}},"id":80153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16965:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43784,"src":"16959:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":80154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16959:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80151,"id":80155,"nodeType":"Return","src":"16952:21:165"}]},"baseFunctions":[43784,74753],"documentation":{"id":80144,"nodeType":"StructuredDocumentation","src":"16692:161:165","text":" @dev Returns true if the contract is paused, and false otherwise.\n @return isPaused `true` if the contract is paused, `false` otherwise."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"16867:6:165","overrides":{"id":80148,"nodeType":"OverrideSpecifier","overrides":[{"id":80146,"name":"IRouter","nameLocations":["16897:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"16897:7:165"},{"id":80147,"name":"PausableUpgradeable","nameLocations":["16906:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"16906:19:165"}],"src":"16888:38:165"},"parameters":{"id":80145,"nodeType":"ParameterList","parameters":[],"src":"16873:2:165"},"returnParameters":{"id":80151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80157,"src":"16936:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80149,"name":"bool","nodeType":"ElementaryTypeName","src":"16936:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16935:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80169,"nodeType":"FunctionDefinition","src":"17105:130:165","nodes":[],"body":{"id":80168,"nodeType":"Block","src":"17186:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80164,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17203:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17203:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17213:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"17203:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":80163,"id":80167,"nodeType":"Return","src":"17196:32:165"}]},"baseFunctions":[74760],"documentation":{"id":80158,"nodeType":"StructuredDocumentation","src":"16986:114:165","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17114:15:165","parameters":{"id":80159,"nodeType":"ParameterList","parameters":[],"src":"17129:2:165"},"returnParameters":{"id":80163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80169,"src":"17153:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":80161,"nodeType":"UserDefinedTypeName","pathNode":{"id":80160,"name":"Gear.ComputationSettings","nameLocations":["17153:4:165","17158:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83072,"src":"17153:24:165"},"referencedDeclaration":83072,"src":"17153:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17152:33:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80186,"nodeType":"FunctionDefinition","src":"17344:134:165","nodes":[],"body":{"id":80185,"nodeType":"Block","src":"17417:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80178,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17434:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17434:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17444:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"17434:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17457:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"17434:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80183,"indexExpression":{"id":80182,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80172,"src":"17463:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17434:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"functionReturnParameters":80177,"id":80184,"nodeType":"Return","src":"17427:44:165"}]},"baseFunctions":[74769],"documentation":{"id":80170,"nodeType":"StructuredDocumentation","src":"17241:98:165","text":" @dev Returns the state of code.\n @return codeState The state of the code."},"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"17353:9:165","parameters":{"id":80173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80172,"mutability":"mutable","name":"_codeId","nameLocation":"17371:7:165","nodeType":"VariableDeclaration","scope":80186,"src":"17363:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17363:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17362:17:165"},"returnParameters":{"id":80177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80186,"src":"17401:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"typeName":{"id":80175,"nodeType":"UserDefinedTypeName","pathNode":{"id":80174,"name":"Gear.CodeState","nameLocations":["17401:4:165","17406:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17401:14:165"},"referencedDeclaration":83060,"src":"17401:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"17400:16:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80245,"nodeType":"FunctionDefinition","src":"17602:378:165","nodes":[],"body":{"id":80244,"nodeType":"Block","src":"17699:281:165","nodes":[],"statements":[{"assignments":[80199],"declarations":[{"constant":false,"id":80199,"mutability":"mutable","name":"router","nameLocation":"17725:6:165","nodeType":"VariableDeclaration","scope":80244,"src":"17709:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80198,"nodeType":"UserDefinedTypeName","pathNode":{"id":80197,"name":"Storage","nameLocations":["17709:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"17709:7:165"},"referencedDeclaration":74490,"src":"17709:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80202,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80200,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17734:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17734:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17709:34:165"},{"assignments":[80208],"declarations":[{"constant":false,"id":80208,"mutability":"mutable","name":"res","nameLocation":"17778:3:165","nodeType":"VariableDeclaration","scope":80244,"src":"17754:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80206,"nodeType":"UserDefinedTypeName","pathNode":{"id":80205,"name":"Gear.CodeState","nameLocations":["17754:4:165","17759:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17754:14:165"},"referencedDeclaration":83060,"src":"17754:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80207,"nodeType":"ArrayTypeName","src":"17754:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":80216,"initialValue":{"arguments":[{"expression":{"id":80213,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17805:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17815:6:165","memberName":"length","nodeType":"MemberAccess","src":"17805:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17784:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":80210,"nodeType":"UserDefinedTypeName","pathNode":{"id":80209,"name":"Gear.CodeState","nameLocations":["17788:4:165","17793:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17788:14:165"},"referencedDeclaration":83060,"src":"17788:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80211,"nodeType":"ArrayTypeName","src":"17788:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":80215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17754:68:165"},{"body":{"id":80240,"nodeType":"Block","src":"17880:73:165","statements":[{"expression":{"id":80238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80228,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80208,"src":"17894:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":80230,"indexExpression":{"id":80229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17898:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17894:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80231,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80199,"src":"17903:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17910:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"17903:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17923:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"17903:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80237,"indexExpression":{"baseExpression":{"id":80234,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17929:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80236,"indexExpression":{"id":80235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17939:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17929:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17903:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"17894:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80239,"nodeType":"ExpressionStatement","src":"17894:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80221,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17853:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80222,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17857:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17867:6:165","memberName":"length","nodeType":"MemberAccess","src":"17857:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17853:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80241,"initializationExpression":{"assignments":[80218],"declarations":[{"constant":false,"id":80218,"mutability":"mutable","name":"i","nameLocation":"17846:1:165","nodeType":"VariableDeclaration","scope":80241,"src":"17838:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80217,"name":"uint256","nodeType":"ElementaryTypeName","src":"17838:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80220,"initialValue":{"hexValue":"30","id":80219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17850:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17838:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17875:3:165","subExpression":{"id":80225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17875:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80227,"nodeType":"ExpressionStatement","src":"17875:3:165"},"nodeType":"ForStatement","src":"17833:120:165"},{"expression":{"id":80242,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80208,"src":"17970:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":80196,"id":80243,"nodeType":"Return","src":"17963:10:165"}]},"baseFunctions":[74780],"documentation":{"id":80187,"nodeType":"StructuredDocumentation","src":"17484:113:165","text":" @dev Returns the states of multiple codes.\n @return codesStates The states of the codes."},"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"17611:11:165","parameters":{"id":80191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80190,"mutability":"mutable","name":"_codesIds","nameLocation":"17642:9:165","nodeType":"VariableDeclaration","scope":80245,"src":"17623:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17623:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80189,"nodeType":"ArrayTypeName","src":"17623:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17622:30:165"},"returnParameters":{"id":80196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80245,"src":"17674:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80193,"nodeType":"UserDefinedTypeName","pathNode":{"id":80192,"name":"Gear.CodeState","nameLocations":["17674:4:165","17679:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17674:14:165"},"referencedDeclaration":83060,"src":"17674:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80194,"nodeType":"ArrayTypeName","src":"17674:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"17673:25:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80261,"nodeType":"FunctionDefinition","src":"18106:140:165","nodes":[],"body":{"id":80260,"nodeType":"Block","src":"18179:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80253,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18196:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18196:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18196:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"18196:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80258,"indexExpression":{"id":80257,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80248,"src":"18228:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18196:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80252,"id":80259,"nodeType":"Return","src":"18189:50:165"}]},"baseFunctions":[74788],"documentation":{"id":80246,"nodeType":"StructuredDocumentation","src":"17986:115:165","text":" @dev Returns the code ID of the given program.\n @return codeId The code ID of the program."},"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"18115:13:165","parameters":{"id":80249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80248,"mutability":"mutable","name":"_programId","nameLocation":"18137:10:165","nodeType":"VariableDeclaration","scope":80261,"src":"18129:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80247,"name":"address","nodeType":"ElementaryTypeName","src":"18129:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18128:20:165"},"returnParameters":{"id":80252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80261,"src":"18170:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18170:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18169:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80317,"nodeType":"FunctionDefinition","src":"18378:376:165","nodes":[],"body":{"id":80316,"nodeType":"Block","src":"18475:279:165","nodes":[],"statements":[{"assignments":[80273],"declarations":[{"constant":false,"id":80273,"mutability":"mutable","name":"router","nameLocation":"18501:6:165","nodeType":"VariableDeclaration","scope":80316,"src":"18485:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80272,"nodeType":"UserDefinedTypeName","pathNode":{"id":80271,"name":"Storage","nameLocations":["18485:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"18485:7:165"},"referencedDeclaration":74490,"src":"18485:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80276,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80274,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18510:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18510:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18485:34:165"},{"assignments":[80281],"declarations":[{"constant":false,"id":80281,"mutability":"mutable","name":"res","nameLocation":"18547:3:165","nodeType":"VariableDeclaration","scope":80316,"src":"18530:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18530:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80280,"nodeType":"ArrayTypeName","src":"18530:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":80288,"initialValue":{"arguments":[{"expression":{"id":80285,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18567:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18580:6:165","memberName":"length","nodeType":"MemberAccess","src":"18567:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18553:13:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":80282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18557:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80283,"nodeType":"ArrayTypeName","src":"18557:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":80287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18530:57:165"},{"body":{"id":80312,"nodeType":"Block","src":"18648:79:165","statements":[{"expression":{"id":80310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80300,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80281,"src":"18662:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":80302,"indexExpression":{"id":80301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18666:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18662:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80303,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80273,"src":"18671:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18678:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18671:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18691:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"18671:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80309,"indexExpression":{"baseExpression":{"id":80306,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18700:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80308,"indexExpression":{"id":80307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18713:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18700:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18671:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18662:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80311,"nodeType":"ExpressionStatement","src":"18662:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80293,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18618:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80294,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18622:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18635:6:165","memberName":"length","nodeType":"MemberAccess","src":"18622:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18618:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80313,"initializationExpression":{"assignments":[80290],"declarations":[{"constant":false,"id":80290,"mutability":"mutable","name":"i","nameLocation":"18611:1:165","nodeType":"VariableDeclaration","scope":80313,"src":"18603:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80289,"name":"uint256","nodeType":"ElementaryTypeName","src":"18603:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80292,"initialValue":{"hexValue":"30","id":80291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18615:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18603:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18643:3:165","subExpression":{"id":80297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18643:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80299,"nodeType":"ExpressionStatement","src":"18643:3:165"},"nodeType":"ForStatement","src":"18598:129:165"},{"expression":{"id":80314,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80281,"src":"18744:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":80270,"id":80315,"nodeType":"Return","src":"18737:10:165"}]},"baseFunctions":[74798],"documentation":{"id":80262,"nodeType":"StructuredDocumentation","src":"18252:121:165","text":" @dev Returns the code IDs of the given programs.\n @return codesIds The code IDs of the programs."},"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"18387:15:165","parameters":{"id":80266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80265,"mutability":"mutable","name":"_programsIds","nameLocation":"18422:12:165","nodeType":"VariableDeclaration","scope":80317,"src":"18403:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80263,"name":"address","nodeType":"ElementaryTypeName","src":"18403:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80264,"nodeType":"ArrayTypeName","src":"18403:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18402:33:165"},"returnParameters":{"id":80270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80317,"src":"18457:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18457:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80268,"nodeType":"ArrayTypeName","src":"18457:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18456:18:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80329,"nodeType":"FunctionDefinition","src":"18871:115:165","nodes":[],"body":{"id":80328,"nodeType":"Block","src":"18926:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80323,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18943:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18943:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18953:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18943:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18966:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"18943:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80322,"id":80327,"nodeType":"Return","src":"18936:43:165"}]},"baseFunctions":[74804],"documentation":{"id":80318,"nodeType":"StructuredDocumentation","src":"18760:106:165","text":" @dev Returns the count of programs.\n @return programsCount The count of programs."},"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"18880:13:165","parameters":{"id":80319,"nodeType":"ParameterList","parameters":[],"src":"18893:2:165"},"returnParameters":{"id":80322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80329,"src":"18917:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80320,"name":"uint256","nodeType":"ElementaryTypeName","src":"18917:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18916:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80341,"nodeType":"FunctionDefinition","src":"19123:127:165","nodes":[],"body":{"id":80340,"nodeType":"Block","src":"19184:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80335,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19201:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19201:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19211:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19201:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19224:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"19201:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80334,"id":80339,"nodeType":"Return","src":"19194:49:165"}]},"baseFunctions":[74810],"documentation":{"id":80330,"nodeType":"StructuredDocumentation","src":"18992:126:165","text":" @dev Returns the count of validated codes.\n @return validatedCodesCount The count of validated codes."},"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"19132:19:165","parameters":{"id":80331,"nodeType":"ParameterList","parameters":[],"src":"19151:2:165"},"returnParameters":{"id":80334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80341,"src":"19175:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80332,"name":"uint256","nodeType":"ElementaryTypeName","src":"19175:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19174:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80353,"nodeType":"FunctionDefinition","src":"19447:147:165","nodes":[],"body":{"id":80352,"nodeType":"Block","src":"19519:75:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80347,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19536:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19536:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19546:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19536:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19559:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"19536:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80346,"id":80351,"nodeType":"Return","src":"19529:58:165"}]},"baseFunctions":[74816],"documentation":{"id":80342,"nodeType":"StructuredDocumentation","src":"19256:186:165","text":" @dev Returns the base fee for requesting code validation in WVARA ERC20 token.\n @return requestCodeValidationBaseFee The base fee for requesting code validation."},"functionSelector":"188509e9","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationBaseFee","nameLocation":"19456:28:165","parameters":{"id":80343,"nodeType":"ParameterList","parameters":[],"src":"19484:2:165"},"returnParameters":{"id":80346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80353,"src":"19510:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80344,"name":"uint256","nodeType":"ElementaryTypeName","src":"19510:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19509:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80365,"nodeType":"FunctionDefinition","src":"19846:149:165","nodes":[],"body":{"id":80364,"nodeType":"Block","src":"19919:76:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80359,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19936:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19936:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19946:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19936:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19959:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"19936:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80358,"id":80363,"nodeType":"Return","src":"19929:59:165"}]},"baseFunctions":[74822],"documentation":{"id":80354,"nodeType":"StructuredDocumentation","src":"19600:241:165","text":" @dev Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @return requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."},"functionSelector":"f1ef31ec","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationExtraFee","nameLocation":"19855:29:165","parameters":{"id":80355,"nodeType":"ParameterList","parameters":[],"src":"19884:2:165"},"returnParameters":{"id":80358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80365,"src":"19910:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80356,"name":"uint256","nodeType":"ElementaryTypeName","src":"19910:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19909:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80377,"nodeType":"FunctionDefinition","src":"20092:108:165","nodes":[],"body":{"id":80376,"nodeType":"Block","src":"20157:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80372,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"20174:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20174:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20184:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"20174:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":80371,"id":80375,"nodeType":"Return","src":"20167:26:165"}]},"baseFunctions":[74829],"documentation":{"id":80366,"nodeType":"StructuredDocumentation","src":"20001:86:165","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"20101:9:165","parameters":{"id":80367,"nodeType":"ParameterList","parameters":[],"src":"20110:2:165"},"returnParameters":{"id":80371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80377,"src":"20134:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":80369,"nodeType":"UserDefinedTypeName","pathNode":{"id":80368,"name":"Gear.Timelines","nameLocations":["20134:4:165","20139:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83175,"src":"20134:14:165"},"referencedDeclaration":83175,"src":"20134:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"20133:23:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80387,"nodeType":"FunctionDefinition","src":"20374:104:165","nodes":[],"body":{"id":80386,"nodeType":"Block","src":"20434:44:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80383,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"20451:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20451:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80382,"id":80385,"nodeType":"Return","src":"20444:27:165"}]},"baseFunctions":[74835],"documentation":{"id":80378,"nodeType":"StructuredDocumentation","src":"20206:163:165","text":" @dev Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\n @return domainSeparator The domain separator."},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"20383:16:165","parameters":{"id":80379,"nodeType":"ParameterList","parameters":[],"src":"20399:2:165"},"returnParameters":{"id":80382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80387,"src":"20425:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20425:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20424:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80403,"nodeType":"FunctionDefinition","src":"20642:116:165","nodes":[],"body":{"id":80402,"nodeType":"Block","src":"20699:59:165","nodes":[],"statements":[{"expression":{"id":80400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80395,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"20709:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20709:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20719:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"20709:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20733:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"20709:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80399,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80390,"src":"20742:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20709:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80401,"nodeType":"ExpressionStatement","src":"20709:42:165"}]},"baseFunctions":[74841],"documentation":{"id":80388,"nodeType":"StructuredDocumentation","src":"20509:128:165","text":" @dev Sets the `Mirror` implementation address.\n @param newMirror The new mirror implementation address."},"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":80393,"kind":"modifierInvocation","modifierName":{"id":80392,"name":"onlyOwner","nameLocations":["20689:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"20689:9:165"},"nodeType":"ModifierInvocation","src":"20689:9:165"}],"name":"setMirror","nameLocation":"20651:9:165","parameters":{"id":80391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80390,"mutability":"mutable","name":"newMirror","nameLocation":"20669:9:165","nodeType":"VariableDeclaration","scope":80403,"src":"20661:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80389,"name":"address","nodeType":"ElementaryTypeName","src":"20661:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20660:19:165"},"returnParameters":{"id":80394,"nodeType":"ParameterList","parameters":[],"src":"20699:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80419,"nodeType":"FunctionDefinition","src":"20937:161:165","nodes":[],"body":{"id":80418,"nodeType":"Block","src":"21017:81:165","nodes":[],"statements":[{"expression":{"id":80416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80411,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21027:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21027:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21037:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"21027:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21050:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"21027:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80415,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80406,"src":"21081:10:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21027:64:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80417,"nodeType":"ExpressionStatement","src":"21027:64:165"}]},"baseFunctions":[74847],"documentation":{"id":80404,"nodeType":"StructuredDocumentation","src":"20764:168:165","text":" @dev Sets the base fee for requesting code validation in WVARA ERC20 token.\n @param newBaseFee The new base fee for requesting code validation."},"functionSelector":"11bec80d","implemented":true,"kind":"function","modifiers":[{"id":80409,"kind":"modifierInvocation","modifierName":{"id":80408,"name":"onlyOwner","nameLocations":["21007:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21007:9:165"},"nodeType":"ModifierInvocation","src":"21007:9:165"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"20946:31:165","parameters":{"id":80407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80406,"mutability":"mutable","name":"newBaseFee","nameLocation":"20986:10:165","nodeType":"VariableDeclaration","scope":80419,"src":"20978:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80405,"name":"uint256","nodeType":"ElementaryTypeName","src":"20978:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20977:20:165"},"returnParameters":{"id":80410,"nodeType":"ParameterList","parameters":[],"src":"21017:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80435,"nodeType":"FunctionDefinition","src":"21332:165:165","nodes":[],"body":{"id":80434,"nodeType":"Block","src":"21414:83:165","nodes":[],"statements":[{"expression":{"id":80432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80427,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21424:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21424:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"21424:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21447:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"21424:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80431,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80422,"src":"21479:11:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21424:66:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80433,"nodeType":"ExpressionStatement","src":"21424:66:165"}]},"baseFunctions":[74853],"documentation":{"id":80420,"nodeType":"StructuredDocumentation","src":"21104:223:165","text":" @dev Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @param newExtraFee The new extra fee for requesting code validation on behalf of someone else."},"functionSelector":"0b9737ce","implemented":true,"kind":"function","modifiers":[{"id":80425,"kind":"modifierInvocation","modifierName":{"id":80424,"name":"onlyOwner","nameLocations":["21404:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21404:9:165"},"nodeType":"ModifierInvocation","src":"21404:9:165"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"21341:32:165","parameters":{"id":80423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80422,"mutability":"mutable","name":"newExtraFee","nameLocation":"21382:11:165","nodeType":"VariableDeclaration","scope":80435,"src":"21374:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80421,"name":"uint256","nodeType":"ElementaryTypeName","src":"21374:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21373:21:165"},"returnParameters":{"id":80426,"nodeType":"ParameterList","parameters":[],"src":"21414:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80445,"nodeType":"FunctionDefinition","src":"21552:59:165","nodes":[],"body":{"id":80444,"nodeType":"Block","src":"21586:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80441,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43833,"src":"21596:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21596:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80443,"nodeType":"ExpressionStatement","src":"21596:8:165"}]},"baseFunctions":[74857],"documentation":{"id":80436,"nodeType":"StructuredDocumentation","src":"21503:44:165","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":80439,"kind":"modifierInvocation","modifierName":{"id":80438,"name":"onlyOwner","nameLocations":["21576:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21576:9:165"},"nodeType":"ModifierInvocation","src":"21576:9:165"}],"name":"pause","nameLocation":"21561:5:165","parameters":{"id":80437,"nodeType":"ParameterList","parameters":[],"src":"21566:2:165"},"returnParameters":{"id":80440,"nodeType":"ParameterList","parameters":[],"src":"21586:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80455,"nodeType":"FunctionDefinition","src":"21668:63:165","nodes":[],"body":{"id":80454,"nodeType":"Block","src":"21704:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80451,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"21714:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21714:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80453,"nodeType":"ExpressionStatement","src":"21714:10:165"}]},"baseFunctions":[74861],"documentation":{"id":80446,"nodeType":"StructuredDocumentation","src":"21617:46:165","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":80449,"kind":"modifierInvocation","modifierName":{"id":80448,"name":"onlyOwner","nameLocations":["21694:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21694:9:165"},"nodeType":"ModifierInvocation","src":"21694:9:165"}],"name":"unpause","nameLocation":"21677:7:165","parameters":{"id":80447,"nodeType":"ParameterList","parameters":[],"src":"21684:2:165"},"returnParameters":{"id":80450,"nodeType":"ParameterList","parameters":[],"src":"21704:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80510,"nodeType":"FunctionDefinition","src":"21832:385:165","nodes":[],"body":{"id":80509,"nodeType":"Block","src":"21870:347:165","nodes":[],"statements":[{"assignments":[80461],"declarations":[{"constant":false,"id":80461,"mutability":"mutable","name":"router","nameLocation":"21896:6:165","nodeType":"VariableDeclaration","scope":80509,"src":"21880:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80460,"nodeType":"UserDefinedTypeName","pathNode":{"id":80459,"name":"Storage","nameLocations":["21880:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"21880:7:165"},"referencedDeclaration":74490,"src":"21880:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80462,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21905:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21905:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21880:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80466,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"21933:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21940:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"21933:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21953:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"21933:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21969:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21961:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21961:7:165","typeDescriptions":{}}},"id":80472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21961:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21933:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80474,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74558,"src":"21973:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21973:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21925:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21925:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80477,"nodeType":"ExpressionStatement","src":"21925:72:165"},{"assignments":[80479],"declarations":[{"constant":false,"id":80479,"mutability":"mutable","name":"genesisHash","nameLocation":"22016:11:165","nodeType":"VariableDeclaration","scope":80509,"src":"22008:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22008:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80485,"initialValue":{"arguments":[{"expression":{"expression":{"id":80481,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22040:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22047:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22040:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22060:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83077,"src":"22040:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80480,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22030:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22030:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22008:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80487,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80479,"src":"22086:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22109:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22101:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22101:7:165","typeDescriptions":{}}},"id":80491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22101:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22086:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80493,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74561,"src":"22113:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22113:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22078:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22078:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80496,"nodeType":"ExpressionStatement","src":"22078:57:165"},{"expression":{"id":80507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":80497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22146:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22153:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22146:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22166:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"22146:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80503,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22183:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22190:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22183:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22203:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83077,"src":"22183:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80502,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22173:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22173:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22146:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80508,"nodeType":"ExpressionStatement","src":"22146:64:165"}]},"baseFunctions":[74865],"documentation":{"id":80456,"nodeType":"StructuredDocumentation","src":"21756:71:165","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"21841:17:165","parameters":{"id":80457,"nodeType":"ParameterList","parameters":[],"src":"21858:2:165"},"returnParameters":{"id":80458,"nodeType":"ParameterList","parameters":[],"src":"21870:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80639,"nodeType":"FunctionDefinition","src":"23079:986:165","nodes":[],"body":{"id":80638,"nodeType":"Block","src":"23223:842:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23250:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80527,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"23241:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23256:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23241:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80532,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74564,"src":"23259:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23233:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23233:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80535,"nodeType":"ExpressionStatement","src":"23233:41:165"},{"assignments":[80538],"declarations":[{"constant":false,"id":80538,"mutability":"mutable","name":"router","nameLocation":"23301:6:165","nodeType":"VariableDeclaration","scope":80638,"src":"23285:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80537,"nodeType":"UserDefinedTypeName","pathNode":{"id":80536,"name":"Storage","nameLocations":["23285:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"23285:7:165"},"referencedDeclaration":74490,"src":"23285:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80541,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80539,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"23310:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23310:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23285:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80543,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23337:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23344:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"23337:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23357:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"23337:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23373:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23365:7:165","typeDescriptions":{}}},"id":80549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23365:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23337:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80551,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"23377:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23377:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23329:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23329:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80554,"nodeType":"ExpressionStatement","src":"23329:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":80564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80556,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23430:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23437:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23430:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23450:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"23430:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80560,"indexExpression":{"id":80559,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"23456:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23430:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80561,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"23468:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23473:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"23468:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23483:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83055,"src":"23468:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"23430:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80565,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"23492:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23492:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80555,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23422:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23422:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80568,"nodeType":"ExpressionStatement","src":"23422:107:165"},{"assignments":[80571],"declarations":[{"constant":false,"id":80571,"mutability":"mutable","name":"_wrappedVara","nameLocation":"23553:12:165","nodeType":"VariableDeclaration","scope":80638,"src":"23540:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80570,"nodeType":"UserDefinedTypeName","pathNode":{"id":80569,"name":"IWrappedVara","nameLocations":["23540:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"23540:12:165"},"referencedDeclaration":75006,"src":"23540:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80577,"initialValue":{"arguments":[{"expression":{"expression":{"id":80573,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23581:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23588:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"23581:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23602:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"23581:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80572,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"23568:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23568:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"23540:74:165"},{"assignments":[80579],"declarations":[{"constant":false,"id":80579,"mutability":"mutable","name":"baseFee","nameLocation":"23633:7:165","nodeType":"VariableDeclaration","scope":80638,"src":"23625:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80578,"name":"uint256","nodeType":"ElementaryTypeName","src":"23625:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80583,"initialValue":{"expression":{"expression":{"id":80580,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23643:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23650:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23643:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23663:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"23643:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23625:66:165"},{"clauses":[{"block":{"id":80598,"nodeType":"Block","src":"23784:2:165","statements":[]},"errorName":"","id":80599,"nodeType":"TryCatchClause","src":"23784:2:165"},{"block":{"id":80600,"nodeType":"Block","src":"23793:2:165","statements":[]},"errorName":"","id":80601,"nodeType":"TryCatchClause","src":"23787:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80586,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23725:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23729:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23725:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80590,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23745:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23737:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80588,"name":"address","nodeType":"ElementaryTypeName","src":"23737:7:165","typeDescriptions":{}}},"id":80591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23737:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80592,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"23752:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80593,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80515,"src":"23761:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80594,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80517,"src":"23772:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80595,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80519,"src":"23776:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80596,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80521,"src":"23780:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80584,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80571,"src":"23705:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23718:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"23705:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23705:78:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80602,"nodeType":"TryStatement","src":"23701:94:165"},{"assignments":[80604],"declarations":[{"constant":false,"id":80604,"mutability":"mutable","name":"success","nameLocation":"23809:7:165","nodeType":"VariableDeclaration","scope":80638,"src":"23804:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80603,"name":"bool","nodeType":"ElementaryTypeName","src":"23804:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80615,"initialValue":{"arguments":[{"expression":{"id":80607,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23845:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23849:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23845:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80611,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23865:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23857:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80609,"name":"address","nodeType":"ElementaryTypeName","src":"23857:7:165","typeDescriptions":{}}},"id":80612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23857:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80613,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"23872:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80605,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80571,"src":"23819:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23832:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"23819:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23819:61:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"23804:76:165"},{"expression":{"arguments":[{"id":80617,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80604,"src":"23898:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80618,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"23907:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23907:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23890:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23890:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80621,"nodeType":"ExpressionStatement","src":"23890:38:165"},{"expression":{"id":80632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80622,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23939:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23946:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23939:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23959:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"23939:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80628,"indexExpression":{"id":80625,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"23965:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23939:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80629,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"23976:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23981:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"23976:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23991:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"23976:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"23939:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80633,"nodeType":"ExpressionStatement","src":"23939:71:165"},{"eventCall":{"arguments":[{"id":80635,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"24050:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80634,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"24026:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24026:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80637,"nodeType":"EmitStatement","src":"24021:37:165"}]},"baseFunctions":[74879],"documentation":{"id":80511,"nodeType":"StructuredDocumentation","src":"22223:851:165","text":" @dev Requests code validation for the given code ID.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()`\n in the WVARA ERC20 token.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"8c4ace6a","implemented":true,"kind":"function","modifiers":[{"id":80524,"kind":"modifierInvocation","modifierName":{"id":80523,"name":"whenNotPaused","nameLocations":["23205:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"23205:13:165"},"nodeType":"ModifierInvocation","src":"23205:13:165"}],"name":"requestCodeValidation","nameLocation":"23088:21:165","parameters":{"id":80522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80513,"mutability":"mutable","name":"_codeId","nameLocation":"23118:7:165","nodeType":"VariableDeclaration","scope":80639,"src":"23110:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23110:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80515,"mutability":"mutable","name":"_deadline","nameLocation":"23135:9:165","nodeType":"VariableDeclaration","scope":80639,"src":"23127:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80514,"name":"uint256","nodeType":"ElementaryTypeName","src":"23127:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80517,"mutability":"mutable","name":"_v","nameLocation":"23152:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23146:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80516,"name":"uint8","nodeType":"ElementaryTypeName","src":"23146:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80519,"mutability":"mutable","name":"_r","nameLocation":"23164:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23156:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23156:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80521,"mutability":"mutable","name":"_s","nameLocation":"23176:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23168:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23168:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23109:70:165"},"returnParameters":{"id":80525,"nodeType":"ParameterList","parameters":[],"src":"23223:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80905,"nodeType":"FunctionDefinition","src":"25572:2418:165","nodes":[],"body":{"id":80904,"nodeType":"Block","src":"25882:2108:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80667,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"25900:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25900:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25915:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25900:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80672,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74564,"src":"25918:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25918:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80666,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25892:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25892:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80675,"nodeType":"ExpressionStatement","src":"25892:41:165"},{"assignments":[80678],"declarations":[{"constant":false,"id":80678,"mutability":"mutable","name":"router","nameLocation":"25960:6:165","nodeType":"VariableDeclaration","scope":80904,"src":"25944:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80677,"nodeType":"UserDefinedTypeName","pathNode":{"id":80676,"name":"Storage","nameLocations":["25944:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"25944:7:165"},"referencedDeclaration":74490,"src":"25944:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80681,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80679,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"25969:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25969:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25944:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80683,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"25996:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26003:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"25996:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26016:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"25996:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26032:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26024:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26024:7:165","typeDescriptions":{}}},"id":80689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26024:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25996:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80691,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"26036:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80682,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25988:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25988:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80694,"nodeType":"ExpressionStatement","src":"25988:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":80704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80696,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"26089:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26096:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"26089:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26109:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"26089:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80700,"indexExpression":{"id":80699,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"26115:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26089:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80701,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"26127:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26132:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"26127:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26142:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83055,"src":"26127:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"26089:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80705,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"26151:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26151:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80695,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26081:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26081:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80708,"nodeType":"ExpressionStatement","src":"26081:107:165"},{"assignments":[80710],"declarations":[{"constant":false,"id":80710,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"26207:17:165","nodeType":"VariableDeclaration","scope":80904,"src":"26199:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80709,"name":"uint256","nodeType":"ElementaryTypeName","src":"26199:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80712,"initialValue":{"hexValue":"30","id":80711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26227:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26199:29:165"},{"body":{"id":80728,"nodeType":"Block","src":"26251:142:165","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":80715,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26278:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80714,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26269:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26269:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26308:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26300:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26300:7:165","typeDescriptions":{}}},"id":80720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26300:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26269:41:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80724,"nodeType":"IfStatement","src":"26265:85:165","trueBody":{"id":80723,"nodeType":"Block","src":"26312:38:165","statements":[{"id":80722,"nodeType":"Break","src":"26330:5:165"}]}},{"expression":{"id":80726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26363:19:165","subExpression":{"id":80725,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26363:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80727,"nodeType":"ExpressionStatement","src":"26363:19:165"}]},"condition":{"hexValue":"74727565","id":80713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26245:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":80729,"nodeType":"WhileStatement","src":"26238:155:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80731,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26411:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26423:6:165","memberName":"length","nodeType":"MemberAccess","src":"26411:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80733,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26433:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26411:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":80736,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26476:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26488:6:165","memberName":"length","nodeType":"MemberAccess","src":"26476:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80738,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26496:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80735,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74577,"src":"26452:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":80739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26452:62:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80730,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26403:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26403:112:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80741,"nodeType":"ExpressionStatement","src":"26403:112:165"},{"body":{"id":80774,"nodeType":"Block","src":"26575:174:165","statements":[{"assignments":[80754],"declarations":[{"constant":false,"id":80754,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"26597:16:165","nodeType":"VariableDeclaration","scope":80774,"src":"26589:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26589:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80758,"initialValue":{"arguments":[{"id":80756,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26625:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80755,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26616:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26616:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26589:38:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":80760,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26649:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80762,"indexExpression":{"id":80761,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26661:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26649:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80763,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80754,"src":"26667:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26649:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26701:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":80767,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26704:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80769,"indexExpression":{"id":80768,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26716:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26704:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80770,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80754,"src":"26720:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80765,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74586,"src":"26685:15:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_error_$","typeString":"function (uint256,bytes32,bytes32) pure returns (error)"}},"id":80771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26685:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80759,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26641:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26641:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80773,"nodeType":"ExpressionStatement","src":"26641:97:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80746,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26546:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80747,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26550:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26562:6:165","memberName":"length","nodeType":"MemberAccess","src":"26550:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26546:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80775,"initializationExpression":{"assignments":[80743],"declarations":[{"constant":false,"id":80743,"mutability":"mutable","name":"i","nameLocation":"26539:1:165","nodeType":"VariableDeclaration","scope":80775,"src":"26531:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80742,"name":"uint256","nodeType":"ElementaryTypeName","src":"26531:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80745,"initialValue":{"hexValue":"30","id":80744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26543:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26531:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26570:3:165","subExpression":{"id":80750,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26570:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80752,"nodeType":"ExpressionStatement","src":"26570:3:165"},"nodeType":"ForStatement","src":"26526:223:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80777,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26825:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"26825:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":80779,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"26844:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26825:28:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80782,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"26872:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80781,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74591,"src":"26855:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":80783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26855:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26817:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26817:66:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80785,"nodeType":"ExpressionStatement","src":"26817:66:165"},{"assignments":[80787],"declarations":[{"constant":false,"id":80787,"mutability":"mutable","name":"structHash","nameLocation":"26902:10:165","nodeType":"VariableDeclaration","scope":80904,"src":"26894:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26894:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80806,"initialValue":{"arguments":[{"arguments":[{"id":80791,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79504,"src":"26966:42:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80792,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27026:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80793,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27054:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":80797,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"27106:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"expression":{"id":80795,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27089:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27093:12:165","memberName":"encodePacked","nodeType":"MemberAccess","src":"27089:16:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27089:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80794,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27079:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27079:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":80801,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27147:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80800,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"27137:9:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":80802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27137:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80803,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"27176:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26938:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26942:6:165","memberName":"encode","nodeType":"MemberAccess","src":"26938:10:165","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26938:261:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80788,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26915:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26915:294:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26894:315:165"},{"assignments":[80808],"declarations":[{"constant":false,"id":80808,"mutability":"mutable","name":"hash","nameLocation":"27228:4:165","nodeType":"VariableDeclaration","scope":80904,"src":"27220:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27220:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80812,"initialValue":{"arguments":[{"id":80810,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80787,"src":"27252:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80809,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"27235:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":80811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27235:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27220:43:165"},{"assignments":[80814],"declarations":[{"constant":false,"id":80814,"mutability":"mutable","name":"signer","nameLocation":"27282:6:165","nodeType":"VariableDeclaration","scope":80904,"src":"27274:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80813,"name":"address","nodeType":"ElementaryTypeName","src":"27274:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80822,"initialValue":{"arguments":[{"id":80817,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80808,"src":"27305:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80818,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80651,"src":"27311:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80819,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80653,"src":"27316:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80820,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80655,"src":"27321:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80815,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"27291:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$51038_$","typeString":"type(library ECDSA)"}},"id":80816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27297:7:165","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50988,"src":"27291:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":80821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27291:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27274:51:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80824,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80814,"src":"27343:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80825,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27353:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27343:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80828,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80814,"src":"27379:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80829,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27387:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80827,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74598,"src":"27365:13:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":80830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27365:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80823,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27335:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27335:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80832,"nodeType":"ExpressionStatement","src":"27335:64:165"},{"assignments":[80835],"declarations":[{"constant":false,"id":80835,"mutability":"mutable","name":"_wrappedVara","nameLocation":"27423:12:165","nodeType":"VariableDeclaration","scope":80904,"src":"27410:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80834,"nodeType":"UserDefinedTypeName","pathNode":{"id":80833,"name":"IWrappedVara","nameLocations":["27410:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"27410:12:165"},"referencedDeclaration":75006,"src":"27410:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80841,"initialValue":{"arguments":[{"expression":{"expression":{"id":80837,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27451:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27458:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"27451:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27472:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"27451:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80836,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"27438:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27438:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"27410:74:165"},{"assignments":[80843],"declarations":[{"constant":false,"id":80843,"mutability":"mutable","name":"fee","nameLocation":"27503:3:165","nodeType":"VariableDeclaration","scope":80904,"src":"27495:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80842,"name":"uint256","nodeType":"ElementaryTypeName","src":"27495:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80851,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80844,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27521:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27528:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27521:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27541:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"27521:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":80847,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27572:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27579:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27572:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27592:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"27572:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27521:100:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27495:126:165"},{"clauses":[{"block":{"id":80865,"nodeType":"Block","src":"27713:2:165","statements":[]},"errorName":"","id":80866,"nodeType":"TryCatchClause","src":"27713:2:165"},{"block":{"id":80867,"nodeType":"Block","src":"27722:2:165","statements":[]},"errorName":"","id":80868,"nodeType":"TryCatchClause","src":"27716:8:165"}],"externalCall":{"arguments":[{"id":80854,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27655:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80857,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27675:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27667:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80855,"name":"address","nodeType":"ElementaryTypeName","src":"27667:7:165","typeDescriptions":{}}},"id":80858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27667:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80859,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80843,"src":"27682:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80860,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"27687:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80861,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80657,"src":"27698:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80862,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80659,"src":"27703:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80863,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80661,"src":"27708:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80852,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80835,"src":"27635:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27648:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"27635:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:77:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80869,"nodeType":"TryStatement","src":"27631:93:165"},{"assignments":[80871],"declarations":[{"constant":false,"id":80871,"mutability":"mutable","name":"success","nameLocation":"27738:7:165","nodeType":"VariableDeclaration","scope":80904,"src":"27733:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80870,"name":"bool","nodeType":"ElementaryTypeName","src":"27733:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80881,"initialValue":{"arguments":[{"id":80874,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27774:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80877,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27794:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27786:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80875,"name":"address","nodeType":"ElementaryTypeName","src":"27786:7:165","typeDescriptions":{}}},"id":80878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27786:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80879,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80843,"src":"27801:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80872,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80835,"src":"27748:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27761:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"27748:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27748:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27733:72:165"},{"expression":{"arguments":[{"id":80883,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80871,"src":"27823:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80884,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"27832:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27832:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27815:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27815:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80887,"nodeType":"ExpressionStatement","src":"27815:38:165"},{"expression":{"id":80898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80888,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27864:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27871:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27864:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27884:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"27864:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80894,"indexExpression":{"id":80891,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27890:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27864:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80895,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"27901:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27906:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"27901:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27916:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"27901:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"27864:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80899,"nodeType":"ExpressionStatement","src":"27864:71:165"},{"eventCall":{"arguments":[{"id":80901,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27975:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80900,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"27951:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27951:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80903,"nodeType":"EmitStatement","src":"27946:37:165"}]},"baseFunctions":[74904],"documentation":{"id":80640,"nodeType":"StructuredDocumentation","src":"24071:1496:165","text":" @dev Requests code validation for the given code ID on behalf of someone else.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()`\n in the WVARA ERC20 token.\n @param _requester The address of the requester on behalf of whom the code validation is requested.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _blobHashes The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`.\n This is needed to verify that the transaction has expected blobs attached.\n @param _deadline Deadline for the transaction to be executed.\n @param _v1 ECDSA signature parameter (for requestCodeValidation).\n @param _r1 ECDSA signature parameter (for requestCodeValidation).\n @param _s1 ECDSA signature parameter (for requestCodeValidation).\n @param _v2 ECDSA signature parameter (for permit).\n @param _r2 ECDSA signature parameter (for permit).\n @param _s2 ECDSA signature parameter (for permit)."},"functionSelector":"f0fd702a","implemented":true,"kind":"function","modifiers":[{"id":80664,"kind":"modifierInvocation","modifierName":{"id":80663,"name":"whenNotPaused","nameLocations":["25868:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"25868:13:165"},"nodeType":"ModifierInvocation","src":"25868:13:165"}],"name":"requestCodeValidationOnBehalf","nameLocation":"25581:29:165","parameters":{"id":80662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80642,"mutability":"mutable","name":"_requester","nameLocation":"25628:10:165","nodeType":"VariableDeclaration","scope":80905,"src":"25620:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80641,"name":"address","nodeType":"ElementaryTypeName","src":"25620:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80644,"mutability":"mutable","name":"_codeId","nameLocation":"25656:7:165","nodeType":"VariableDeclaration","scope":80905,"src":"25648:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25648:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80647,"mutability":"mutable","name":"_blobHashes","nameLocation":"25692:11:165","nodeType":"VariableDeclaration","scope":80905,"src":"25673:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25673:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80646,"nodeType":"ArrayTypeName","src":"25673:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":80649,"mutability":"mutable","name":"_deadline","nameLocation":"25721:9:165","nodeType":"VariableDeclaration","scope":80905,"src":"25713:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80648,"name":"uint256","nodeType":"ElementaryTypeName","src":"25713:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80651,"mutability":"mutable","name":"_v1","nameLocation":"25746:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25740:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80650,"name":"uint8","nodeType":"ElementaryTypeName","src":"25740:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80653,"mutability":"mutable","name":"_r1","nameLocation":"25767:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25759:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25759:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80655,"mutability":"mutable","name":"_s1","nameLocation":"25788:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25780:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25780:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80657,"mutability":"mutable","name":"_v2","nameLocation":"25807:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25801:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80656,"name":"uint8","nodeType":"ElementaryTypeName","src":"25801:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80659,"mutability":"mutable","name":"_r2","nameLocation":"25828:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25820:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25820:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80661,"mutability":"mutable","name":"_s2","nameLocation":"25849:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25841:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25841:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25610:248:165"},"returnParameters":{"id":80665,"nodeType":"ParameterList","parameters":[],"src":"25882:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80950,"nodeType":"FunctionDefinition","src":"29070:396:165","nodes":[],"body":{"id":80949,"nodeType":"Block","src":"29224:242:165","nodes":[],"statements":[{"assignments":[80920,null],"declarations":[{"constant":false,"id":80920,"mutability":"mutable","name":"mirror","nameLocation":"29243:6:165","nodeType":"VariableDeclaration","scope":80949,"src":"29235:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80919,"name":"address","nodeType":"ElementaryTypeName","src":"29235:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":80926,"initialValue":{"arguments":[{"id":80922,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80908,"src":"29269:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80923,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80910,"src":"29278:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":80924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29285:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80921,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"29254:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":80925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29254:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"29234:56:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80931,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80912,"src":"29341:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29373:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80932,"name":"address","nodeType":"ElementaryTypeName","src":"29365:7:165","typeDescriptions":{}}},"id":80935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29365:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"29341:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":80939,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80912,"src":"29391:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"29341:70:165","trueExpression":{"expression":{"id":80937,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29378:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29382:6:165","memberName":"sender","nodeType":"MemberAccess","src":"29378:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80941,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79936,"src":"29413:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":80942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29413:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":80943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29427:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":80944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29433:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":80928,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80920,"src":"29309:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80927,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"29301:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":80929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29301:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":80930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29330:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"29301:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":80945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29301:134:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80946,"nodeType":"ExpressionStatement","src":"29301:134:165"},{"expression":{"id":80947,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80920,"src":"29453:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80918,"id":80948,"nodeType":"Return","src":"29446:13:165"}]},"baseFunctions":[74916],"documentation":{"id":80906,"nodeType":"StructuredDocumentation","src":"27996:1069:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, and initializer.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":80915,"kind":"modifierInvocation","modifierName":{"id":80914,"name":"whenNotPaused","nameLocations":["29180:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"29180:13:165"},"nodeType":"ModifierInvocation","src":"29180:13:165"}],"name":"createProgram","nameLocation":"29079:13:165","parameters":{"id":80913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80908,"mutability":"mutable","name":"_codeId","nameLocation":"29101:7:165","nodeType":"VariableDeclaration","scope":80950,"src":"29093:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29093:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80910,"mutability":"mutable","name":"_salt","nameLocation":"29118:5:165","nodeType":"VariableDeclaration","scope":80950,"src":"29110:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29110:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80912,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"29133:20:165","nodeType":"VariableDeclaration","scope":80950,"src":"29125:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80911,"name":"address","nodeType":"ElementaryTypeName","src":"29125:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29092:62:165"},"returnParameters":{"id":80918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80950,"src":"29211:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80916,"name":"address","nodeType":"ElementaryTypeName","src":"29211:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29210:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81055,"nodeType":"FunctionDefinition","src":"30939:1031:165","nodes":[],"body":{"id":81054,"nodeType":"Block","src":"31244:726:165","nodes":[],"statements":[{"assignments":[80975,80978],"declarations":[{"constant":false,"id":80975,"mutability":"mutable","name":"mirror","nameLocation":"31263:6:165","nodeType":"VariableDeclaration","scope":81054,"src":"31255:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80974,"name":"address","nodeType":"ElementaryTypeName","src":"31255:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80978,"mutability":"mutable","name":"router","nameLocation":"31287:6:165","nodeType":"VariableDeclaration","scope":81054,"src":"31271:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80977,"nodeType":"UserDefinedTypeName","pathNode":{"id":80976,"name":"Storage","nameLocations":["31271:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"31271:7:165"},"referencedDeclaration":74490,"src":"31271:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80984,"initialValue":{"arguments":[{"id":80980,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80953,"src":"31312:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80981,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80955,"src":"31321:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":80982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31328:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80979,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"31297:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":80983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31297:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"31254:79:165"},{"assignments":[80987],"declarations":[{"constant":false,"id":80987,"mutability":"mutable","name":"_wrappedVara","nameLocation":"31357:12:165","nodeType":"VariableDeclaration","scope":81054,"src":"31344:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80986,"nodeType":"UserDefinedTypeName","pathNode":{"id":80985,"name":"IWrappedVara","nameLocations":["31344:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"31344:12:165"},"referencedDeclaration":75006,"src":"31344:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80993,"initialValue":{"arguments":[{"expression":{"expression":{"id":80989,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80978,"src":"31385:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31392:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"31385:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31406:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"31385:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80988,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"31372:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31372:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"31344:74:165"},{"clauses":[{"block":{"id":81008,"nodeType":"Block","src":"31530:2:165","statements":[]},"errorName":"","id":81009,"nodeType":"TryCatchClause","src":"31530:2:165"},{"block":{"id":81010,"nodeType":"Block","src":"31539:2:165","statements":[]},"errorName":"","id":81011,"nodeType":"TryCatchClause","src":"31533:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80996,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31453:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31457:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31453:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81000,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31473:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31465:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80998,"name":"address","nodeType":"ElementaryTypeName","src":"31465:7:165","typeDescriptions":{}}},"id":81001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31465:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81002,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31480:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81003,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80961,"src":"31507:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81004,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80963,"src":"31518:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81005,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80965,"src":"31522:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81006,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80967,"src":"31526:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80994,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80987,"src":"31433:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31446:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"31433:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31433:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81012,"nodeType":"TryStatement","src":"31429:112:165"},{"assignments":[81014],"declarations":[{"constant":false,"id":81014,"mutability":"mutable","name":"success","nameLocation":"31555:7:165","nodeType":"VariableDeclaration","scope":81054,"src":"31550:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81013,"name":"bool","nodeType":"ElementaryTypeName","src":"31550:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81025,"initialValue":{"arguments":[{"expression":{"id":81017,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31591:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31595:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31591:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81021,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31611:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31603:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81019,"name":"address","nodeType":"ElementaryTypeName","src":"31603:7:165","typeDescriptions":{}}},"id":81022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81023,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31618:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":81015,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80987,"src":"31565:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31578:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"31565:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31565:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31550:94:165"},{"expression":{"arguments":[{"id":81027,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81014,"src":"31662:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81028,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"31671:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31671:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81026,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31654:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31654:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81031,"nodeType":"ExpressionStatement","src":"31654:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81036,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"31760:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31792:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31784:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81037,"name":"address","nodeType":"ElementaryTypeName","src":"31784:7:165","typeDescriptions":{}}},"id":81040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31784:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31760:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81044,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"31810:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31760:70:165","trueExpression":{"expression":{"id":81042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31797:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31801:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31797:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81046,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79936,"src":"31848:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31848:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31878:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":81049,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31900:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81033,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80975,"src":"31711:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81032,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"31703:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31703:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31732:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"31703:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31703:236:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81051,"nodeType":"ExpressionStatement","src":"31703:236:165"},{"expression":{"id":81052,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80975,"src":"31957:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80973,"id":81053,"nodeType":"Return","src":"31950:13:165"}]},"baseFunctions":[74938],"documentation":{"id":80951,"nodeType":"StructuredDocumentation","src":"29472:1462:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0d91bf2a","implemented":true,"kind":"function","modifiers":[{"id":80970,"kind":"modifierInvocation","modifierName":{"id":80969,"name":"whenNotPaused","nameLocations":["31212:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"31212:13:165"},"nodeType":"ModifierInvocation","src":"31212:13:165"}],"name":"createProgramWithExecutableBalance","nameLocation":"30948:34:165","parameters":{"id":80968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80953,"mutability":"mutable","name":"_codeId","nameLocation":"31000:7:165","nodeType":"VariableDeclaration","scope":81055,"src":"30992:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30992:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80955,"mutability":"mutable","name":"_salt","nameLocation":"31025:5:165","nodeType":"VariableDeclaration","scope":81055,"src":"31017:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31017:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80957,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"31048:20:165","nodeType":"VariableDeclaration","scope":81055,"src":"31040:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80956,"name":"address","nodeType":"ElementaryTypeName","src":"31040:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80959,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"31086:25:165","nodeType":"VariableDeclaration","scope":81055,"src":"31078:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80958,"name":"uint128","nodeType":"ElementaryTypeName","src":"31078:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80961,"mutability":"mutable","name":"_deadline","nameLocation":"31129:9:165","nodeType":"VariableDeclaration","scope":81055,"src":"31121:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80960,"name":"uint256","nodeType":"ElementaryTypeName","src":"31121:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80963,"mutability":"mutable","name":"_v","nameLocation":"31154:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31148:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80962,"name":"uint8","nodeType":"ElementaryTypeName","src":"31148:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80965,"mutability":"mutable","name":"_r","nameLocation":"31174:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31166:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31166:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80967,"mutability":"mutable","name":"_s","nameLocation":"31194:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31186:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31186:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30982:220:165"},"returnParameters":{"id":80973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80972,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81055,"src":"31235:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80971,"name":"address","nodeType":"ElementaryTypeName","src":"31235:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31234:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81101,"nodeType":"FunctionDefinition","src":"33132:448:165","nodes":[],"body":{"id":81100,"nodeType":"Block","src":"33335:245:165","nodes":[],"statements":[{"assignments":[81072,null],"declarations":[{"constant":false,"id":81072,"mutability":"mutable","name":"mirror","nameLocation":"33354:6:165","nodeType":"VariableDeclaration","scope":81100,"src":"33346:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81071,"name":"address","nodeType":"ElementaryTypeName","src":"33346:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81078,"initialValue":{"arguments":[{"id":81074,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81058,"src":"33380:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81075,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81060,"src":"33389:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33396:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81073,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"33365:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33365:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"33345:57:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81083,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81062,"src":"33453:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33485:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33477:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81084,"name":"address","nodeType":"ElementaryTypeName","src":"33477:7:165","typeDescriptions":{}}},"id":81087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33477:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"33453:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81091,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81062,"src":"33503:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33453:70:165","trueExpression":{"expression":{"id":81089,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33490:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33494:6:165","memberName":"sender","nodeType":"MemberAccess","src":"33490:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81093,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81064,"src":"33525:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33540:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":81095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33547:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":81080,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81072,"src":"33421:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81079,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"33413:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33413:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33442:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"33413:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33413:136:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81097,"nodeType":"ExpressionStatement","src":"33413:136:165"},{"expression":{"id":81098,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81072,"src":"33567:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81070,"id":81099,"nodeType":"Return","src":"33560:13:165"}]},"baseFunctions":[74952],"documentation":{"id":81056,"nodeType":"StructuredDocumentation","src":"31976:1151:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":81067,"kind":"modifierInvocation","modifierName":{"id":81066,"name":"whenNotPaused","nameLocations":["33303:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"33303:13:165"},"nodeType":"ModifierInvocation","src":"33303:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"33141:29:165","parameters":{"id":81065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81058,"mutability":"mutable","name":"_codeId","nameLocation":"33188:7:165","nodeType":"VariableDeclaration","scope":81101,"src":"33180:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33180:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81060,"mutability":"mutable","name":"_salt","nameLocation":"33213:5:165","nodeType":"VariableDeclaration","scope":81101,"src":"33205:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33205:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81062,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"33236:20:165","nodeType":"VariableDeclaration","scope":81101,"src":"33228:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81061,"name":"address","nodeType":"ElementaryTypeName","src":"33228:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81064,"mutability":"mutable","name":"_abiInterface","nameLocation":"33274:13:165","nodeType":"VariableDeclaration","scope":81101,"src":"33266:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81063,"name":"address","nodeType":"ElementaryTypeName","src":"33266:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33170:123:165"},"returnParameters":{"id":81070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81101,"src":"33326:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81068,"name":"address","nodeType":"ElementaryTypeName","src":"33326:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33325:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81207,"nodeType":"FunctionDefinition","src":"35136:1080:165","nodes":[],"body":{"id":81206,"nodeType":"Block","src":"35487:729:165","nodes":[],"statements":[{"assignments":[81128,81131],"declarations":[{"constant":false,"id":81128,"mutability":"mutable","name":"mirror","nameLocation":"35506:6:165","nodeType":"VariableDeclaration","scope":81206,"src":"35498:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81127,"name":"address","nodeType":"ElementaryTypeName","src":"35498:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81131,"mutability":"mutable","name":"router","nameLocation":"35530:6:165","nodeType":"VariableDeclaration","scope":81206,"src":"35514:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81130,"nodeType":"UserDefinedTypeName","pathNode":{"id":81129,"name":"Storage","nameLocations":["35514:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"35514:7:165"},"referencedDeclaration":74490,"src":"35514:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81137,"initialValue":{"arguments":[{"id":81133,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81104,"src":"35555:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81134,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81106,"src":"35564:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35571:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81132,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"35540:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35540:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"35497:80:165"},{"assignments":[81140],"declarations":[{"constant":false,"id":81140,"mutability":"mutable","name":"_wrappedVara","nameLocation":"35601:12:165","nodeType":"VariableDeclaration","scope":81206,"src":"35588:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":81139,"nodeType":"UserDefinedTypeName","pathNode":{"id":81138,"name":"IWrappedVara","nameLocations":["35588:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"35588:12:165"},"referencedDeclaration":75006,"src":"35588:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81146,"initialValue":{"arguments":[{"expression":{"expression":{"id":81142,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81131,"src":"35629:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35636:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"35629:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35650:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"35629:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81141,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"35616:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":81145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35616:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"35588:74:165"},{"clauses":[{"block":{"id":81161,"nodeType":"Block","src":"35774:2:165","statements":[]},"errorName":"","id":81162,"nodeType":"TryCatchClause","src":"35774:2:165"},{"block":{"id":81163,"nodeType":"Block","src":"35783:2:165","statements":[]},"errorName":"","id":81164,"nodeType":"TryCatchClause","src":"35777:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81149,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35697:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35701:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35697:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81153,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35717:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35709:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81151,"name":"address","nodeType":"ElementaryTypeName","src":"35709:7:165","typeDescriptions":{}}},"id":81154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35709:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81155,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"35724:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81156,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81114,"src":"35751:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81157,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81116,"src":"35762:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81158,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81118,"src":"35766:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81159,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81120,"src":"35770:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81147,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81140,"src":"35677:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35690:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"35677:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35677:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81165,"nodeType":"TryStatement","src":"35673:112:165"},{"assignments":[81167],"declarations":[{"constant":false,"id":81167,"mutability":"mutable","name":"success","nameLocation":"35799:7:165","nodeType":"VariableDeclaration","scope":81206,"src":"35794:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81166,"name":"bool","nodeType":"ElementaryTypeName","src":"35794:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81178,"initialValue":{"arguments":[{"expression":{"id":81170,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35835:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35839:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35835:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81174,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35855:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35847:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81172,"name":"address","nodeType":"ElementaryTypeName","src":"35847:7:165","typeDescriptions":{}}},"id":81175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35847:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81176,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"35862:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":81168,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81140,"src":"35809:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35822:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"35809:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35809:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"35794:94:165"},{"expression":{"arguments":[{"id":81180,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81167,"src":"35906:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81181,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"35915:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35915:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81179,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"35898:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35898:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81184,"nodeType":"ExpressionStatement","src":"35898:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81189,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81108,"src":"36004:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36036:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36028:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81190,"name":"address","nodeType":"ElementaryTypeName","src":"36028:7:165","typeDescriptions":{}}},"id":81193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36028:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"36004:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81197,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81108,"src":"36054:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"36004:70:165","trueExpression":{"expression":{"id":81195,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36041:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36045:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36041:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81199,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81110,"src":"36092:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36123:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":81201,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"36146:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81186,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81128,"src":"35955:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81185,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"35947:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35947:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35976:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"35947:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35947:238:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81203,"nodeType":"ExpressionStatement","src":"35947:238:165"},{"expression":{"id":81204,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81128,"src":"36203:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81126,"id":81205,"nodeType":"Return","src":"36196:13:165"}]},"baseFunctions":[74976],"documentation":{"id":81102,"nodeType":"StructuredDocumentation","src":"33586:1545:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"ee32004f","implemented":true,"kind":"function","modifiers":[{"id":81123,"kind":"modifierInvocation","modifierName":{"id":81122,"name":"whenNotPaused","nameLocations":["35455:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"35455:13:165"},"nodeType":"ModifierInvocation","src":"35455:13:165"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"35145:49:165","parameters":{"id":81121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81104,"mutability":"mutable","name":"_codeId","nameLocation":"35212:7:165","nodeType":"VariableDeclaration","scope":81207,"src":"35204:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35204:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81106,"mutability":"mutable","name":"_salt","nameLocation":"35237:5:165","nodeType":"VariableDeclaration","scope":81207,"src":"35229:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35229:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81108,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"35260:20:165","nodeType":"VariableDeclaration","scope":81207,"src":"35252:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81107,"name":"address","nodeType":"ElementaryTypeName","src":"35252:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81110,"mutability":"mutable","name":"_abiInterface","nameLocation":"35298:13:165","nodeType":"VariableDeclaration","scope":81207,"src":"35290:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81109,"name":"address","nodeType":"ElementaryTypeName","src":"35290:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81112,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"35329:25:165","nodeType":"VariableDeclaration","scope":81207,"src":"35321:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81111,"name":"uint128","nodeType":"ElementaryTypeName","src":"35321:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81114,"mutability":"mutable","name":"_deadline","nameLocation":"35372:9:165","nodeType":"VariableDeclaration","scope":81207,"src":"35364:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81113,"name":"uint256","nodeType":"ElementaryTypeName","src":"35364:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81116,"mutability":"mutable","name":"_v","nameLocation":"35397:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35391:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81115,"name":"uint8","nodeType":"ElementaryTypeName","src":"35391:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81118,"mutability":"mutable","name":"_r","nameLocation":"35417:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35409:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35409:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81120,"mutability":"mutable","name":"_s","nameLocation":"35437:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35429:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35429:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35194:251:165"},"returnParameters":{"id":81126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81207,"src":"35478:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81124,"name":"address","nodeType":"ElementaryTypeName","src":"35478:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35477:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81374,"nodeType":"FunctionDefinition","src":"36677:2151:165","nodes":[],"body":{"id":81373,"nodeType":"Block","src":"36853:1975:165","nodes":[],"statements":[{"assignments":[81224],"declarations":[{"constant":false,"id":81224,"mutability":"mutable","name":"router","nameLocation":"36879:6:165","nodeType":"VariableDeclaration","scope":81373,"src":"36863:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81223,"nodeType":"UserDefinedTypeName","pathNode":{"id":81222,"name":"Storage","nameLocations":["36863:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"36863:7:165"},"referencedDeclaration":74490,"src":"36863:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81227,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81225,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"36888:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36888:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36863:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81229,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"36916:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36923:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"36916:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36936:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"36916:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36952:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36944:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36944:7:165","typeDescriptions":{}}},"id":81235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36944:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"36916:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81237,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"36956:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36956:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81228,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"36908:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36908:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81240,"nodeType":"ExpressionStatement","src":"36908:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81241,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37154:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37161:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":74461,"src":"37154:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37173:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37154:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81268,"nodeType":"IfStatement","src":"37150:295:165","trueBody":{"id":81267,"nodeType":"Block","src":"37176:269:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":81248,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37222:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37229:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"37222:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81250,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37240:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37247:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"37240:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":81246,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"37198:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37203:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":83515,"src":"37198:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":81252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37198:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81253,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74605,"src":"37256:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37256:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37190:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37190:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81256,"nodeType":"ExpressionStatement","src":"37190:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81258,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37367:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37373:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"37367:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":81260,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37385:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37392:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"37385:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37367:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81263,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74607,"src":"37408:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37408:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37359:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37359:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81266,"nodeType":"ExpressionStatement","src":"37359:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81270,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37558:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37565:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"37558:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37586:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"37558:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":81273,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37594:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37601:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":82996,"src":"37594:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37558:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81276,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"37629:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37629:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37537:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37537:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81279,"nodeType":"ExpressionStatement","src":"37537:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81281,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37693:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37700:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"37693:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37721:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"37693:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":81284,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37734:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37741:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"37734:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37693:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81287,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74611,"src":"37757:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37757:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81280,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37685:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37685:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81290,"nodeType":"ExpressionStatement","src":"37685:97:165"},{"assignments":[81292],"declarations":[{"constant":false,"id":81292,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"37801:20:165","nodeType":"VariableDeclaration","scope":81373,"src":"37793:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37793:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81297,"initialValue":{"arguments":[{"id":81294,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37837:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81295,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37845:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81293,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81556,"src":"37824:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37824:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37793:59:165"},{"assignments":[81299],"declarations":[{"constant":false,"id":81299,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"37870:20:165","nodeType":"VariableDeclaration","scope":81373,"src":"37862:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37862:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81304,"initialValue":{"arguments":[{"id":81301,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37906:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81302,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37914:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81300,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81698,"src":"37893:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37893:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37862:59:165"},{"assignments":[81306],"declarations":[{"constant":false,"id":81306,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"37939:22:165","nodeType":"VariableDeclaration","scope":81373,"src":"37931:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37931:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81311,"initialValue":{"arguments":[{"id":81308,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37979:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81309,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37987:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81307,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"37964:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37964:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37931:63:165"},{"assignments":[81313],"declarations":[{"constant":false,"id":81313,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"38012:25:165","nodeType":"VariableDeclaration","scope":81373,"src":"38004:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38004:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81318,"initialValue":{"arguments":[{"id":81315,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38058:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81316,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38066:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81314,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82003,"src":"38040:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38040:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38004:69:165"},{"assignments":[81320],"declarations":[{"constant":false,"id":81320,"mutability":"mutable","name":"_batchHash","nameLocation":"38092:10:165","nodeType":"VariableDeclaration","scope":81373,"src":"38084:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38084:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81336,"initialValue":{"arguments":[{"expression":{"id":81323,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38143:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38150:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"38143:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81325,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38173:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38180:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38173:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":81327,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38208:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38215:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":82996,"src":"38208:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81329,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38255:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38262:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"38255:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81331,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"38282:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81332,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81299,"src":"38316:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81333,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81306,"src":"38350:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81334,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81313,"src":"38386:25:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81321,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"38105:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38110:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83359,"src":"38105:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38105:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38084:337:165"},{"expression":{"id":81343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81337,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38432:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38439:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"38432:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38460:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"38432:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81342,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38467:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38432:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81344,"nodeType":"ExpressionStatement","src":"38432:45:165"},{"expression":{"id":81352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81345,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38487:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38494:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"38487:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38515:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"38487:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81350,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38527:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38534:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38527:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38487:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":81353,"nodeType":"ExpressionStatement","src":"38487:61:165"},{"eventCall":{"arguments":[{"id":81355,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38579:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81354,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74495,"src":"38564:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38564:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81357,"nodeType":"EmitStatement","src":"38559:31:165"},{"expression":{"arguments":[{"arguments":[{"id":81361,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38665:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81362,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79489,"src":"38673:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81363,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38692:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81364,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81214,"src":"38704:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},{"id":81365,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81217,"src":"38720:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":81366,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38733:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38740:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38733:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81359,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"38622:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38627:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":83801,"src":"38622:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$83233_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":81368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38622:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81369,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74639,"src":"38782:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38782:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38601:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38601:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81372,"nodeType":"ExpressionStatement","src":"38601:220:165"}]},"baseFunctions":[74989],"documentation":{"id":81208,"nodeType":"StructuredDocumentation","src":"36222:450:165","text":" @dev Commits new batch of changes to `Router` state.\n `CodeGotValidated` event is emitted for each code in commitment.\n `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\n @param _batch The batch commitment data.\n @param _signatureType The type of signature to validate.\n @param _signatures The signatures for the batch commitment."},"functionSelector":"1622441d","implemented":true,"kind":"function","modifiers":[{"id":81220,"kind":"modifierInvocation","modifierName":{"id":81219,"name":"nonReentrant","nameLocations":["36840:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43886,"src":"36840:12:165"},"nodeType":"ModifierInvocation","src":"36840:12:165"}],"name":"commitBatch","nameLocation":"36686:11:165","parameters":{"id":81218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81211,"mutability":"mutable","name":"_batch","nameLocation":"36737:6:165","nodeType":"VariableDeclaration","scope":81374,"src":"36707:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81210,"nodeType":"UserDefinedTypeName","pathNode":{"id":81209,"name":"Gear.BatchCommitment","nameLocations":["36707:4:165","36712:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"36707:20:165"},"referencedDeclaration":83020,"src":"36707:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":81214,"mutability":"mutable","name":"_signatureType","nameLocation":"36772:14:165","nodeType":"VariableDeclaration","scope":81374,"src":"36753:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"typeName":{"id":81213,"nodeType":"UserDefinedTypeName","pathNode":{"id":81212,"name":"Gear.SignatureType","nameLocations":["36753:4:165","36758:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":83233,"src":"36753:18:165"},"referencedDeclaration":83233,"src":"36753:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":81217,"mutability":"mutable","name":"_signatures","nameLocation":"36813:11:165","nodeType":"VariableDeclaration","scope":81374,"src":"36796:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81215,"name":"bytes","nodeType":"ElementaryTypeName","src":"36796:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81216,"nodeType":"ArrayTypeName","src":"36796:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"36697:133:165"},"returnParameters":{"id":81221,"nodeType":"ParameterList","parameters":[],"src":"36853:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81477,"nodeType":"FunctionDefinition","src":"38872:934:165","nodes":[],"body":{"id":81476,"nodeType":"Block","src":"38986:820:165","nodes":[],"statements":[{"assignments":[81390],"declarations":[{"constant":false,"id":81390,"mutability":"mutable","name":"router","nameLocation":"39012:6:165","nodeType":"VariableDeclaration","scope":81476,"src":"38996:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81389,"nodeType":"UserDefinedTypeName","pathNode":{"id":81388,"name":"Storage","nameLocations":["38996:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"38996:7:165"},"referencedDeclaration":74490,"src":"38996:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81391,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"39021:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39021:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"38996:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81395,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39048:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39055:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"39048:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39068:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"39048:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39084:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39076:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39076:7:165","typeDescriptions":{}}},"id":81401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39076:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39048:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81403,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"39088:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39088:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81394,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39040:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39040:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81406,"nodeType":"ExpressionStatement","src":"39040:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":81416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81408,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39141:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39148:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39141:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39161:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"39141:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81412,"indexExpression":{"id":81411,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39167:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39141:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81413,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"39179:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39184:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"39179:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39194:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"39179:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"39141:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81417,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"39205:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39205:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39133:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39133:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81420,"nodeType":"ExpressionStatement","src":"39133:91:165"},{"assignments":[81422],"declarations":[{"constant":false,"id":81422,"mutability":"mutable","name":"salt","nameLocation":"39393:4:165","nodeType":"VariableDeclaration","scope":81476,"src":"39385:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39385:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81428,"initialValue":{"arguments":[{"id":81425,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39435:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81426,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"39444:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81423,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"39400:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39407:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"39400:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39400:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39385:65:165"},{"assignments":[81430],"declarations":[{"constant":false,"id":81430,"mutability":"mutable","name":"actorId","nameLocation":"39468:7:165","nodeType":"VariableDeclaration","scope":81476,"src":"39460:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81429,"name":"address","nodeType":"ElementaryTypeName","src":"39460:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81449,"initialValue":{"condition":{"id":81431,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81380,"src":"39478:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":81444,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39601:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39593:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81442,"name":"address","nodeType":"ElementaryTypeName","src":"39593:7:165","typeDescriptions":{}}},"id":81445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39593:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81446,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81422,"src":"39608:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81440,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82749,"src":"39567:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$82749_$","typeString":"type(library Clones)"}},"id":81441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39574:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82518,"src":"39567:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39567:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39478:135:165","trueExpression":{"arguments":[{"arguments":[{"id":81436,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39540:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39532:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81434,"name":"address","nodeType":"ElementaryTypeName","src":"39532:7:165","typeDescriptions":{}}},"id":81437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39532:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81438,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81422,"src":"39547:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81432,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82833,"src":"39501:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$82833_$","typeString":"type(library ClonesSmall)"}},"id":81433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39513:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82771,"src":"39501:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39501:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"39460:153:165"},{"expression":{"id":81458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81450,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39624:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39631:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39624:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39644:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"39624:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":81456,"indexExpression":{"id":81453,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39653:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"39624:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81457,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39664:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39624:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81459,"nodeType":"ExpressionStatement","src":"39624:47:165"},{"expression":{"id":81465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39681:35:165","subExpression":{"expression":{"expression":{"id":81460,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39681:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39688:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39681:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39701:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"39681:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81466,"nodeType":"ExpressionStatement","src":"39681:35:165"},{"eventCall":{"arguments":[{"id":81468,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39747:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81469,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39756:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81467,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"39732:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":81470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39732:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81471,"nodeType":"EmitStatement","src":"39727:37:165"},{"expression":{"components":[{"id":81472,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39783:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81473,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39792:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":81474,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39782:17:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":81387,"id":81475,"nodeType":"Return","src":"39775:24:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"38881:14:165","parameters":{"id":81381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81376,"mutability":"mutable","name":"_codeId","nameLocation":"38904:7:165","nodeType":"VariableDeclaration","scope":81477,"src":"38896:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38896:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81378,"mutability":"mutable","name":"_salt","nameLocation":"38921:5:165","nodeType":"VariableDeclaration","scope":81477,"src":"38913:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38913:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81380,"mutability":"mutable","name":"_isSmall","nameLocation":"38933:8:165","nodeType":"VariableDeclaration","scope":81477,"src":"38928:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81379,"name":"bool","nodeType":"ElementaryTypeName","src":"38928:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38895:47:165"},"returnParameters":{"id":81387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81477,"src":"38960:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81382,"name":"address","nodeType":"ElementaryTypeName","src":"38960:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81477,"src":"38969:15:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81385,"nodeType":"UserDefinedTypeName","pathNode":{"id":81384,"name":"Storage","nameLocations":["38969:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"38969:7:165"},"referencedDeclaration":74490,"src":"38969:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"38959:26:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81556,"nodeType":"FunctionDefinition","src":"39812:846:165","nodes":[],"body":{"id":81555,"nodeType":"Block","src":"39922:736:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81489,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"39940:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39947:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"39940:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39963:6:165","memberName":"length","nodeType":"MemberAccess","src":"39940:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39973:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"39940:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81494,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"39976:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39976:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81488,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39932:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39932:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81497,"nodeType":"ExpressionStatement","src":"39932:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81498,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"40017:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40024:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"40017:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40040:6:165","memberName":"length","nodeType":"MemberAccess","src":"40017:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40050:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"40017:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81508,"nodeType":"IfStatement","src":"40013:177:165","trueBody":{"id":81507,"nodeType":"Block","src":"40053:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40176:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81503,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"40166:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81487,"id":81506,"nodeType":"Return","src":"40159:20:165"}]}},{"assignments":[81513],"declarations":[{"constant":false,"id":81513,"mutability":"mutable","name":"_commitment","nameLocation":"40230:11:165","nodeType":"VariableDeclaration","scope":81555,"src":"40200:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":81512,"nodeType":"UserDefinedTypeName","pathNode":{"id":81511,"name":"Gear.ChainCommitment","nameLocations":["40200:4:165","40205:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82972,"src":"40200:20:165"},"referencedDeclaration":82972,"src":"40200:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":81518,"initialValue":{"baseExpression":{"expression":{"id":81514,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"40244:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40251:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"40244:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81517,"indexExpression":{"hexValue":"30","id":81516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40267:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40244:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40200:69:165"},{"assignments":[81520],"declarations":[{"constant":false,"id":81520,"mutability":"mutable","name":"_transitionsHash","nameLocation":"40288:16:165","nodeType":"VariableDeclaration","scope":81555,"src":"40280:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40280:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81526,"initialValue":{"arguments":[{"id":81522,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81480,"src":"40326:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81523,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40334:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40346:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":82965,"src":"40334:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":81521,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82123,"src":"40307:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":81525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40307:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"40280:78:165"},{"eventCall":{"arguments":[{"expression":{"id":81528,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40386:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40398:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":82968,"src":"40386:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81527,"name":"MBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74500,"src":"40374:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40374:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81531,"nodeType":"EmitStatement","src":"40369:34:165"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81532,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40417:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40429:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40417:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40461:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40453:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40453:7:165","typeDescriptions":{}}},"id":81537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40453:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40417:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81545,"nodeType":"IfStatement","src":"40413:127:165","trueBody":{"id":81544,"nodeType":"Block","src":"40465:75:165","statements":[{"eventCall":{"arguments":[{"expression":{"id":81540,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40496:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40508:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40496:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81539,"name":"EBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74505,"src":"40484:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40484:45:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81543,"nodeType":"EmitStatement","src":"40479:50:165"}]}},{"expression":{"arguments":[{"id":81548,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81520,"src":"40582:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81549,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40600:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40612:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":82968,"src":"40600:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81551,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40618:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40630:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40618:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81546,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"40557:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40562:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83255,"src":"40557:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40557:94:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81487,"id":81554,"nodeType":"Return","src":"40550:101:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"39821:12:165","parameters":{"id":81484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81480,"mutability":"mutable","name":"router","nameLocation":"39850:6:165","nodeType":"VariableDeclaration","scope":81556,"src":"39834:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81479,"nodeType":"UserDefinedTypeName","pathNode":{"id":81478,"name":"Storage","nameLocations":["39834:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"39834:7:165"},"referencedDeclaration":74490,"src":"39834:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81483,"mutability":"mutable","name":"_batch","nameLocation":"39888:6:165","nodeType":"VariableDeclaration","scope":81556,"src":"39858:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81482,"nodeType":"UserDefinedTypeName","pathNode":{"id":81481,"name":"Gear.BatchCommitment","nameLocations":["39858:4:165","39863:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"39858:20:165"},"referencedDeclaration":83020,"src":"39858:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"39833:62:165"},"returnParameters":{"id":81487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81556,"src":"39913:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39913:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39912:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81698,"nodeType":"FunctionDefinition","src":"40664:1402:165","nodes":[],"body":{"id":81697,"nodeType":"Block","src":"40774:1292:165","nodes":[],"statements":[{"assignments":[81568],"declarations":[{"constant":false,"id":81568,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"40792:18:165","nodeType":"VariableDeclaration","scope":81697,"src":"40784:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81567,"name":"uint256","nodeType":"ElementaryTypeName","src":"40784:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81572,"initialValue":{"expression":{"expression":{"id":81569,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"40813:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40820:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83009,"src":"40813:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40836:6:165","memberName":"length","nodeType":"MemberAccess","src":"40813:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40784:58:165"},{"assignments":[81574],"declarations":[{"constant":false,"id":81574,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"40860:23:165","nodeType":"VariableDeclaration","scope":81697,"src":"40852:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81573,"name":"uint256","nodeType":"ElementaryTypeName","src":"40852:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81578,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81575,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81568,"src":"40886:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40907:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"40886:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40852:57:165"},{"assignments":[81580],"declarations":[{"constant":false,"id":81580,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"40927:18:165","nodeType":"VariableDeclaration","scope":81697,"src":"40919:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81579,"name":"uint256","nodeType":"ElementaryTypeName","src":"40919:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81585,"initialValue":{"arguments":[{"id":81583,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81574,"src":"40964:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81581,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"40948:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40955:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"40948:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40948:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40919:69:165"},{"assignments":[81587],"declarations":[{"constant":false,"id":81587,"mutability":"mutable","name":"offset","nameLocation":"41006:6:165","nodeType":"VariableDeclaration","scope":81697,"src":"40998:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81586,"name":"uint256","nodeType":"ElementaryTypeName","src":"40998:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81589,"initialValue":{"hexValue":"30","id":81588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41015:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40998:18:165"},{"body":{"id":81688,"nodeType":"Block","src":"41076:884:165","statements":[{"assignments":[81604],"declarations":[{"constant":false,"id":81604,"mutability":"mutable","name":"_commitment","nameLocation":"41119:11:165","nodeType":"VariableDeclaration","scope":81688,"src":"41090:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":81603,"nodeType":"UserDefinedTypeName","pathNode":{"id":81602,"name":"Gear.CodeCommitment","nameLocations":["41090:4:165","41095:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":82959,"src":"41090:19:165"},"referencedDeclaration":82959,"src":"41090:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":81609,"initialValue":{"baseExpression":{"expression":{"id":81605,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"41133:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41140:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83009,"src":"41133:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81608,"indexExpression":{"id":81607,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41156:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41133:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"41090:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":81620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81611,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41198:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41205:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41198:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41218:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41198:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81616,"indexExpression":{"expression":{"id":81614,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41224:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41236:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41224:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41198:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81617,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41243:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41248:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"41243:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41258:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"41243:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"41198:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81621,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74617,"src":"41295:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41295:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"41173:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41173:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81624,"nodeType":"ExpressionStatement","src":"41173:164:165"},{"condition":{"expression":{"id":81625,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41356:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41368:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41356:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81656,"nodeType":"Block","src":"41541:81:165","statements":[{"expression":{"id":81654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"41559:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":81648,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41566:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41573:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41566:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41586:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41566:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81653,"indexExpression":{"expression":{"id":81651,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41592:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41604:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41592:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41566:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81655,"nodeType":"ExpressionStatement","src":"41559:48:165"}]},"id":81657,"nodeType":"IfStatement","src":"41352:270:165","trueBody":{"id":81647,"nodeType":"Block","src":"41375:160:165","statements":[{"expression":{"id":81638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41393:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41400:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41393:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41413:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41393:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81634,"indexExpression":{"expression":{"id":81630,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41419:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41431:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41419:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41393:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":81635,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41437:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41442:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"41437:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41452:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"41437:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"41393:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":81639,"nodeType":"ExpressionStatement","src":"41393:68:165"},{"expression":{"id":81645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41479:41:165","subExpression":{"expression":{"expression":{"id":81640,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41479:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41486:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41479:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41499:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"41479:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81646,"nodeType":"ExpressionStatement","src":"41479:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":81659,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41658:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41670:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41658:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81661,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41674:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41686:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41674:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81658,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74512,"src":"41641:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41641:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81664,"nodeType":"EmitStatement","src":"41636:56:165"},{"assignments":[81666],"declarations":[{"constant":false,"id":81666,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"41715:18:165","nodeType":"VariableDeclaration","scope":81688,"src":"41707:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41707:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81674,"initialValue":{"arguments":[{"expression":{"id":81669,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41760:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41772:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41760:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81671,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41776:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41788:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41776:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":81667,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41736:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41741:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83272,"src":"41736:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":81673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41736:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41707:87:165"},{"expression":{"arguments":[{"id":81678,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81580,"src":"41834:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81679,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81587,"src":"41854:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81680,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81666,"src":"41862:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81675,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"41808:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41815:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"41808:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41808:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81682,"nodeType":"ExpressionStatement","src":"41808:73:165"},{"id":81687,"nodeType":"UncheckedBlock","src":"41895:55:165","statements":[{"expression":{"id":81685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81683,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81587,"src":"41923:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41933:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"41923:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81686,"nodeType":"ExpressionStatement","src":"41923:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41047:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81595,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81568,"src":"41051:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41047:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81689,"initializationExpression":{"assignments":[81591],"declarations":[{"constant":false,"id":81591,"mutability":"mutable","name":"i","nameLocation":"41040:1:165","nodeType":"VariableDeclaration","scope":81689,"src":"41032:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81590,"name":"uint256","nodeType":"ElementaryTypeName","src":"41032:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81593,"initialValue":{"hexValue":"30","id":81592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41044:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"41032:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41071:3:165","subExpression":{"id":81597,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41071:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81599,"nodeType":"ExpressionStatement","src":"41071:3:165"},"nodeType":"ForStatement","src":"41027:933:165"},{"expression":{"arguments":[{"id":81692,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81580,"src":"42012:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42032:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81694,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81574,"src":"42035:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81690,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"41977:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41984:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"41977:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41977:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81566,"id":81696,"nodeType":"Return","src":"41970:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"40673:12:165","parameters":{"id":81563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81559,"mutability":"mutable","name":"router","nameLocation":"40702:6:165","nodeType":"VariableDeclaration","scope":81698,"src":"40686:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81558,"nodeType":"UserDefinedTypeName","pathNode":{"id":81557,"name":"Storage","nameLocations":["40686:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"40686:7:165"},"referencedDeclaration":74490,"src":"40686:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81562,"mutability":"mutable","name":"_batch","nameLocation":"40740:6:165","nodeType":"VariableDeclaration","scope":81698,"src":"40710:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81561,"nodeType":"UserDefinedTypeName","pathNode":{"id":81560,"name":"Gear.BatchCommitment","nameLocations":["40710:4:165","40715:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"40710:20:165"},"referencedDeclaration":83020,"src":"40710:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"40685:62:165"},"returnParameters":{"id":81566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81698,"src":"40765:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40765:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40764:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81855,"nodeType":"FunctionDefinition","src":"42108:1705:165","nodes":[],"body":{"id":81854,"nodeType":"Block","src":"42220:1593:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81710,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42238:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42245:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42238:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42263:6:165","memberName":"length","nodeType":"MemberAccess","src":"42238:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42273:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"42238:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81715,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74619,"src":"42276:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42276:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42230:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42230:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81718,"nodeType":"ExpressionStatement","src":"42230:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81719,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42319:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42326:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42319:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42344:6:165","memberName":"length","nodeType":"MemberAccess","src":"42319:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42354:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42319:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81729,"nodeType":"IfStatement","src":"42315:179:165","trueBody":{"id":81728,"nodeType":"Block","src":"42357:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42480:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81724,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42470:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42470:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81708,"id":81727,"nodeType":"Return","src":"42463:20:165"}]}},{"assignments":[81734],"declarations":[{"constant":false,"id":81734,"mutability":"mutable","name":"_commitment","nameLocation":"42536:11:165","nodeType":"VariableDeclaration","scope":81854,"src":"42504:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":81733,"nodeType":"UserDefinedTypeName","pathNode":{"id":81732,"name":"Gear.RewardsCommitment","nameLocations":["42504:4:165","42509:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":83030,"src":"42504:22:165"},"referencedDeclaration":83030,"src":"42504:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":81739,"initialValue":{"baseExpression":{"expression":{"id":81735,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42550:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42557:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42550:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81738,"indexExpression":{"hexValue":"30","id":81737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42575:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42550:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"42504:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81741,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42596:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42608:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42596:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81743,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42620:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42627:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"42620:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42596:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81746,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74621,"src":"42643:35:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42643:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42588:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42588:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81749,"nodeType":"ExpressionStatement","src":"42588:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81751,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42699:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42711:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42699:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":81753,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42724:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42731:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"42724:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42744:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"42724:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42699:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81757,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74623,"src":"42755:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42755:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81750,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42691:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42691:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81760,"nodeType":"ExpressionStatement","src":"42691:99:165"},{"assignments":[81762],"declarations":[{"constant":false,"id":81762,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"42809:18:165","nodeType":"VariableDeclaration","scope":81854,"src":"42801:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81761,"name":"uint256","nodeType":"ElementaryTypeName","src":"42801:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81769,"initialValue":{"arguments":[{"id":81765,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42846:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81766,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42854:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42866:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42854:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81763,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"42830:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42835:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84009,"src":"42830:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42830:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42801:75:165"},{"assignments":[81771],"declarations":[{"constant":false,"id":81771,"mutability":"mutable","name":"batchEraIndex","nameLocation":"42894:13:165","nodeType":"VariableDeclaration","scope":81854,"src":"42886:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81770,"name":"uint256","nodeType":"ElementaryTypeName","src":"42886:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81778,"initialValue":{"arguments":[{"id":81774,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42926:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81775,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42934:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42941:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"42934:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81772,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"42910:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42915:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84009,"src":"42910:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42910:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42886:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81780,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81762,"src":"42975:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81781,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81771,"src":"42996:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42975:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81783,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74625,"src":"43011:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43011:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42967:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42967:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81786,"nodeType":"ExpressionStatement","src":"42967:78:165"},{"assignments":[81788],"declarations":[{"constant":false,"id":81788,"mutability":"mutable","name":"_middleware","nameLocation":"43064:11:165","nodeType":"VariableDeclaration","scope":81854,"src":"43056:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81787,"name":"address","nodeType":"ElementaryTypeName","src":"43056:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81792,"initialValue":{"expression":{"expression":{"id":81789,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43078:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43085:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43078:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43099:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":82950,"src":"43078:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43056:53:165"},{"assignments":[81794],"declarations":[{"constant":false,"id":81794,"mutability":"mutable","name":"success","nameLocation":"43124:7:165","nodeType":"VariableDeclaration","scope":81854,"src":"43119:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81793,"name":"bool","nodeType":"ElementaryTypeName","src":"43119:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81810,"initialValue":{"arguments":[{"id":81801,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43202:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81802,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43215:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43227:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43215:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43237:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83033,"src":"43215:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":81805,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43246:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43258:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83027,"src":"43246:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":81807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43266:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83043,"src":"43246:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43215:62:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":81796,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43147:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43154:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43147:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43168:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"43147:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81795,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"43134:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":81799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43134:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43194:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"43134:67:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":81809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43134:144:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"43119:159:165"},{"expression":{"arguments":[{"id":81812,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81794,"src":"43296:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81813,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74627,"src":"43305:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43305:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81811,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43288:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43288:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81816,"nodeType":"ExpressionStatement","src":"43288:38:165"},{"assignments":[81818],"declarations":[{"constant":false,"id":81818,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"43345:20:165","nodeType":"VariableDeclaration","scope":81854,"src":"43337:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43337:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81833,"initialValue":{"arguments":[{"expression":{"expression":{"id":81823,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43449:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43456:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43449:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43470:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"43449:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":81826,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43483:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43495:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43483:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43505:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83033,"src":"43483:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":81829,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43513:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43525:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43513:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43535:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":83035,"src":"43513:26:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":81820,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43380:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81819,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43368:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43368:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43406:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":74119,"src":"43368:63:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":81832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43368:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43337:216:165"},{"assignments":[81835],"declarations":[{"constant":false,"id":81835,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"43572:18:165","nodeType":"VariableDeclaration","scope":81854,"src":"43564:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43564:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81845,"initialValue":{"arguments":[{"expression":{"id":81840,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43654:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43666:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83027,"src":"43654:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":81842,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43675:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43687:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"43675:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":81837,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43617:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81836,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43605:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43605:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43630:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":74130,"src":"43605:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$83046_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":81844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43605:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43564:133:165"},{"expression":{"arguments":[{"id":81848,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81818,"src":"43742:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81849,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81835,"src":"43764:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81850,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43784:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43796:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"43784:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81846,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"43715:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43720:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83294,"src":"43715:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":81852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43715:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81708,"id":81853,"nodeType":"Return","src":"43708:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"42117:14:165","parameters":{"id":81705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81701,"mutability":"mutable","name":"router","nameLocation":"42148:6:165","nodeType":"VariableDeclaration","scope":81855,"src":"42132:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81700,"nodeType":"UserDefinedTypeName","pathNode":{"id":81699,"name":"Storage","nameLocations":["42132:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"42132:7:165"},"referencedDeclaration":74490,"src":"42132:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81704,"mutability":"mutable","name":"_batch","nameLocation":"42186:6:165","nodeType":"VariableDeclaration","scope":81855,"src":"42156:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81703,"nodeType":"UserDefinedTypeName","pathNode":{"id":81702,"name":"Gear.BatchCommitment","nameLocations":["42156:4:165","42161:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"42156:20:165"},"referencedDeclaration":83020,"src":"42156:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"42131:62:165"},"returnParameters":{"id":81708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81855,"src":"42211:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42211:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"42210:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82003,"nodeType":"FunctionDefinition","src":"43880:1705:165","nodes":[],"body":{"id":82002,"nodeType":"Block","src":"43995:1590:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81868,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44013:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44020:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44013:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44041:6:165","memberName":"length","nodeType":"MemberAccess","src":"44013:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44051:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44013:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81873,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74629,"src":"44054:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44054:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81867,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44005:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44005:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81876,"nodeType":"ExpressionStatement","src":"44005:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81877,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44100:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44107:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44100:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44128:6:165","memberName":"length","nodeType":"MemberAccess","src":"44100:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44138:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44100:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81887,"nodeType":"IfStatement","src":"44096:182:165","trueBody":{"id":81886,"nodeType":"Block","src":"44141:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44264:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81882,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44254:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44254:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81866,"id":81885,"nodeType":"Return","src":"44247:20:165"}]}},{"assignments":[81892],"declarations":[{"constant":false,"id":81892,"mutability":"mutable","name":"_commitment","nameLocation":"44323:11:165","nodeType":"VariableDeclaration","scope":82002,"src":"44288:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":81891,"nodeType":"UserDefinedTypeName","pathNode":{"id":81890,"name":"Gear.ValidatorsCommitment","nameLocations":["44288:4:165","44293:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"44288:25:165"},"referencedDeclaration":82986,"src":"44288:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":81897,"initialValue":{"baseExpression":{"expression":{"id":81893,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44337:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44344:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44337:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81896,"indexExpression":{"hexValue":"30","id":81895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44365:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44337:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44288:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81899,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44386:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44398:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"44386:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":81901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44409:6:165","memberName":"length","nodeType":"MemberAccess","src":"44386:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44418:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44386:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81904,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"44421:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44421:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81898,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44378:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44378:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81907,"nodeType":"ExpressionStatement","src":"44378:65:165"},{"assignments":[81909],"declarations":[{"constant":false,"id":81909,"mutability":"mutable","name":"currentEraIndex","nameLocation":"44516:15:165","nodeType":"VariableDeclaration","scope":82002,"src":"44508:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81908,"name":"uint256","nodeType":"ElementaryTypeName","src":"44508:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81921,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81910,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44535:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44541:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44535:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81912,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44553:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44560:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"44553:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44573:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"44553:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"44535:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44534:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":81917,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44586:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44593:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44586:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44603:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"44586:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44534:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44508:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81923,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44625:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44637:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"44625:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81925,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81909,"src":"44649:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":81926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44667:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44649:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44625:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81929,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74633,"src":"44670:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44670:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44617:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44617:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81932,"nodeType":"ExpressionStatement","src":"44617:76:165"},{"assignments":[81934],"declarations":[{"constant":false,"id":81934,"mutability":"mutable","name":"nextEraStart","nameLocation":"44712:12:165","nodeType":"VariableDeclaration","scope":82002,"src":"44704:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81933,"name":"uint256","nodeType":"ElementaryTypeName","src":"44704:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81945,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81935,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44727:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44734:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"44727:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44747:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"44727:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81938,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44759:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44766:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44759:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44776:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"44759:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":81941,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44782:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44794:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"44782:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44759:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44727:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44704:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81947,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44820:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44826:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44820:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81949,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81934,"src":"44839:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81950,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44854:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44861:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44854:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44871:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"44854:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44839:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44820:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81955,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74635,"src":"44881:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44881:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81946,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44812:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44812:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81958,"nodeType":"ExpressionStatement","src":"44812:90:165"},{"assignments":[81963],"declarations":[{"constant":false,"id":81963,"mutability":"mutable","name":"_validators","nameLocation":"44984:11:165","nodeType":"VariableDeclaration","scope":82002,"src":"44960:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":81962,"nodeType":"UserDefinedTypeName","pathNode":{"id":81961,"name":"Gear.Validators","nameLocations":["44960:4:165","44965:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"44960:15:165"},"referencedDeclaration":82928,"src":"44960:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":81968,"initialValue":{"arguments":[{"id":81966,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"45025:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":81964,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"44998:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45003:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":83845,"src":"44998:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":81967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44998:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"44960:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81970,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81963,"src":"45050:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":81971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45062:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"45050:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81972,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45081:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45087:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"45081:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45050:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81975,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74637,"src":"45098:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45098:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81969,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45042:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45042:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81978,"nodeType":"ExpressionStatement","src":"45042:85:165"},{"expression":{"arguments":[{"id":81980,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81963,"src":"45220:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":81981,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45245:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45257:22:165","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82975,"src":"45245:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":81983,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45293:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45305:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"45293:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":81985,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45338:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45350:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":82980,"src":"45338:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":81987,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45397:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45409:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"45397:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":81989,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81934,"src":"45433:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81979,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82240,"src":"45190:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$82928_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$82907_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":81990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45190:265:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81991,"nodeType":"ExpressionStatement","src":"45190:265:165"},{"eventCall":{"arguments":[{"expression":{"id":81993,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45497:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45509:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"45497:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81992,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"45471:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45471:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81996,"nodeType":"EmitStatement","src":"45466:52:165"},{"expression":{"arguments":[{"id":81999,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45566:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":81997,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"45536:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45541:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83322,"src":"45536:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$82986_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":82000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45536:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81866,"id":82001,"nodeType":"Return","src":"45529:49:165"}]},"documentation":{"id":81856,"nodeType":"StructuredDocumentation","src":"43819:56:165","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"43889:17:165","parameters":{"id":81863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81859,"mutability":"mutable","name":"router","nameLocation":"43923:6:165","nodeType":"VariableDeclaration","scope":82003,"src":"43907:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81858,"nodeType":"UserDefinedTypeName","pathNode":{"id":81857,"name":"Storage","nameLocations":["43907:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"43907:7:165"},"referencedDeclaration":74490,"src":"43907:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81862,"mutability":"mutable","name":"_batch","nameLocation":"43961:6:165","nodeType":"VariableDeclaration","scope":82003,"src":"43931:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81861,"nodeType":"UserDefinedTypeName","pathNode":{"id":81860,"name":"Gear.BatchCommitment","nameLocations":["43931:4:165","43936:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"43931:20:165"},"referencedDeclaration":83020,"src":"43931:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43906:62:165"},"returnParameters":{"id":81866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82003,"src":"43986:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43986:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43985:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82123,"nodeType":"FunctionDefinition","src":"45591:1168:165","nodes":[],"body":{"id":82122,"nodeType":"Block","src":"45735:1024:165","nodes":[],"statements":[{"assignments":[82016],"declarations":[{"constant":false,"id":82016,"mutability":"mutable","name":"transitionsLen","nameLocation":"45753:14:165","nodeType":"VariableDeclaration","scope":82122,"src":"45745:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82015,"name":"uint256","nodeType":"ElementaryTypeName","src":"45745:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82019,"initialValue":{"expression":{"id":82017,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82010,"src":"45770:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45783:6:165","memberName":"length","nodeType":"MemberAccess","src":"45770:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45745:44:165"},{"assignments":[82021],"declarations":[{"constant":false,"id":82021,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"45807:19:165","nodeType":"VariableDeclaration","scope":82122,"src":"45799:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82020,"name":"uint256","nodeType":"ElementaryTypeName","src":"45799:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82025,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82022,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"45829:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":82023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45846:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45829:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45799:49:165"},{"assignments":[82027],"declarations":[{"constant":false,"id":82027,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"45866:23:165","nodeType":"VariableDeclaration","scope":82122,"src":"45858:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82026,"name":"uint256","nodeType":"ElementaryTypeName","src":"45858:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82032,"initialValue":{"arguments":[{"id":82030,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82021,"src":"45908:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82028,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"45892:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45899:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"45892:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":82031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45892:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45858:70:165"},{"assignments":[82034],"declarations":[{"constant":false,"id":82034,"mutability":"mutable","name":"offset","nameLocation":"45946:6:165","nodeType":"VariableDeclaration","scope":82122,"src":"45938:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82033,"name":"uint256","nodeType":"ElementaryTypeName","src":"45938:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82036,"initialValue":{"hexValue":"30","id":82035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45955:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45938:18:165"},{"body":{"id":82113,"nodeType":"Block","src":"46012:640:165","statements":[{"assignments":[82051],"declarations":[{"constant":false,"id":82051,"mutability":"mutable","name":"transition","nameLocation":"46056:10:165","nodeType":"VariableDeclaration","scope":82113,"src":"46026:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":82050,"nodeType":"UserDefinedTypeName","pathNode":{"id":82049,"name":"Gear.StateTransition","nameLocations":["46026:4:165","46031:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"46026:20:165"},"referencedDeclaration":83167,"src":"46026:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":82055,"initialValue":{"baseExpression":{"id":82052,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82010,"src":"46069:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82054,"indexExpression":{"id":82053,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"46082:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46069:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"46026:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82057,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82006,"src":"46107:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46114:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"46107:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46127:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"46107:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82062,"indexExpression":{"expression":{"id":82060,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46136:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46147:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"46136:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46107:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46159:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46107:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82065,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74615,"src":"46162:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46162:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46099:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46099:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82068,"nodeType":"ExpressionStatement","src":"46099:80:165"},{"assignments":[82070],"declarations":[{"constant":false,"id":82070,"mutability":"mutable","name":"value","nameLocation":"46202:5:165","nodeType":"VariableDeclaration","scope":82113,"src":"46194:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82069,"name":"uint128","nodeType":"ElementaryTypeName","src":"46194:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82072,"initialValue":{"hexValue":"30","id":82071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46210:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"46194:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82073,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46230:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46241:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"46230:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46259:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46230:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":82079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"46264:38:165","subExpression":{"expression":{"id":82077,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46265:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46276:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"46265:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"46230:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82087,"nodeType":"IfStatement","src":"46226:144:165","trueBody":{"id":82086,"nodeType":"Block","src":"46304:66:165","statements":[{"expression":{"id":82084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82070,"src":"46322:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82082,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46330:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46341:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"46330:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"46322:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82085,"nodeType":"ExpressionStatement","src":"46322:33:165"}]}},{"assignments":[82089],"declarations":[{"constant":false,"id":82089,"mutability":"mutable","name":"transitionHash","nameLocation":"46392:14:165","nodeType":"VariableDeclaration","scope":82113,"src":"46384:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46384:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82099,"initialValue":{"arguments":[{"id":82097,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46474:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":82091,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46417:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46428:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"46417:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82090,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"46409:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":82093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46409:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":82094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46437:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":74394,"src":"46409:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83167_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":82095,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82070,"src":"46467:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"46409:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83167_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46409:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46384:101:165"},{"expression":{"arguments":[{"id":82103,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46525:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82104,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82034,"src":"46550:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82105,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82089,"src":"46558:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82100,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"46499:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46506:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"46499:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":82106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46499:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82107,"nodeType":"ExpressionStatement","src":"46499:74:165"},{"id":82112,"nodeType":"UncheckedBlock","src":"46587:55:165","statements":[{"expression":{"id":82110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82108,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82034,"src":"46615:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":82109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46625:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"46615:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82111,"nodeType":"ExpressionStatement","src":"46615:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"45987:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":82042,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"45991:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45987:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82114,"initializationExpression":{"assignments":[82038],"declarations":[{"constant":false,"id":82038,"mutability":"mutable","name":"i","nameLocation":"45980:1:165","nodeType":"VariableDeclaration","scope":82114,"src":"45972:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82037,"name":"uint256","nodeType":"ElementaryTypeName","src":"45972:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82040,"initialValue":{"hexValue":"30","id":82039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45984:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45972:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"46007:3:165","subExpression":{"id":82044,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"46007:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82046,"nodeType":"ExpressionStatement","src":"46007:3:165"},"nodeType":"ForStatement","src":"45967:685:165"},{"expression":{"arguments":[{"id":82117,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46704:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":82118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46729:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":82119,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82021,"src":"46732:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82115,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"46669:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":82116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46676:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"46669:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":82120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46669:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82014,"id":82121,"nodeType":"Return","src":"46662:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"45600:18:165","parameters":{"id":82011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82006,"mutability":"mutable","name":"router","nameLocation":"45635:6:165","nodeType":"VariableDeclaration","scope":82123,"src":"45619:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82005,"nodeType":"UserDefinedTypeName","pathNode":{"id":82004,"name":"Storage","nameLocations":["45619:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"45619:7:165"},"referencedDeclaration":74490,"src":"45619:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":82010,"mutability":"mutable","name":"_transitions","nameLocation":"45675:12:165","nodeType":"VariableDeclaration","scope":82123,"src":"45643:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82008,"nodeType":"UserDefinedTypeName","pathNode":{"id":82007,"name":"Gear.StateTransition","nameLocations":["45643:4:165","45648:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"45643:20:165"},"referencedDeclaration":83167,"src":"45643:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82009,"nodeType":"ArrayTypeName","src":"45643:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"45618:70:165"},"returnParameters":{"id":82014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82123,"src":"45722:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45722:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45721:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82240,"nodeType":"FunctionDefinition","src":"46765:1539:165","nodes":[],"body":{"id":82239,"nodeType":"Block","src":"47086:1218:165","nodes":[],"statements":[{"condition":{"id":82141,"name":"_hasAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82128,"src":"47100:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82170,"nodeType":"IfStatement","src":"47096:752:165","trueBody":{"id":82169,"nodeType":"Block","src":"47125:723:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":82145,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47530:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47554:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"47530:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":82147,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47557:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47581:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"47557:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82143,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"47507:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":82144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47513:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":40634,"src":"47507:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":82149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47507:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82150,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74552,"src":"47601:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47601:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82142,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47482:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47482:166:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82153,"nodeType":"ExpressionStatement","src":"47482:166:165"},{"expression":{"id":82158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82154,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47662:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47674:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"47662:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82157,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47696:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"47662:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":82159,"nodeType":"ExpressionStatement","src":"47662:57:165"},{"expression":{"id":82167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82160,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47733:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47745:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"47733:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82165,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82133,"src":"47802:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":82163,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"47788:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84555_$","typeString":"type(library SSTORE2)"}},"id":82164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47796:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":84411,"src":"47788:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":82166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47788:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47733:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82168,"nodeType":"ExpressionStatement","src":"47733:104:165"}]}},{"body":{"id":82198,"nodeType":"Block","src":"47911:114:165","statements":[{"assignments":[82184],"declarations":[{"constant":false,"id":82184,"mutability":"mutable","name":"_validator","nameLocation":"47933:10:165","nodeType":"VariableDeclaration","scope":82198,"src":"47925:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82183,"name":"address","nodeType":"ElementaryTypeName","src":"47925:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82189,"initialValue":{"baseExpression":{"expression":{"id":82185,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47946:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47958:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"47946:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82188,"indexExpression":{"id":82187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47963:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47946:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47925:40:165"},{"expression":{"id":82196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82190,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47979:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47991:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"47979:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82194,"indexExpression":{"id":82192,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82184,"src":"47995:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47979:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":82195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48009:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"47979:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82197,"nodeType":"ExpressionStatement","src":"47979:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82175,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47877:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":82176,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47881:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47893:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"47881:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47898:6:165","memberName":"length","nodeType":"MemberAccess","src":"47881:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47877:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82199,"initializationExpression":{"assignments":[82172],"declarations":[{"constant":false,"id":82172,"mutability":"mutable","name":"i","nameLocation":"47870:1:165","nodeType":"VariableDeclaration","scope":82199,"src":"47862:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82171,"name":"uint256","nodeType":"ElementaryTypeName","src":"47862:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82174,"initialValue":{"hexValue":"30","id":82173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47874:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47862:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47906:3:165","subExpression":{"id":82180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47906:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82182,"nodeType":"ExpressionStatement","src":"47906:3:165"},"nodeType":"ForStatement","src":"47857:168:165"},{"body":{"id":82225,"nodeType":"Block","src":"48086:111:165","statements":[{"assignments":[82212],"declarations":[{"constant":false,"id":82212,"mutability":"mutable","name":"_validator","nameLocation":"48108:10:165","nodeType":"VariableDeclaration","scope":82225,"src":"48100:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82211,"name":"address","nodeType":"ElementaryTypeName","src":"48100:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82216,"initialValue":{"baseExpression":{"id":82213,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48121:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82215,"indexExpression":{"id":82214,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48136:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"48121:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48100:38:165"},{"expression":{"id":82223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82217,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48152:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48164:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"48152:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82221,"indexExpression":{"id":82219,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82212,"src":"48168:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"48152:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":82222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48182:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"48152:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82224,"nodeType":"ExpressionStatement","src":"48152:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82204,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48054:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82205,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48058:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48073:6:165","memberName":"length","nodeType":"MemberAccess","src":"48058:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48054:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82226,"initializationExpression":{"assignments":[82201],"declarations":[{"constant":false,"id":82201,"mutability":"mutable","name":"i","nameLocation":"48047:1:165","nodeType":"VariableDeclaration","scope":82226,"src":"48039:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82200,"name":"uint256","nodeType":"ElementaryTypeName","src":"48039:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82203,"initialValue":{"hexValue":"30","id":82202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48051:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"48039:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"48081:3:165","subExpression":{"id":82208,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48081:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82210,"nodeType":"ExpressionStatement","src":"48081:3:165"},"nodeType":"ForStatement","src":"48034:163:165"},{"expression":{"id":82231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82227,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48206:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48218:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"48206:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82230,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48225:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"48206:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82232,"nodeType":"ExpressionStatement","src":"48206:33:165"},{"expression":{"id":82237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82233,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48249:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48261:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"48249:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82236,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82138,"src":"48280:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48249:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82238,"nodeType":"ExpressionStatement","src":"48249:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"46774:16:165","parameters":{"id":82139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82126,"mutability":"mutable","name":"_validators","nameLocation":"46824:11:165","nodeType":"VariableDeclaration","scope":82240,"src":"46800:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82125,"nodeType":"UserDefinedTypeName","pathNode":{"id":82124,"name":"Gear.Validators","nameLocations":["46800:4:165","46805:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"46800:15:165"},"referencedDeclaration":82928,"src":"46800:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":82128,"mutability":"mutable","name":"_hasAggregatedPublicKey","nameLocation":"46850:23:165","nodeType":"VariableDeclaration","scope":82240,"src":"46845:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82127,"name":"bool","nodeType":"ElementaryTypeName","src":"46845:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":82131,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"46915:23:165","nodeType":"VariableDeclaration","scope":82240,"src":"46883:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82130,"nodeType":"UserDefinedTypeName","pathNode":{"id":82129,"name":"Gear.AggregatedPublicKey","nameLocations":["46883:4:165","46888:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"46883:24:165"},"referencedDeclaration":82907,"src":"46883:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82133,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"46961:34:165","nodeType":"VariableDeclaration","scope":82240,"src":"46948:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82132,"name":"bytes","nodeType":"ElementaryTypeName","src":"46948:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82136,"mutability":"mutable","name":"_newValidators","nameLocation":"47022:14:165","nodeType":"VariableDeclaration","scope":82240,"src":"47005:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82134,"name":"address","nodeType":"ElementaryTypeName","src":"47005:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82135,"nodeType":"ArrayTypeName","src":"47005:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82138,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"47054:17:165","nodeType":"VariableDeclaration","scope":82240,"src":"47046:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82137,"name":"uint256","nodeType":"ElementaryTypeName","src":"47046:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46790:287:165"},"returnParameters":{"id":82140,"nodeType":"ParameterList","parameters":[],"src":"47086:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82253,"nodeType":"FunctionDefinition","src":"48310:192:165","nodes":[],"body":{"id":82252,"nodeType":"Block","src":"48375:127:165","nodes":[],"statements":[{"assignments":[82247],"declarations":[{"constant":false,"id":82247,"mutability":"mutable","name":"slot","nameLocation":"48393:4:165","nodeType":"VariableDeclaration","scope":82252,"src":"48385:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82246,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48385:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82250,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82248,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82265,"src":"48400:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48400:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48385:32:165"},{"AST":{"nativeSrc":"48453:43:165","nodeType":"YulBlock","src":"48453:43:165","statements":[{"nativeSrc":"48467:19:165","nodeType":"YulAssignment","src":"48467:19:165","value":{"name":"slot","nativeSrc":"48482:4:165","nodeType":"YulIdentifier","src":"48482:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"48467:11:165","nodeType":"YulIdentifier","src":"48467:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82244,"isOffset":false,"isSlot":true,"src":"48467:11:165","suffix":"slot","valueSize":1},{"declaration":82247,"isOffset":false,"isSlot":false,"src":"48482:4:165","valueSize":1}],"flags":["memory-safe"],"id":82251,"nodeType":"InlineAssembly","src":"48428:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"48319:7:165","parameters":{"id":82241,"nodeType":"ParameterList","parameters":[],"src":"48326:2:165"},"returnParameters":{"id":82245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82244,"mutability":"mutable","name":"router","nameLocation":"48367:6:165","nodeType":"VariableDeclaration","scope":82253,"src":"48351:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82243,"nodeType":"UserDefinedTypeName","pathNode":{"id":82242,"name":"Storage","nameLocations":["48351:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"48351:7:165"},"referencedDeclaration":74490,"src":"48351:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"48350:24:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82265,"nodeType":"FunctionDefinition","src":"48508:128:165","nodes":[],"body":{"id":82264,"nodeType":"Block","src":"48566:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82260,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79486,"src":"48610:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82258,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48583:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48595:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48583:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48583:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48624:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48583:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82257,"id":82263,"nodeType":"Return","src":"48576:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"48517:15:165","parameters":{"id":82254,"nodeType":"ParameterList","parameters":[],"src":"48532:2:165"},"returnParameters":{"id":82257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82265,"src":"48557:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48557:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48556:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82293,"nodeType":"FunctionDefinition","src":"48642:240:165","nodes":[],"body":{"id":82292,"nodeType":"Block","src":"48710:172:165","nodes":[],"statements":[{"assignments":[82273],"declarations":[{"constant":false,"id":82273,"mutability":"mutable","name":"slot","nameLocation":"48728:4:165","nodeType":"VariableDeclaration","scope":82292,"src":"48720:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48720:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82278,"initialValue":{"arguments":[{"id":82276,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82267,"src":"48762:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82274,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"48735:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":82275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48750:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"48735:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48735:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48720:52:165"},{"expression":{"id":82286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82282,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79486,"src":"48809:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82279,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48782:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48794:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48782:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48782:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48823:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48782:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82285,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82273,"src":"48831:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48782:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82287,"nodeType":"ExpressionStatement","src":"48782:53:165"},{"eventCall":{"arguments":[{"id":82289,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82273,"src":"48870:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82288,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74541,"src":"48851:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48851:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82291,"nodeType":"EmitStatement","src":"48846:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":82270,"kind":"modifierInvocation","modifierName":{"id":82269,"name":"onlyOwner","nameLocations":["48700:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"48700:9:165"},"nodeType":"ModifierInvocation","src":"48700:9:165"}],"name":"_setStorageSlot","nameLocation":"48651:15:165","parameters":{"id":82268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82267,"mutability":"mutable","name":"namespace","nameLocation":"48681:9:165","nodeType":"VariableDeclaration","scope":82293,"src":"48667:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82266,"name":"string","nodeType":"ElementaryTypeName","src":"48667:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48666:25:165"},"returnParameters":{"id":82271,"nodeType":"ParameterList","parameters":[],"src":"48710:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82352,"nodeType":"FunctionDefinition","src":"49030:396:165","nodes":[],"body":{"id":82351,"nodeType":"Block","src":"49071:355:165","nodes":[],"statements":[{"assignments":[82301],"declarations":[{"constant":false,"id":82301,"mutability":"mutable","name":"router","nameLocation":"49097:6:165","nodeType":"VariableDeclaration","scope":82351,"src":"49081:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82300,"nodeType":"UserDefinedTypeName","pathNode":{"id":82299,"name":"Storage","nameLocations":["49081:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"49081:7:165"},"referencedDeclaration":74490,"src":"49081:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82304,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82302,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"49106:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49106:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"49081:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82306,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82301,"src":"49133:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49140:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"49133:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49153:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"49133:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49169:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":82310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49161:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49161:7:165","typeDescriptions":{}}},"id":82312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49161:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"49133:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82314,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"49173:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49173:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82305,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49125:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49125:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82317,"nodeType":"ExpressionStatement","src":"49125:82:165"},{"assignments":[82319],"declarations":[{"constant":false,"id":82319,"mutability":"mutable","name":"value","nameLocation":"49226:5:165","nodeType":"VariableDeclaration","scope":82351,"src":"49218:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82318,"name":"uint128","nodeType":"ElementaryTypeName","src":"49218:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82325,"initialValue":{"arguments":[{"expression":{"id":82322,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49242:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49246:5:165","memberName":"value","nodeType":"MemberAccess","src":"49242:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49234:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":82320,"name":"uint128","nodeType":"ElementaryTypeName","src":"49234:7:165","typeDescriptions":{}}},"id":82324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49234:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"49218:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82327,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82319,"src":"49270:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49278:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49270:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82330,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74641,"src":"49281:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49281:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49262:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49262:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82333,"nodeType":"ExpressionStatement","src":"49262:39:165"},{"assignments":[82335],"declarations":[{"constant":false,"id":82335,"mutability":"mutable","name":"actorId","nameLocation":"49320:7:165","nodeType":"VariableDeclaration","scope":82351,"src":"49312:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82334,"name":"address","nodeType":"ElementaryTypeName","src":"49312:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82338,"initialValue":{"expression":{"id":82336,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49330:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49334:6:165","memberName":"sender","nodeType":"MemberAccess","src":"49330:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"49312:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82340,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82301,"src":"49358:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49365:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"49358:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49378:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"49358:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82344,"indexExpression":{"id":82343,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82335,"src":"49387:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49358:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49399:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49358:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82347,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74615,"src":"49402:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49402:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49350:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49350:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82350,"nodeType":"ExpressionStatement","src":"49350:69:165"}]},"documentation":{"id":82294,"nodeType":"StructuredDocumentation","src":"48888:137:165","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":82297,"kind":"modifierInvocation","modifierName":{"id":82296,"name":"whenNotPaused","nameLocations":["49057:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"49057:13:165"},"nodeType":"ModifierInvocation","src":"49057:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82295,"nodeType":"ParameterList","parameters":[],"src":"49037:2:165"},"returnParameters":{"id":82298,"nodeType":"ParameterList","parameters":[],"src":"49071:0:165"},"scope":82353,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79470,"name":"IRouter","nameLocations":["1576:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"1576:7:165"},"id":79471,"nodeType":"InheritanceSpecifier","src":"1576:7:165"},{"baseName":{"id":79472,"name":"OwnableUpgradeable","nameLocations":["1589:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1589:18:165"},"id":79473,"nodeType":"InheritanceSpecifier","src":"1589:18:165"},{"baseName":{"id":79474,"name":"PausableUpgradeable","nameLocations":["1613:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"1613:19:165"},"id":79475,"nodeType":"InheritanceSpecifier","src":"1613:19:165"},{"baseName":{"id":79476,"name":"EIP712Upgradeable","nameLocations":["1638:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":44416,"src":"1638:17:165"},"id":79477,"nodeType":"InheritanceSpecifier","src":"1638:17:165"},{"baseName":{"id":79478,"name":"NoncesUpgradeable","nameLocations":["1661:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":43698,"src":"1661:17:165"},"id":79479,"nodeType":"InheritanceSpecifier","src":"1661:17:165"},{"baseName":{"id":79480,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1684:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"1684:35:165"},"id":79481,"nodeType":"InheritanceSpecifier","src":"1684:35:165"},{"baseName":{"id":79482,"name":"UUPSUpgradeable","nameLocations":["1725:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1725:15:165"},"id":79483,"nodeType":"InheritanceSpecifier","src":"1725:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82353,46243,44833,43943,43698,44416,44823,43858,42322,43484,42590,74990],"name":"Router","nameLocation":"1562:6:165","scope":82354,"usedErrors":[42158,42163,42339,42342,43601,43737,43740,43875,45427,45440,46100,46105,47372,48774,50701,50706,50711,53880,74544,74547,74550,74552,74555,74558,74561,74564,74567,74570,74577,74586,74591,74598,74601,74603,74605,74607,74609,74611,74613,74615,74617,74619,74621,74623,74625,74627,74629,74631,74633,74635,74637,74639,74641,82883,82886,82889,82892,82895,82898,82901],"usedEvents":[42169,42347,43729,43734,44781,44803,74495,74500,74505,74512,74517,74522,74529,74536,74541]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":165} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"merkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]},{"name":"head","type":"bytes32","internalType":"bytes32"},{"name":"lastAdvancedEthBlock","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"hasAggregatedPublicKey","type":"bool","internalType":"bool"},{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"name":"_signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterfaceAndExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v","type":"uint8","internalType":"uint8"},{"name":"_r","type":"bytes32","internalType":"bytes32"},{"name":"_s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v","type":"uint8","internalType":"uint8"},{"name":"_r","type":"bytes32","internalType":"bytes32"},{"name":"_s","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v","type":"uint8","internalType":"uint8"},{"name":"_r","type":"bytes32","internalType":"bytes32"},{"name":"_s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidationBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationExtraFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationOnBehalf","inputs":[{"name":"_requester","type":"address","internalType":"address"},{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_blobHashes","type":"bytes32[]","internalType":"bytes32[]"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v1","type":"uint8","internalType":"uint8"},{"name":"_r1","type":"bytes32","internalType":"bytes32"},{"name":"_s1","type":"bytes32","internalType":"bytes32"},{"name":"_v2","type":"uint8","internalType":"uint8"},{"name":"_r2","type":"bytes32","internalType":"bytes32"},{"name":"_s2","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationBaseFee","inputs":[{"name":"newBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationExtraFee","inputs":[{"name":"newExtraFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"},{"name":"maxValidators","type":"uint16","internalType":"uint16"},{"name":"requestCodeValidationBaseFee","type":"uint256","internalType":"uint256"},{"name":"requestCodeValidationExtraFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BatchCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"EBCommitted","inputs":[{"name":"ethBlockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"MBCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidBlobHash","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"providedBlobHash","type":"bytes32","internalType":"bytes32"},{"name":"expectedBlobHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidBlobHashesLength","inputs":[{"name":"providedLength","type":"uint256","internalType":"uint256"},{"name":"expectedLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"requester","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020615b335f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051615a6c90816100c78239608051818181612bec0152612c800152f35b6001600160401b0319166001600160401b039081175f516020615b335f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613abc565b5f516020615a0c5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e71461336e575080630b9737ce1461333b5780630c18d277146132705780630d91bf2a146130a257806311bec80d1461306f578063188509e91461304157806328e24b3d146130135780633644e51514612ff85780633683c4d214612f3b5780633bd109fa14612eec5780633d43b41814612e985780633f4ba83a14612e185780634f1ef28614612c4057806352d1902d14612bd957806353f7fd48146122305780635c975abb146122015780636c2eb35014611cb2578063715018a614611c4957806371a8cf2d14611c1b5780637ecebe0014611bc357806382bdeaad14611aab5780638456cb5914611a3857806384b0196e1461197e57806384d22a4f1461192057806388f50cf0146118e75780638b1edf1e146118885780638c4ace6a146117285780638da5cb5b146116f35780638f381dbe146116ad5780639067088e1461166457806396a2ddfa146116365780639eb939a8146115df578063a5d53a441461155f578063a90fbdd7146110c9578063ad3cb1cc14611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26133c4565b60036102fd5f516020615a0c5f395f51905f5254429061549c565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615a0c5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796133c4565b610381613a89565b613a18565b80f35b50346103205780600319360112610320576020601f5f516020615a0c5f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26133c4565b602435906044356001600160401b03811161080b576103f5903690600401613507565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613abc565b8749156107f4575f516020615a0c5f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f198101835282613483565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e082613483565b51902061056161542d565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615760565b909291926157e2565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613a0b565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e88183613483565b810190613649565b5f610677565b503d6106de565b6040513d86823e3d90fd5b8161071591949394613483565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b8049806107648386866137f2565b35146107718386866137f2565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd906139fd565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a613398565b6108326133ae565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613abc565b61086b602435600435613ae3565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016135ff565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b610984838092613483565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e88183613483565b5f610906565b6040513d88823e3d90fd5b816109ea91613483565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615a0c5f395f51905f525460086004610a28428461549c565b0154910154906001600160801b038260801c921690615402565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615a0c5f395f51905f5254429061549c565b0154604051908152f35b50346103205780600319360112610320575f516020615a0c5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615a0c5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615a0c5f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615a0c5f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f516020615a0c5f395f51905f5254429061549c565b016139aa565b60405191829160208352602083019061357c565b0390f35b5034610320578060031936011261032057604051610bd58161344c565b610bdd6138d8565b8152604051610beb81613431565b5f8152602081015f90526020820152610c026138d8565b6040820152610c0f613977565b6060820152604051610c2081613431565b5f80825260208201526080820152610c366138d8565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615a0c5f395f51905f5254610c71613977565b50610c7e6009820161570b565b90610c8b600f820161570b565b60088201549260405193610c9e85613468565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce98761344c565b604051610cf581613402565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613431565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613402565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e6015890161382a565b9760808a01988952601601610db2906138f6565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb3916135b8565b90606001519061027f198a8203016102e08b0152610ed0916135b8565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615a0c5f395f51905f52540160043582528452205416610f816040518092613537565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb4903690600401613507565b905f516020615a0c5f395f51905f525490610fce83613787565b91610fdc6040519384613483565b838352610fe884613787565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d61105860019385886137f2565b613858565b828060a01b03165f528360205260405f20546110798288613816565b5201610ffc565b503461032057806003193601126103205750610bb46040516110a3604082613483565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613558565b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57611126903690600401613507565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6115505760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615a0c5f395f51905f525490600182015415611541578154156114e5575b600382015460446004350135036114d65765ffffffffffff60048301541665ffffffffffff6111c560246004350161392c565b16106114c8576111da6004356004018361447e565b926111ef60a4600435016004356004016148f0565b808096925060051b04602014851517156114b45761120f8560051b6154f7565b8695865b81881061137f5750611345965060051b90209061123560043560040186614932565b61124460043560040187614d10565b9061125360246004350161392c565b9361126260646004350161391e565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c781526112c760e782613483565b5190209283600382015565ffffffffffff6112e660246004350161392c565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff61133a60246004350161392c565b169360243591615199565b1561137057807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b61139360a4600435016004356004016148f0565b8910156114a0578860061b8101358a526019880160205260ff60408b20541660038110156107d157600103611491576001916020916114568b8b8e868360061b860101926113e084614925565b156114725760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054611412906139fd565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661144184614925565b1515926040519060061b8701358152a2614925565b908b60061b01358c52825360218b208186015201970196611213565b60409260199160061b87013583520187522060ff198154169055611415565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b6115026114f660646004350161391e565b600435600401356143d4565b156115325765ffffffffffff61151c60246004350161392c565b16421161119257631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205780600319360112610320575f516020615a0c5f395f51905f52546001600160a01b039060029061159690429061549c565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c8082520190604082019182604052602083526115da603f19926060830190613558565b030190f35b50346103205780600319360112610320576115f86138d8565b50606061161560165f516020615a0c5f395f51905f5254016138f6565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615a0c5f395f51905f52540154604051908152f35b50346103205760203660031901126103205761167e6133c4565b601a5f516020615a0c5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b0382116103205760206116e96116e33660048601613507565b9061386c565b6040519015158152f35b50346103205780600319360112610320575f5160206159ac5f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff8116810361072557611752613abc565b824915611879575f516020615a0c5f395f51905f52546001810154156115415760198101918385528260205260ff604086205416600381101561186557611856576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611841575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b8161184b91613483565b61072557825f61180c565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615a0c5f395f51905f5254600181019081546118d8576002015463ffffffff16409081156118c9575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615a0c5f395f51905f5254600601546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057611939613661565b50604061195660155f516020615a0c5f395f51905f52540161382a565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320576119dc9061199b61425a565b906119a4614327565b9060206119ea604051936119b88386613483565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613558565b908682036040880152613558565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a2157505050500390f35b835185528695509381019392810192600101611a12565b5034610320578060031936011261032057611a51613a89565b611a59613abc565b600160ff195f516020615a2c5f395f51905f525416175f516020615a2c5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e57611adc903690600401613507565b905f516020615a0c5f395f51905f525490611af683613787565b91611b046040519384613483565b838352611b1084613787565b602084019490601f19013686376019869201915b818110611b7957868587604051928392602084019060208552518091526040840192915b818110611b56575050500390f35b9193509160208082611b6b6001948851613537565b019401910191849392611b48565b611b848183866137f2565b3587528260205260ff604088205416611b9d8287613816565b6003821015611baf5752600101611b24565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b03611beb6133c4565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615a0c5f395f51905f52540154604051908152f35b5034610320578060031936011261032057611c62613a89565b5f5160206159ac5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610320578060031936011261032057611ccb613a89565b5f516020615a4c5f395f51905f525460ff8160401c169081156121ec575b506121dd575f516020615a4c5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f5160206159ac5f395f51905f5254611d43906001600160a01b0316611d3b6154b8565b6103816154b8565b611d4b613697565b90611d546136c4565b90611d5d6154b8565b611d656154b8565b82516001600160401b0381116120e057611d8c5f51602061598c5f395f51905f5254614222565b601f8111612179575b506020601f82116001146120ff578293948293926120f4575b50508160011b915f199060031b1c1916175f51602061598c5f395f51905f52555b81516001600160401b0381116120e057611df65f5160206159cc5f395f51905f5254614222565b601f8111612073575b50602092601f8211600114611ffa57928293829392611fef575b50508160011b915f199060031b1c1916175f5160206159cc5f395f51905f52555b5f516020615a0c5f395f51905f5254611e5161418a565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611e9f81613431565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611eca428461549c565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611f1b918491611fc0575b5061373b565b90816103e8026103e881048303611fac57601e820155816101f402916101f4830403611f9857601f015560ff60401b195f516020615a4c5f395f51905f5254165f516020615a4c5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611fe2915060203d602011611fe8575b611fda8183613483565b810190613722565b5f611f15565b503d611fd0565b015190505f80611e19565b601f198216935f5160206159cc5f395f51905f52845280842091845b86811061205b5750836001959610612043575b505050811b015f5160206159cc5f395f51905f5255611e3a565b01515f1960f88460031b161c191690555f8080612029565b91926020600181928685015181550194019201612016565b81811115611dff575f5160206159cc5f395f51905f5283526120d2907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c90602085106120d8575b601f82910160051c039101614207565b5f611dff565b8591506120c2565b634e487b7160e01b82526041600452602482fd5b015190505f80611dae565b5f51602061598c5f395f51905f52835280832090601f198316845b81811061216157509583600195969710612149575b505050811b015f51602061598c5f395f51905f5255611dcf565b01515f1960f88460031b161c191690555f808061212f565b9192602060018192868b01518155019401920161211a565b81811115611d95575f51602061598c5f395f51905f5283526121d7907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c90602085106120d857601f82910160051c039101614207565b5f611d95565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611ce9565b5034610320578060031936011261032057602060ff5f516020615a2c5f395f51905f5254166040519015158152f35b5034610320576101603660031901126103205761224b6133c4565b906024356001600160a01b0381169081900361098e57612269613398565b926122726133ae565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b038111610807576122e6903690600401613507565b9590935f516020615a4c5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612bd1575b6001149081612bc7575b159081612bbe575b50612baf57612368908a60016001600160401b03195f516020615a4c5f395f51905f525416175f516020615a4c5f395f51905f5255612b7f575b611d3b6154b8565b6123706154b8565b612378613697565b6123806136c4565b906123896154b8565b6123916154b8565b8051906001600160401b038211612b6b5781908b6123bc5f51602061598c5f395f51905f5254614222565b601f8111612b1a575b5050602090601f8311600114612a9e578c92612a93575b50508160011b915f199060031b1c1916175f51602061598c5f395f51905f52555b8051906001600160401b038211612a7f5781906124275f5160206159cc5f395f51905f5254614222565b601f8111612a10575b50602090601f8311600114612994578b92612989575b50508160011b915f199060031b1c1916175f5160206159cc5f395f51905f52555b61246f6154b8565b421561297a57811561296b578181111561295c57600a61248f83836136e3565b0483101561294d576040809a81516124a78382613483565b60178152602081017f726f757465722e73746f726167652e526f75746572563100000000000000000081526124da613a89565b5f1991519020018a5260ff1960208b2016809e815f516020615a0c5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a161252f61418a565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff19161717905583519061257982613402565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d01556125ed613661565b5089516125f981613431565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061263e81613402565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa908115612943579061269e918691611fc0575061373b565b806103e8026103e8810482036114b457601e8a0155806101f402906101f482040361292f57906126fe91601f8a01556126f68751986126dc8a613431565b60e4358a5260208a019461010435865260243692016134a4565b93369161379e565b958051825170014551231950b75fc4402da1732fc9bebe198210918261291e575b50501561290f5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156129025752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156127c75782845260208085208201546001600160a01b03165f90815290869052869020805460ff1916905560010161278f565b509195949094865b835181101561280f576001906001600160a01b036127ed8287613816565b5116828060a01b03165f5285602052865f208260ff19825416179055016127cf565b50925092938151916001600160401b0383116128ee57600160401b83116128ee5760209082548484558085106128d3575b500190865260208620865b8381106128b65750505050600e42910155612864575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615a4c5f395f51905f5254165f516020615a4c5f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161284b565b6128e890848a528580858c2001910390614207565b5f612840565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6129289250615968565b5f8061271f565b634e487b7160e01b85526011600452602485fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f80612446565b5f5160206159cc5f395f51905f528c52818c209250601f1984168c5b8181106129f857509084600195949392106129e0575b505050811b015f5160206159cc5f395f51905f5255612467565b01515f1960f88460031b161c191690555f80806129c6565b929360206001819287860151815501950193016129b0565b82811115612430575f5160206159cc5f395f51905f528c52612a71907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e60208710612a77575b50601f82910160051c039101614207565b5f612430565b91508e612a60565b634e487b7160e01b8a52604160045260248afd5b015190505f806123dc565b5f51602061598c5f395f51905f528d52818d209250601f1984168d5b818110612b025750908460019594939210612aea575b505050811b015f51602061598c5f395f51905f52556123fd565b01515f1960f88460031b161c191690555f8080612ad0565b92936020600181928786015181550195019301612aba565b838111156123c5575f51602061598c5f395f51905f52612b5c92528d6020812091601f860160051c9160208710612b635750601f82910160051c039101614207565b8b5f6123c5565b91508f612a60565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615a4c5f395f51905f525416175f516020615a4c5f395f51905f5255612360565b63f92ee8a960e01b8952600489fd5b9050155f612326565b303b15915061231e565b8b9150612314565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612c315760206040515f5160206159ec5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261032057612c556133c4565b906024356001600160401b03811161098e57612c759036906004016134e9565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612df6575b50612de757612cb8613a89565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596612daf575b50612cfd57634c9c8ce360e01b84526004839052602484fd5b9091845f5160206159ec5f395f51905f528103612d9d5750823b15612d8b575f5160206159ec5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115612d7257612d6e916158a2565b5080f35b505034612d7c5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612ddf575b81612dcb60209383613483565b81010312612ddb5751945f612ce4565b5f80fd5b3d9150612dbe565b63703e46dd60e11b8252600482fd5b5f5160206159ec5f395f51905f52546001600160a01b0316141590505f612cab565b5034610320578060031936011261032057612e31613a89565b5f516020615a2c5f395f51905f525460ff811615612e895760ff19165f516020615a2c5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612eb26133c4565b612eba613a89565b5f516020615a0c5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612f05613661565b506040612f29612f245f516020615a0c5f395f51905f5254429061549c565b613679565b60208251918051835201516020820152f35b503461032057606036600319011261032057612f55613398565b612f5d613abc565b612f6b602435600435614092565b506001600160a01b0390811691908116612ff35750335b5f516020615a0c5f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612f82565b50346103205780600319360112610320576020610a4261542d565b5034610320578060031936011261032057602060015f516020615a0c5f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615a0c5f395f51905f52540154604051908152f35b503461032057602036600319011261032057613089613a89565b600435601e5f516020615a0c5f395f51905f5254015580f35b503461032057610100366003190112610320576130bd613398565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576130e8613abc565b6130f6602435600435614092565b6006015490936001600160a01b0390911691823b1561080b5761313d8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016135ff565b038183885af161325b575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613250578591613231575b5015613222576001600160a01b039081169290811661321c575033905b5f516020615a0c5f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b906131ad565b631e4e7d0960e21b8452600484fd5b61324a915060203d6020116106f6576106e88183613483565b5f613190565b6040513d87823e3d90fd5b8161326591613483565b61072557825f613148565b34612ddb576080366003190112612ddb57613289613398565b6132916133ae565b9061329a613abc565b6132a8602435600435613ae3565b506001600160a01b0390811691908116613335575033915b813b15612ddb57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561332a5760209261331a575b50604051908152f35b5f61332491613483565b5f613311565b6040513d5f823e3d90fd5b916132c0565b34612ddb576020366003190112612ddb57613354613a89565b600435601f5f516020615a0c5f395f51905f525401555f80f35b34612ddb575f366003190112612ddb57602090601c5f516020615a0c5f395f51905f525401548152f35b604435906001600160a01b0382168203612ddb57565b606435906001600160a01b0382168203612ddb57565b600435906001600160a01b0382168203612ddb57565b35906001600160a01b0382168203612ddb57565b35906001600160801b0382168203612ddb57565b606081019081106001600160401b0382111761341d57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761341d57604052565b61016081019081106001600160401b0382111761341d57604052565b608081019081106001600160401b0382111761341d57604052565b90601f801991011681019081106001600160401b0382111761341d57604052565b9291926001600160401b03821161341d57604051916134cd601f8201601f191660200184613483565b829481845281830111612ddb578281602093845f960137010152565b9080601f83011215612ddb57816020613504933591016134a4565b90565b9181601f84011215612ddb578235916001600160401b038311612ddb576020808501948460051b010111612ddb57565b9060038210156135445752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106135995750505090565b82516001600160a01b031684526020938401939092019160010161358c565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606135f6604085015160a08386015260a085019061357c565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612ddb57518015158103612ddb5790565b6040519061366e82613431565b5f6020838281520152565b9060405161368681613431565b602060018294805484520154910152565b604051906136a6604083613483565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906136d3604083613483565b60018252603160f81b6020830152565b919082039182116136f057565b634e487b7160e01b5f52601160045260245ffd5b811561370e570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612ddb575160ff81168103612ddb5790565b60ff16604d81116136f057600a0a90565b818102929181159184041417156136f057565b9190826040910312612ddb5760405161377781613431565b6020808294803584520135910152565b6001600160401b03811161341d5760051b60200190565b9291906137aa81613787565b936137b86040519586613483565b602085838152019160051b8101928311612ddb57905b8282106137da57505050565b602080916137e7846133da565b8152019101906137ce565b91908110156138025760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156138025760209160051b010190565b9060405161383781613431565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612ddb5790565b6138855f516020615a0c5f395f51905f5254429061549c565b600301905f5b83811061389b5750505050600190565b6138a96110588286856137f2565b6001600160a01b03165f9081526020849052604090205460ff16156138d05760010161388b565b505050505f90565b604051906138e582613402565b5f6040838281528260208201520152565b9060405161390381613402565b60406002829480548452600181015460208501520154910152565b3560ff81168103612ddb5790565b3565ffffffffffff81168103612ddb5790565b6040519061394c82613468565b5f60608360405161395c81613431565b83815283602082015281528260208201528160408201520152565b6040519061398482613468565b815f81525f602082015261399661393f565b604082015260606139a561393f565b910152565b90604051918281549182825260208201905f5260205f20925f5b8181106139db5750506139d992500383613483565b565b84546001600160a01b03168352600194850194879450602090930192016139c4565b5f1981146136f05760010190565b919082018092116136f057565b6001600160a01b03168015613a76575f5160206159ac5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206159ac5f395f51905f52546001600160a01b03163303613aa957565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615a2c5f395f51905f525416613ad457565b63d93c066560e01b5f5260045ffd5b9190915f516020615a0c5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156135445760020361408357815f5260205260405f206040516104008101908082106001600160401b03831117612ddb576103fd916040527f6080806040526103eb90816100128239f3fe6080604052600436106103a1575f81527f3560e01c806301b4832c146100eb57806336a52a18146100e657806342129d0060208201527f146100e15780635ce6c327146100dc578063701da98e146100d7578063704ed560408201527f42146100d25780637a8e0cdd146100cd57806391d5a64c146100c85780639ce160608201527f10d7146100c3578063a984a575146100be578063affed0e0146100b9578063c660808201527f049692146100b4578063e43f3433146100af5763ed3513fc036103a15761032860a08201527f565b610313565b6102e9565b6102cc565b61029d565b610275565b61025f565b60c08201527f61022c565b61020d565b6101d2565b6101b0565b610173565b610119565b346160e08201527f0115576020366003190112610115576004355f526004602052602060405f20546101008201527f604051908152f35b5f80fd5b34610115575f36600319011261011557600254606101208201527f405160089190911c6001600160a01b03168152602090f35b9181601f840112156101408201527f6101155782359167ffffffffffffffff831161011557602083818601950101116101608201527f61011557565b60403660031901126101155760043567ffffffffffffffff81116101808201527f6101155761019f903690600401610145565b5050602435801515146103a1575f6101a08201527f80fd5b34610115575f36600319011261011557602060ff6002541660405190156101c08201527f158152f35b34610115575f3660031901126101155760205f54604051908152f36101e08201527f5b600435906fffffffffffffffffffffffffffffffff8216820361011557565b6102008201527f34610115576020366003190112610115576102266101ee565b506103a1565b606102208201527f403660031901126101155760243567ffffffffffffffff8111610115576102586102408201527f903690600401610145565b50506103a1565b34610115576020366003190112156102608201527f6103a1575f80fd5b34610115575f3660031901126101155760035460405160016102808201527f600160a01b039091168152602090f35b346101155760203660031901126101156102a08201527f576004355f526005602052602060ff60405f2054166040519015158152f35b346102c08201527f610115575f366003190112610115576020600154604051908152f35b346101156102e08201527f5760a0366003190112610115576103026101ee565b5060443560ff81161461036103008201527fa1575f80fd5b34610115575f366003190112156103a1575f80fd5b34610115576103208201527f60a03660031901126101155760643567ffffffffffffffff81116101155761036103408201527f59903690600401610145565b505060843567ffffffffffffffff8111610115576103608201527f366023820112156101155780600401359067ffffffffffffffff8211610115576103808201527f602490369260051b010111156103a1575f80fd5b63e6fabc0960e01b5f5260206103a08201523060381b665afa1561011557645f6004817360d81b01176103c08201527f5f808051368280378136915af43d5f803e156103e7573d5ff35b3d5ffd0000006103e08201525ff5908115612ddb5760018060a01b0382165f52601a84016020528060405f2055601b840161404881546139fd565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615a0c5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156135445760020361408357815f5260205260405f2060405160608101908082106001600160401b03831117612ddb57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612ddb5760018060a01b0382165f52601a84016020528060405f2055601b840161404881546139fd565b6141926138d8565b5063ffffffff43116141ef5765ffffffffffff42116141d7576040516141b781613402565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061421557505050565b5f82820155600101614209565b90600182811c92168015614250575b602083101461423c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691614231565b604051905f825f51602061598c5f395f51905f52549161427983614222565b8083529260018116908115614308575060011461429d575b6139d992500383613483565b505f51602061598c5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142ec5750509060206139d992820101614291565b60209193508060019154838589010152019101909184926142d4565b602092506139d994915060ff191682840152151560051b820101614291565b604051905f825f5160206159cc5f395f51905f52549161434683614222565b80835292600181169081156143085750600114614369576139d992500383613483565b505f5160206159cc5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143b85750509060206139d992820101614291565b60209193508060019154838589010152019101909184926143a0565b435f19810193929084116136f05760ff1643811061442457505f925b83811015614400575b505f925050565b80408281036144125750600193505050565b1561441f575f19016143f0565b6143f9565b61442e90436136e3565b926143f0565b903590601e1981360301821215612ddb57018035906001600160401b038211612ddb57602001918160051b36038313612ddb57565b903590605e1981360301821215612ddb570190565b9060808101600161448f8284614434565b9050116148e1576144a08183614434565b9050156148ba576144b091614434565b1561380257806144bf91614469565b916144ca8380614434565b9190928260051b93838504602014841517156136f0576144ec859694956154f7565b925f945f97601a60fe19853603019501965b888a101561481d578960051b85013586811215612ddb57850161452081613858565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b03614552826154e3565b1615158061480a575b6147f9575b6001600160a01b0361457184613858565b6040516325c42dcd60e11b81526020600482015294911691610124850191906001600160801b03906145f0906001600160a01b036145ae856133da565b166024890152602084013560448901526145ca60408501614d03565b151560648901526001600160a01b036145e5606086016133da565b1660848901526133ee565b1660a486015261460260a08201614d03565b151560c486015260c081013560e486015260e0810135601e1982360301811215612ddb5701803560208201926001600160401b038211612ddb578160051b908136038513612ddb57918088969493610100610104899a989a0152526101448087019287010196925f9060fe1981360301905b8383106146e95750505050505082906001600160801b0382602096039316905af190811561332a575f916146b7575b50816020916001938a0152019901986144fe565b90506020813d82116146e1575b816146d160209383613483565b81010312612ddb575160016146a3565b3d91506146c4565b919395975091939597610143198a8203018652863583811215612ddb578201602081013582526001600160a01b03614723604083016133da565b1660208301526060810135603e193683900301811215612ddb578101602081013591906040016001600160401b038311612ddb578236038113612ddb57829060e060408601528160e08601526101008501375f61010083850101526001600160801b03614792608083016133ee565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612ddb57836020936147d460e086956101009560a060019a015201614d03565b151560c0830152601f8019910116010198019601930190918997959492989698614674565b9050614804816154e3565b90614560565b5061481760a08401614925565b1561455b565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a101358061488b575b60405191602083019384526040830152606082015260608152614885608082613483565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a1614861565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612ddb57018035906001600160401b038211612ddb57602001918160061b36038313612ddb57565b358015158103612ddb5790565b60c0820160016149428285614434565b905011614cc2576149538184614434565b9050156148ba576149649083614434565b1561380257803590607e1981360301821215612ddb5701916060830190602061498c8361392c565b91019065ffffffffffff806149a08461392c565b1691161015614cb3576149b28261392c565b65ffffffffffff80600286015460201c16911610614ca4576149f865ffffffffffff6149f16149eb826149e48761392c565b168761551c565b9361392c565b168461551c565b1115614c95576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614a3e83614a368989614469565b01358b613a0b565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561332a575f91614c76575b5015614c67575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561332a575f95614c2f575b5090614ac391614469565b91614acd8261392c565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612ddb578101602081359101936001600160401b038211612ddb578160061b36038513612ddb5760606044890152819052869360c485019392915f5b818110614bf757505050836020959365ffffffffffff829484895f9601356064860152614b66604060018060a01b0392016133da565b16608485015216602483015203925af191821561332a575f92614bc1575b50614b8e9061392c565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b16606082015260468152614885606682613483565b9091506020813d602011614bef575b81614bdd60209383613483565b81010312612ddb575190614b8e614b84565b3d9150614bd0565b919550919293604080600192838060a01b03614c128a6133da565b168152602089013560208201520196019101918895949392614b30565b919094506020823d602011614c5f575b81614c4c60209383613483565b81010312612ddb57905193614ac3614ab8565b3d9150614c3f565b6367b9145160e01b5f5260045ffd5b614c8f915060203d6020116106f6576106e88183613483565b5f614a6b565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612ddb57018035906001600160401b038211612ddb57602001918136038313612ddb57565b35908115158203612ddb57565b9060e081016001614d218284614434565b90501161518a57614d328183614434565b9050156148ba57614d4291614434565b156138025780359060be1981360301821215612ddb570160808101614d678183614434565b90501561517b5765ffffffffffff600284015460201c1691614d8983426136e3565b614d9860168601548092613704565b9360a083013594600181018091116136f057850361516c57614dbd85614dc39361374c565b90613a0b565b93614dd26017820154866136e3565b421061515d57614de190615544565b916005830193428554101561514e57614df983614925565b92602081019060608101936126f6614e35614e148785614cd1565b9190614e208587614434565b949091614e2d368a61375f565b9436916134a4565b97615095575b50505f989798976003600489019801985b8854811015614e83575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614e4c565b5090919293949596985f5b8851811015614ecf576001906001600160a01b03614eac828c613816565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614e8e565b50929598909396919497508151916001600160401b03831161341d57600160401b831161341d57602090825484845580851061507a575b5001905f5260205f205f5b83811061505d5750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612ddb576040519260a08401908482106001600160401b0383111761341d57614f8591604052614f7c84614d03565b8552369061375f565b9460208401958652356001600160401b038111612ddb57614fa990369084016134e9565b604084015235906001600160401b038211612ddb570136601f82011215612ddb57614fdb90369060208135910161379e565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b81811061503b575050508152038082526148859060200182613483565b82516001600160a01b031685528695506020948501949092019160010161501e565b82516001600160a01b031681830155602090920191600101614f11565b61508f90845f528580855f2001910390614207565b5f614f06565b8051906020810191825170014551231950b75fc4402da1732fc9bebe198210918261513d575b50501561512e5751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561512157526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614e3b565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6151479250615968565b5f806150bb565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c166151b8428461551c565b6151d06151ca6016860154809361374c565b83613a0b565b9182841080806153ec575b156153ba575083106153ac576151f19083613a0b565b1061539d57615201905b8261549c565b94601960f81b5f523060601b60025260165260365f209360028110156135445780615292575050600181036152835715613802576152428161524992614cd1565b36916134a4565b916060835103615274578260206135049401516060604083015192015192600181549101549061555f565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146152a55750505050505f90565b6152ca90600860048796970154910154906001600160801b038260801c921690615402565b925f9260035f9201915b86811015615392576152fa6105886152f46152428460051b860186614cd1565b8661592e565b6001600160a01b0381165f9081526020859052604090205460ff16615325575b506001905b016152d4565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c1561536a575060019061531f565b94600161537892965d6139fd565b93858514615386575f61531a565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116153dd57615201926153d5575b506151fb565b90505f6153cf565b6347860b9760e01b5f5260045ffd5b506153fb601887015485613a0b565b42106151db565b6001600160801b0380921602911661541a8183613704565b91811561370e5706156135045760010190565b61543561425a565b60208151910120615444614327565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261488560c082613483565b906154a79082615842565b156154b257600f0190565b60090190565b60ff5f516020615a4c5f395f51905f525460401c16156154d457565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103612ddb5790565b6040519190601f01601f191682016001600160401b03811183821017612ddb57604052565b601661553b6135049365ffffffffffff600285015460201c16906136e3565b91015490613704565b61554e4282615842565b156155595760090190565b600f0190565b929391949061556e8587615968565b156157015782156157015770014551231950b75fc4402da1732fc9bebe19831015615701576001169061010e6155a3816154f7565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156153925784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b61571361393f565b5060028101546005820154604051929091615753916004916001600160a01b031661573d86613468565b61574682613679565b86526020860152016139aa565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116157d7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561332a575f516001600160a01b038116156157cd57905f905f90565b505f906001905f90565b5050505f9160039190565b600481101561354457806157f4575050565b6001810361580b5763f645eedf60e01b5f5260045ffd5b60028103615826575063fce698f760e01b5f5260045260245ffd5b6003146158305750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146158935781818410931191821591111591819061588c575b1561587d578261587757505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615868565b63f26224af60e01b5f5260045ffd5b905f8091602081519101845af4808061591b575b156158d65750506040513d81523d5f602083013e60203d82010160405290565b156158fb57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d1561590c576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806158b65750813b15156158b6565b815191906041830361595e576159579250602082015190606060408401519301515f1a90615760565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d019908009149056fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:47821:164:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;7983:34:18;7979:146;;-1:-1:-1;1553:47821:164;;;;;;;;1076:13:19;1553:47821:164;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;8085:29:18;;1553:47821:164;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;1553:47821:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613abc565b5f516020615a0c5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e71461336e575080630b9737ce1461333b5780630c18d277146132705780630d91bf2a146130a257806311bec80d1461306f578063188509e91461304157806328e24b3d146130135780633644e51514612ff85780633683c4d214612f3b5780633bd109fa14612eec5780633d43b41814612e985780633f4ba83a14612e185780634f1ef28614612c4057806352d1902d14612bd957806353f7fd48146122305780635c975abb146122015780636c2eb35014611cb2578063715018a614611c4957806371a8cf2d14611c1b5780637ecebe0014611bc357806382bdeaad14611aab5780638456cb5914611a3857806384b0196e1461197e57806384d22a4f1461192057806388f50cf0146118e75780638b1edf1e146118885780638c4ace6a146117285780638da5cb5b146116f35780638f381dbe146116ad5780639067088e1461166457806396a2ddfa146116365780639eb939a8146115df578063a5d53a441461155f578063a90fbdd7146110c9578063ad3cb1cc14611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26133c4565b60036102fd5f516020615a0c5f395f51905f5254429061549c565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615a0c5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796133c4565b610381613a89565b613a18565b80f35b50346103205780600319360112610320576020601f5f516020615a0c5f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26133c4565b602435906044356001600160401b03811161080b576103f5903690600401613507565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613abc565b8749156107f4575f516020615a0c5f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f198101835282613483565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e082613483565b51902061056161542d565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615760565b909291926157e2565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613a0b565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e88183613483565b810190613649565b5f610677565b503d6106de565b6040513d86823e3d90fd5b8161071591949394613483565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b8049806107648386866137f2565b35146107718386866137f2565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd906139fd565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a613398565b6108326133ae565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613abc565b61086b602435600435613ae3565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016135ff565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b610984838092613483565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e88183613483565b5f610906565b6040513d88823e3d90fd5b816109ea91613483565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615a0c5f395f51905f525460086004610a28428461549c565b0154910154906001600160801b038260801c921690615402565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615a0c5f395f51905f5254429061549c565b0154604051908152f35b50346103205780600319360112610320575f516020615a0c5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615a0c5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615a0c5f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615a0c5f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f516020615a0c5f395f51905f5254429061549c565b016139aa565b60405191829160208352602083019061357c565b0390f35b5034610320578060031936011261032057604051610bd58161344c565b610bdd6138d8565b8152604051610beb81613431565b5f8152602081015f90526020820152610c026138d8565b6040820152610c0f613977565b6060820152604051610c2081613431565b5f80825260208201526080820152610c366138d8565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615a0c5f395f51905f5254610c71613977565b50610c7e6009820161570b565b90610c8b600f820161570b565b60088201549260405193610c9e85613468565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce98761344c565b604051610cf581613402565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613431565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613402565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e6015890161382a565b9760808a01988952601601610db2906138f6565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb3916135b8565b90606001519061027f198a8203016102e08b0152610ed0916135b8565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615a0c5f395f51905f52540160043582528452205416610f816040518092613537565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb4903690600401613507565b905f516020615a0c5f395f51905f525490610fce83613787565b91610fdc6040519384613483565b838352610fe884613787565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d61105860019385886137f2565b613858565b828060a01b03165f528360205260405f20546110798288613816565b5201610ffc565b503461032057806003193601126103205750610bb46040516110a3604082613483565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613558565b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57611126903690600401613507565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6115505760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615a0c5f395f51905f525490600182015415611541578154156114e5575b600382015460446004350135036114d65765ffffffffffff60048301541665ffffffffffff6111c560246004350161392c565b16106114c8576111da6004356004018361447e565b926111ef60a4600435016004356004016148f0565b808096925060051b04602014851517156114b45761120f8560051b6154f7565b8695865b81881061137f5750611345965060051b90209061123560043560040186614932565b61124460043560040187614d10565b9061125360246004350161392c565b9361126260646004350161391e565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c781526112c760e782613483565b5190209283600382015565ffffffffffff6112e660246004350161392c565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff61133a60246004350161392c565b169360243591615199565b1561137057807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b61139360a4600435016004356004016148f0565b8910156114a0578860061b8101358a526019880160205260ff60408b20541660038110156107d157600103611491576001916020916114568b8b8e868360061b860101926113e084614925565b156114725760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054611412906139fd565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661144184614925565b1515926040519060061b8701358152a2614925565b908b60061b01358c52825360218b208186015201970196611213565b60409260199160061b87013583520187522060ff198154169055611415565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b6115026114f660646004350161391e565b600435600401356143d4565b156115325765ffffffffffff61151c60246004350161392c565b16421161119257631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205780600319360112610320575f516020615a0c5f395f51905f52546001600160a01b039060029061159690429061549c565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c8082520190604082019182604052602083526115da603f19926060830190613558565b030190f35b50346103205780600319360112610320576115f86138d8565b50606061161560165f516020615a0c5f395f51905f5254016138f6565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615a0c5f395f51905f52540154604051908152f35b50346103205760203660031901126103205761167e6133c4565b601a5f516020615a0c5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b0382116103205760206116e96116e33660048601613507565b9061386c565b6040519015158152f35b50346103205780600319360112610320575f5160206159ac5f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff8116810361072557611752613abc565b824915611879575f516020615a0c5f395f51905f52546001810154156115415760198101918385528260205260ff604086205416600381101561186557611856576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af1611841575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b8161184b91613483565b61072557825f61180c565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615a0c5f395f51905f5254600181019081546118d8576002015463ffffffff16409081156118c9575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615a0c5f395f51905f5254600601546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057611939613661565b50604061195660155f516020615a0c5f395f51905f52540161382a565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320576119dc9061199b61425a565b906119a4614327565b9060206119ea604051936119b88386613483565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613558565b908682036040880152613558565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b828110611a2157505050500390f35b835185528695509381019392810192600101611a12565b5034610320578060031936011261032057611a51613a89565b611a59613abc565b600160ff195f516020615a2c5f395f51905f525416175f516020615a2c5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e57611adc903690600401613507565b905f516020615a0c5f395f51905f525490611af683613787565b91611b046040519384613483565b838352611b1084613787565b602084019490601f19013686376019869201915b818110611b7957868587604051928392602084019060208552518091526040840192915b818110611b56575050500390f35b9193509160208082611b6b6001948851613537565b019401910191849392611b48565b611b848183866137f2565b3587528260205260ff604088205416611b9d8287613816565b6003821015611baf5752600101611b24565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b03611beb6133c4565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615a0c5f395f51905f52540154604051908152f35b5034610320578060031936011261032057611c62613a89565b5f5160206159ac5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610320578060031936011261032057611ccb613a89565b5f516020615a4c5f395f51905f525460ff8160401c169081156121ec575b506121dd575f516020615a4c5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f5160206159ac5f395f51905f5254611d43906001600160a01b0316611d3b6154b8565b6103816154b8565b611d4b613697565b90611d546136c4565b90611d5d6154b8565b611d656154b8565b82516001600160401b0381116120e057611d8c5f51602061598c5f395f51905f5254614222565b601f8111612179575b506020601f82116001146120ff578293948293926120f4575b50508160011b915f199060031b1c1916175f51602061598c5f395f51905f52555b81516001600160401b0381116120e057611df65f5160206159cc5f395f51905f5254614222565b601f8111612073575b50602092601f8211600114611ffa57928293829392611fef575b50508160011b915f199060031b1c1916175f5160206159cc5f395f51905f52555b5f516020615a0c5f395f51905f5254611e5161418a565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611e9f81613431565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611eca428461549c565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611f1b918491611fc0575b5061373b565b90816103e8026103e881048303611fac57601e820155816101f402916101f4830403611f9857601f015560ff60401b195f516020615a4c5f395f51905f5254165f516020615a4c5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611fe2915060203d602011611fe8575b611fda8183613483565b810190613722565b5f611f15565b503d611fd0565b015190505f80611e19565b601f198216935f5160206159cc5f395f51905f52845280842091845b86811061205b5750836001959610612043575b505050811b015f5160206159cc5f395f51905f5255611e3a565b01515f1960f88460031b161c191690555f8080612029565b91926020600181928685015181550194019201612016565b81811115611dff575f5160206159cc5f395f51905f5283526120d2907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c90602085106120d8575b601f82910160051c039101614207565b5f611dff565b8591506120c2565b634e487b7160e01b82526041600452602482fd5b015190505f80611dae565b5f51602061598c5f395f51905f52835280832090601f198316845b81811061216157509583600195969710612149575b505050811b015f51602061598c5f395f51905f5255611dcf565b01515f1960f88460031b161c191690555f808061212f565b9192602060018192868b01518155019401920161211a565b81811115611d95575f51602061598c5f395f51905f5283526121d7907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c90602085106120d857601f82910160051c039101614207565b5f611d95565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611ce9565b5034610320578060031936011261032057602060ff5f516020615a2c5f395f51905f5254166040519015158152f35b5034610320576101603660031901126103205761224b6133c4565b906024356001600160a01b0381169081900361098e57612269613398565b926122726133ae565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b038111610807576122e6903690600401613507565b9590935f516020615a4c5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612bd1575b6001149081612bc7575b159081612bbe575b50612baf57612368908a60016001600160401b03195f516020615a4c5f395f51905f525416175f516020615a4c5f395f51905f5255612b7f575b611d3b6154b8565b6123706154b8565b612378613697565b6123806136c4565b906123896154b8565b6123916154b8565b8051906001600160401b038211612b6b5781908b6123bc5f51602061598c5f395f51905f5254614222565b601f8111612b1a575b5050602090601f8311600114612a9e578c92612a93575b50508160011b915f199060031b1c1916175f51602061598c5f395f51905f52555b8051906001600160401b038211612a7f5781906124275f5160206159cc5f395f51905f5254614222565b601f8111612a10575b50602090601f8311600114612994578b92612989575b50508160011b915f199060031b1c1916175f5160206159cc5f395f51905f52555b61246f6154b8565b421561297a57811561296b578181111561295c57600a61248f83836136e3565b0483101561294d576040809a81516124a78382613483565b60178152602081017f726f757465722e73746f726167652e526f75746572563100000000000000000081526124da613a89565b5f1991519020018a5260ff1960208b2016809e815f516020615a0c5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a161252f61418a565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff19161717905583519061257982613402565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d01556125ed613661565b5089516125f981613431565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061263e81613402565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa908115612943579061269e918691611fc0575061373b565b806103e8026103e8810482036114b457601e8a0155806101f402906101f482040361292f57906126fe91601f8a01556126f68751986126dc8a613431565b60e4358a5260208a019461010435865260243692016134a4565b93369161379e565b958051825170014551231950b75fc4402da1732fc9bebe198210918261291e575b50501561290f5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156129025752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156127c75782845260208085208201546001600160a01b03165f90815290869052869020805460ff1916905560010161278f565b509195949094865b835181101561280f576001906001600160a01b036127ed8287613816565b5116828060a01b03165f5285602052865f208260ff19825416179055016127cf565b50925092938151916001600160401b0383116128ee57600160401b83116128ee5760209082548484558085106128d3575b500190865260208620865b8381106128b65750505050600e42910155612864575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615a4c5f395f51905f5254165f516020615a4c5f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161284b565b6128e890848a528580858c2001910390614207565b5f612840565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6129289250615968565b5f8061271f565b634e487b7160e01b85526011600452602485fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f80612446565b5f5160206159cc5f395f51905f528c52818c209250601f1984168c5b8181106129f857509084600195949392106129e0575b505050811b015f5160206159cc5f395f51905f5255612467565b01515f1960f88460031b161c191690555f80806129c6565b929360206001819287860151815501950193016129b0565b82811115612430575f5160206159cc5f395f51905f528c52612a71907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e60208710612a77575b50601f82910160051c039101614207565b5f612430565b91508e612a60565b634e487b7160e01b8a52604160045260248afd5b015190505f806123dc565b5f51602061598c5f395f51905f528d52818d209250601f1984168d5b818110612b025750908460019594939210612aea575b505050811b015f51602061598c5f395f51905f52556123fd565b01515f1960f88460031b161c191690555f8080612ad0565b92936020600181928786015181550195019301612aba565b838111156123c5575f51602061598c5f395f51905f52612b5c92528d6020812091601f860160051c9160208710612b635750601f82910160051c039101614207565b8b5f6123c5565b91508f612a60565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615a4c5f395f51905f525416175f516020615a4c5f395f51905f5255612360565b63f92ee8a960e01b8952600489fd5b9050155f612326565b303b15915061231e565b8b9150612314565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612c315760206040515f5160206159ec5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261032057612c556133c4565b906024356001600160401b03811161098e57612c759036906004016134e9565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612df6575b50612de757612cb8613a89565b6040516352d1902d60e01b8152926001600160a01b0382169190602085600481865afa80958596612daf575b50612cfd57634c9c8ce360e01b84526004839052602484fd5b9091845f5160206159ec5f395f51905f528103612d9d5750823b15612d8b575f5160206159ec5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a2805115612d7257612d6e916158a2565b5080f35b505034612d7c5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612ddf575b81612dcb60209383613483565b81010312612ddb5751945f612ce4565b5f80fd5b3d9150612dbe565b63703e46dd60e11b8252600482fd5b5f5160206159ec5f395f51905f52546001600160a01b0316141590505f612cab565b5034610320578060031936011261032057612e31613a89565b5f516020615a2c5f395f51905f525460ff811615612e895760ff19165f516020615a2c5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612eb26133c4565b612eba613a89565b5f516020615a0c5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612f05613661565b506040612f29612f245f516020615a0c5f395f51905f5254429061549c565b613679565b60208251918051835201516020820152f35b503461032057606036600319011261032057612f55613398565b612f5d613abc565b612f6b602435600435614092565b506001600160a01b0390811691908116612ff35750335b5f516020615a0c5f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612f82565b50346103205780600319360112610320576020610a4261542d565b5034610320578060031936011261032057602060015f516020615a0c5f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615a0c5f395f51905f52540154604051908152f35b503461032057602036600319011261032057613089613a89565b600435601e5f516020615a0c5f395f51905f5254015580f35b503461032057610100366003190112610320576130bd613398565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576130e8613abc565b6130f6602435600435614092565b6006015490936001600160a01b0390911691823b1561080b5761313d8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016135ff565b038183885af161325b575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613250578591613231575b5015613222576001600160a01b039081169290811661321c575033905b5f516020615a0c5f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b906131ad565b631e4e7d0960e21b8452600484fd5b61324a915060203d6020116106f6576106e88183613483565b5f613190565b6040513d87823e3d90fd5b8161326591613483565b61072557825f613148565b34612ddb576080366003190112612ddb57613289613398565b6132916133ae565b9061329a613abc565b6132a8602435600435613ae3565b506001600160a01b0390811691908116613335575033915b813b15612ddb57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561332a5760209261331a575b50604051908152f35b5f61332491613483565b5f613311565b6040513d5f823e3d90fd5b916132c0565b34612ddb576020366003190112612ddb57613354613a89565b600435601f5f516020615a0c5f395f51905f525401555f80f35b34612ddb575f366003190112612ddb57602090601c5f516020615a0c5f395f51905f525401548152f35b604435906001600160a01b0382168203612ddb57565b606435906001600160a01b0382168203612ddb57565b600435906001600160a01b0382168203612ddb57565b35906001600160a01b0382168203612ddb57565b35906001600160801b0382168203612ddb57565b606081019081106001600160401b0382111761341d57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761341d57604052565b61016081019081106001600160401b0382111761341d57604052565b608081019081106001600160401b0382111761341d57604052565b90601f801991011681019081106001600160401b0382111761341d57604052565b9291926001600160401b03821161341d57604051916134cd601f8201601f191660200184613483565b829481845281830111612ddb578281602093845f960137010152565b9080601f83011215612ddb57816020613504933591016134a4565b90565b9181601f84011215612ddb578235916001600160401b038311612ddb576020808501948460051b010111612ddb57565b9060038210156135445752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106135995750505090565b82516001600160a01b031684526020938401939092019160010161358c565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606135f6604085015160a08386015260a085019061357c565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612ddb57518015158103612ddb5790565b6040519061366e82613431565b5f6020838281520152565b9060405161368681613431565b602060018294805484520154910152565b604051906136a6604083613483565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906136d3604083613483565b60018252603160f81b6020830152565b919082039182116136f057565b634e487b7160e01b5f52601160045260245ffd5b811561370e570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612ddb575160ff81168103612ddb5790565b60ff16604d81116136f057600a0a90565b818102929181159184041417156136f057565b9190826040910312612ddb5760405161377781613431565b6020808294803584520135910152565b6001600160401b03811161341d5760051b60200190565b9291906137aa81613787565b936137b86040519586613483565b602085838152019160051b8101928311612ddb57905b8282106137da57505050565b602080916137e7846133da565b8152019101906137ce565b91908110156138025760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156138025760209160051b010190565b9060405161383781613431565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612ddb5790565b6138855f516020615a0c5f395f51905f5254429061549c565b600301905f5b83811061389b5750505050600190565b6138a96110588286856137f2565b6001600160a01b03165f9081526020849052604090205460ff16156138d05760010161388b565b505050505f90565b604051906138e582613402565b5f6040838281528260208201520152565b9060405161390381613402565b60406002829480548452600181015460208501520154910152565b3560ff81168103612ddb5790565b3565ffffffffffff81168103612ddb5790565b6040519061394c82613468565b5f60608360405161395c81613431565b83815283602082015281528260208201528160408201520152565b6040519061398482613468565b815f81525f602082015261399661393f565b604082015260606139a561393f565b910152565b90604051918281549182825260208201905f5260205f20925f5b8181106139db5750506139d992500383613483565b565b84546001600160a01b03168352600194850194879450602090930192016139c4565b5f1981146136f05760010190565b919082018092116136f057565b6001600160a01b03168015613a76575f5160206159ac5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206159ac5f395f51905f52546001600160a01b03163303613aa957565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615a2c5f395f51905f525416613ad457565b63d93c066560e01b5f5260045ffd5b9190915f516020615a0c5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156135445760020361408357815f5260205260405f206040516104008101908082106001600160401b03831117612ddb576103fd916040527f6080806040526103eb90816100128239f3fe6080604052600436106103a1575f81527f3560e01c806301b4832c146100eb57806336a52a18146100e657806342129d0060208201527f146100e15780635ce6c327146100dc578063701da98e146100d7578063704ed560408201527f42146100d25780637a8e0cdd146100cd57806391d5a64c146100c85780639ce160608201527f10d7146100c3578063a984a575146100be578063affed0e0146100b9578063c660808201527f049692146100b4578063e43f3433146100af5763ed3513fc036103a15761032860a08201527f565b610313565b6102e9565b6102cc565b61029d565b610275565b61025f565b60c08201527f61022c565b61020d565b6101d2565b6101b0565b610173565b610119565b346160e08201527f0115576020366003190112610115576004355f526004602052602060405f20546101008201527f604051908152f35b5f80fd5b34610115575f36600319011261011557600254606101208201527f405160089190911c6001600160a01b03168152602090f35b9181601f840112156101408201527f6101155782359167ffffffffffffffff831161011557602083818601950101116101608201527f61011557565b60403660031901126101155760043567ffffffffffffffff81116101808201527f6101155761019f903690600401610145565b5050602435801515146103a1575f6101a08201527f80fd5b34610115575f36600319011261011557602060ff6002541660405190156101c08201527f158152f35b34610115575f3660031901126101155760205f54604051908152f36101e08201527f5b600435906fffffffffffffffffffffffffffffffff8216820361011557565b6102008201527f34610115576020366003190112610115576102266101ee565b506103a1565b606102208201527f403660031901126101155760243567ffffffffffffffff8111610115576102586102408201527f903690600401610145565b50506103a1565b34610115576020366003190112156102608201527f6103a1575f80fd5b34610115575f3660031901126101155760035460405160016102808201527f600160a01b039091168152602090f35b346101155760203660031901126101156102a08201527f576004355f526005602052602060ff60405f2054166040519015158152f35b346102c08201527f610115575f366003190112610115576020600154604051908152f35b346101156102e08201527f5760a0366003190112610115576103026101ee565b5060443560ff81161461036103008201527fa1575f80fd5b34610115575f366003190112156103a1575f80fd5b34610115576103208201527f60a03660031901126101155760643567ffffffffffffffff81116101155761036103408201527f59903690600401610145565b505060843567ffffffffffffffff8111610115576103608201527f366023820112156101155780600401359067ffffffffffffffff8211610115576103808201527f602490369260051b010111156103a1575f80fd5b63e6fabc0960e01b5f5260206103a08201523060381b665afa1561011557645f6004817360d81b01176103c08201527f5f808051368280378136915af43d5f803e156103e7573d5ff35b3d5ffd0000006103e08201525ff5908115612ddb5760018060a01b0382165f52601a84016020528060405f2055601b840161404881546139fd565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615a0c5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156135445760020361408357815f5260205260405f2060405160608101908082106001600160401b03831117612ddb57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612ddb5760018060a01b0382165f52601a84016020528060405f2055601b840161404881546139fd565b6141926138d8565b5063ffffffff43116141ef5765ffffffffffff42116141d7576040516141b781613402565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061421557505050565b5f82820155600101614209565b90600182811c92168015614250575b602083101461423c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691614231565b604051905f825f51602061598c5f395f51905f52549161427983614222565b8083529260018116908115614308575060011461429d575b6139d992500383613483565b505f51602061598c5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142ec5750509060206139d992820101614291565b60209193508060019154838589010152019101909184926142d4565b602092506139d994915060ff191682840152151560051b820101614291565b604051905f825f5160206159cc5f395f51905f52549161434683614222565b80835292600181169081156143085750600114614369576139d992500383613483565b505f5160206159cc5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143b85750509060206139d992820101614291565b60209193508060019154838589010152019101909184926143a0565b435f19810193929084116136f05760ff1643811061442457505f925b83811015614400575b505f925050565b80408281036144125750600193505050565b1561441f575f19016143f0565b6143f9565b61442e90436136e3565b926143f0565b903590601e1981360301821215612ddb57018035906001600160401b038211612ddb57602001918160051b36038313612ddb57565b903590605e1981360301821215612ddb570190565b9060808101600161448f8284614434565b9050116148e1576144a08183614434565b9050156148ba576144b091614434565b1561380257806144bf91614469565b916144ca8380614434565b9190928260051b93838504602014841517156136f0576144ec859694956154f7565b925f945f97601a60fe19853603019501965b888a101561481d578960051b85013586811215612ddb57850161452081613858565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b03614552826154e3565b1615158061480a575b6147f9575b6001600160a01b0361457184613858565b6040516325c42dcd60e11b81526020600482015294911691610124850191906001600160801b03906145f0906001600160a01b036145ae856133da565b166024890152602084013560448901526145ca60408501614d03565b151560648901526001600160a01b036145e5606086016133da565b1660848901526133ee565b1660a486015261460260a08201614d03565b151560c486015260c081013560e486015260e0810135601e1982360301811215612ddb5701803560208201926001600160401b038211612ddb578160051b908136038513612ddb57918088969493610100610104899a989a0152526101448087019287010196925f9060fe1981360301905b8383106146e95750505050505082906001600160801b0382602096039316905af190811561332a575f916146b7575b50816020916001938a0152019901986144fe565b90506020813d82116146e1575b816146d160209383613483565b81010312612ddb575160016146a3565b3d91506146c4565b919395975091939597610143198a8203018652863583811215612ddb578201602081013582526001600160a01b03614723604083016133da565b1660208301526060810135603e193683900301811215612ddb578101602081013591906040016001600160401b038311612ddb578236038113612ddb57829060e060408601528160e08601526101008501375f61010083850101526001600160801b03614792608083016133ee565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612ddb57836020936147d460e086956101009560a060019a015201614d03565b151560c0830152601f8019910116010198019601930190918997959492989698614674565b9050614804816154e3565b90614560565b5061481760a08401614925565b1561455b565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a101358061488b575b60405191602083019384526040830152606082015260608152614885608082613483565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a1614861565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612ddb57018035906001600160401b038211612ddb57602001918160061b36038313612ddb57565b358015158103612ddb5790565b60c0820160016149428285614434565b905011614cc2576149538184614434565b9050156148ba576149649083614434565b1561380257803590607e1981360301821215612ddb5701916060830190602061498c8361392c565b91019065ffffffffffff806149a08461392c565b1691161015614cb3576149b28261392c565b65ffffffffffff80600286015460201c16911610614ca4576149f865ffffffffffff6149f16149eb826149e48761392c565b168761551c565b9361392c565b168461551c565b1115614c95576007820154600690920180548435946001600160a01b0394851694604082019391925f91602091166044614a3e83614a368989614469565b01358b613a0b565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561332a575f91614c76575b5015614c67575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561332a575f95614c2f575b5090614ac391614469565b91614acd8261392c565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612ddb578101602081359101936001600160401b038211612ddb578160061b36038513612ddb5760606044890152819052869360c485019392915f5b818110614bf757505050836020959365ffffffffffff829484895f9601356064860152614b66604060018060a01b0392016133da565b16608485015216602483015203925af191821561332a575f92614bc1575b50614b8e9061392c565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b16606082015260468152614885606682613483565b9091506020813d602011614bef575b81614bdd60209383613483565b81010312612ddb575190614b8e614b84565b3d9150614bd0565b919550919293604080600192838060a01b03614c128a6133da565b168152602089013560208201520196019101918895949392614b30565b919094506020823d602011614c5f575b81614c4c60209383613483565b81010312612ddb57905193614ac3614ab8565b3d9150614c3f565b6367b9145160e01b5f5260045ffd5b614c8f915060203d6020116106f6576106e88183613483565b5f614a6b565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612ddb57018035906001600160401b038211612ddb57602001918136038313612ddb57565b35908115158203612ddb57565b9060e081016001614d218284614434565b90501161518a57614d328183614434565b9050156148ba57614d4291614434565b156138025780359060be1981360301821215612ddb570160808101614d678183614434565b90501561517b5765ffffffffffff600284015460201c1691614d8983426136e3565b614d9860168601548092613704565b9360a083013594600181018091116136f057850361516c57614dbd85614dc39361374c565b90613a0b565b93614dd26017820154866136e3565b421061515d57614de190615544565b916005830193428554101561514e57614df983614925565b92602081019060608101936126f6614e35614e148785614cd1565b9190614e208587614434565b949091614e2d368a61375f565b9436916134a4565b97615095575b50505f989798976003600489019801985b8854811015614e83575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614e4c565b5090919293949596985f5b8851811015614ecf576001906001600160a01b03614eac828c613816565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614e8e565b50929598909396919497508151916001600160401b03831161341d57600160401b831161341d57602090825484845580851061507a575b5001905f5260205f205f5b83811061505d5750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612ddb576040519260a08401908482106001600160401b0383111761341d57614f8591604052614f7c84614d03565b8552369061375f565b9460208401958652356001600160401b038111612ddb57614fa990369084016134e9565b604084015235906001600160401b038211612ddb570136601f82011215612ddb57614fdb90369060208135910161379e565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b81811061503b575050508152038082526148859060200182613483565b82516001600160a01b031685528695506020948501949092019160010161501e565b82516001600160a01b031681830155602090920191600101614f11565b61508f90845f528580855f2001910390614207565b5f614f06565b8051906020810191825170014551231950b75fc4402da1732fc9bebe198210918261513d575b50501561512e5751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561512157526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614e3b565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b6151479250615968565b5f806150bb565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c166151b8428461551c565b6151d06151ca6016860154809361374c565b83613a0b565b9182841080806153ec575b156153ba575083106153ac576151f19083613a0b565b1061539d57615201905b8261549c565b94601960f81b5f523060601b60025260165260365f209360028110156135445780615292575050600181036152835715613802576152428161524992614cd1565b36916134a4565b916060835103615274578260206135049401516060604083015192015192600181549101549061555f565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146152a55750505050505f90565b6152ca90600860048796970154910154906001600160801b038260801c921690615402565b925f9260035f9201915b86811015615392576152fa6105886152f46152428460051b860186614cd1565b8661592e565b6001600160a01b0381165f9081526020859052604090205460ff16615325575b506001905b016152d4565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c1561536a575060019061531f565b94600161537892965d6139fd565b93858514615386575f61531a565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116153dd57615201926153d5575b506151fb565b90505f6153cf565b6347860b9760e01b5f5260045ffd5b506153fb601887015485613a0b565b42106151db565b6001600160801b0380921602911661541a8183613704565b91811561370e5706156135045760010190565b61543561425a565b60208151910120615444614327565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261488560c082613483565b906154a79082615842565b156154b257600f0190565b60090190565b60ff5f516020615a4c5f395f51905f525460401c16156154d457565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103612ddb5790565b6040519190601f01601f191682016001600160401b03811183821017612ddb57604052565b601661553b6135049365ffffffffffff600285015460201c16906136e3565b91015490613704565b61554e4282615842565b156155595760090190565b600f0190565b929391949061556e8587615968565b156157015782156157015770014551231950b75fc4402da1732fc9bebe19831015615701576001169061010e6155a3816154f7565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156153925784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b61571361393f565b5060028101546005820154604051929091615753916004916001600160a01b031661573d86613468565b61574682613679565b86526020860152016139aa565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116157d7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561332a575f516001600160a01b038116156157cd57905f905f90565b505f906001905f90565b5050505f9160039190565b600481101561354457806157f4575050565b6001810361580b5763f645eedf60e01b5f5260045ffd5b60028103615826575063fce698f760e01b5f5260045260245ffd5b6003146158305750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146158935781818410931191821591111591819061588c575b1561587d578261587757505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615868565b63f26224af60e01b5f5260045ffd5b905f8091602081519101845af4808061591b575b156158d65750506040513d81523d5f602083013e60203d82010160405290565b156158fb57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d1561590c576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806158b65750813b15156158b6565b815191906041830361595e576159579250602082015190606060408401519301515f1a90615760565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d019908009149056fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:47821:164:-:0;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;1965:72:60;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47821:164;49079:19;;;1553:47821;49079:38;1553:47821;;-1:-1:-1;;;;;49188:9:164;1553:47821;49216:9;1553:47821;;49276:10;-1:-1:-1;1553:47821:164;;;49304:28;;;;;1553:47821;;;;;;49304:42;1553:47821;;;;;;;-1:-1:-1;1553:47821:164;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;14969:40;30373:37:169;-1:-1:-1;;;;;;;;;;;1553:47821:164;30394:15:169;30373:37;;:::i;:::-;14969:40:164;:52;1553:47821;;;;;;-1:-1:-1;1553:47821:164;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;13093:34;;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;2378:1:52;1553:47821:164;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;1553:47821:164;;;;;;;;;;;;;;;;19882:52;-1:-1:-1;;;;;;;;;;;1553:47821:164;19882:52;1553:47821;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;25846:11:164;;:16;1553:47821;;-1:-1:-1;;;;;;;;;;;1553:47821:164;25942:19;1553:47821;25942:19;;1553:47821;25942:38;1553:47821;;26035:19;;;1553:47821;;;;;;;;;;;;;;;;;;;;;26145:29;26215:27;;;;;26357:39;;;1553:47821;;26477:13;;26492:22;;;;;;26771:15;;;:28;1553:47821;;;;;27035:29;;;-1:-1:-1;;;;;2659:66:164;;;;27035:29;1553:47821;2659:66;8977:25:40;2659:66:164;9031:8:40;2659:66:164;;;;;;;;;27035:29;;1553:47821;;27035:29;;;;;;:::i;:::-;1553:47821;27025:40;;1553:47821;;;;;;;;;;;;993:64:59;1553:47821:164;;;;;;;;;;;;;;;26884:261;1553:47821;26884:261;;1553:47821;2659:66;1553:47821;;2659:66;1553:47821;2659:66;;1553:47821;2659:66;1553:47821;2659:66;;1553:47821;;2659:66;;1553:47821;;2659:66;;1553:47821;2659:66;1553:47821;2659:66;;1553:47821;;26884:261;;;1553:47821;26884:261;;:::i;:::-;1553:47821;26861:294;;3785:23:61;;:::i;:::-;4037:249:43;1553:47821:164;4037:249:43;;-1:-1:-1;;;4037:249:43;;;;;;;;;;1553:47821:164;;;4037:249:43;1553:47821:164;;4037:249:43;;8977:25:40;:::i;:::-;9031:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47821:164;27289:20;;;2659:66;;1553:47821;;;;27467:100;1553:47821;;;;;27397:32;;;1553:47821;;27467:48;27518:49;27467:48;;;1553:47821;27518:49;;1553:47821;27467:100;;:::i;:::-;27581:77;;;;;;1553:47821;;-1:-1:-1;;;27581:77:164;;-1:-1:-1;;;;;1553:47821:164;;;27581:77;;1553:47821;27621:4;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27581:77;;;;;26472:223;-1:-1:-1;1553:47821:164;;-1:-1:-1;;;27694:57:164;;-1:-1:-1;;;;;1553:47821:164;;;;27694:57;;1553:47821;27621:4;1553:47821;;;;;;;;;;;;;;;;;;;;;;;27694:57;;;;;;;;;;;;;;26472:223;1553:47821;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;23283:19;1553:47821;;;;;;;27897:32;;;1553:47821;;;-1:-1:-1;;;1553:47821:164;;;;;27694:57;;;;1553:47821;27694:57;1553:47821;27694:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:47821;;;;;;;;;27581:77;;;;;;;;:::i;:::-;1553:47821;;27581:77;;;;;1553:47821;;;;27581:77;1553:47821;;;2659:66;-1:-1:-1;;;2659:66:164;;1553:47821;;;;;2659:66;;;1553:47821;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;26516:3;26562:11;;26595:14;;;;;;:::i;:::-;1553:47821;26595:34;26650:14;;;;;:::i;:::-;1553:47821;;;;;26516:3;;1553:47821;;26477:13;;1553:47821;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;26184:155;26309:19;;;:::i;:::-;26184:155;;1553:47821;-1:-1:-1;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;35486:37:164;1553:47821;;;;35486:37;:::i;:::-;35575:32;;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;;;35623:96;;;;;;1553:47821;;;;;;;;;;;;35623:96;;1553:47821;;;;;;;;35663:4;;35643:10;1553:47821;35623:96;;;:::i;:::-;;;;;;;;;1553:47821;-1:-1:-1;;1553:47821:164;;-1:-1:-1;;;35755:79:164;;35643:10;1553:47821;35755:79;;1553:47821;35663:4;1553:47821;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;35755:79;;;;;;;;;;;1553:47821;;;;;-1:-1:-1;;;;;1553:47821:164;;;;35950:70;1553:47821;;;;35643:10;;35950:70;;35893:238;;;;;1553:47821;;-1:-1:-1;;;35893:238:164;;-1:-1:-1;;;;;1553:47821:164;;;;35893:238;;1553:47821;;;;;;;;;;;;;;;;;;;;;;35893:238;;;;;;;;;35950:70;1553:47821;;;;;;;;35893:238;;;;;;:::i;:::-;1553:47821;;35893:238;;;1553:47821;;;;35893:238;1553:47821;;;;;;;;;35893:238;1553:47821;;;35950:70;;;;1553:47821;-1:-1:-1;;;1553:47821:164;;;;;35755:79;;;;1553:47821;35755:79;1553:47821;35755:79;;;;;;;:::i;:::-;;;;;1553:47821;;;;;;;;;35623:96;;;;;:::i;:::-;1553:47821;;35623:96;;;;1553:47821;;;;;;;;;;;;;;16414:211;-1:-1:-1;;;;;;;;;;;1553:47821:164;16511:25;1553:47821;30373:37:169;30394:15;30373:37;;:::i;:::-;16452:38:164;1553:47821;16511:25;;1553:47821;;-1:-1:-1;;;;;1553:47821:164;;;;;16414:211;;:::i;:::-;1553:47821;;;;;;;;;;;;;;;;;;;;;30373:37:169;-1:-1:-1;;;;;;;;;;;1553:47821:164;30394:15:169;30373:37;;:::i;:::-;16028:41:164;1553:47821;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;12550:23;;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;15457:25;-1:-1:-1;;;;;;;;;;;1553:47821:164;15457:25;1553:47821;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;12282:40;1553:47821;;;;;;;;;;;;;;;;;;;;;;;11692:32;-1:-1:-1;;;;;;;;;;;1553:47821:164;11692:32;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;30373:37:169;-1:-1:-1;;;;;;;;;;;1553:47821:164;30394:15:169;30373:37;;:::i;:::-;15767:41:164;1553:47821;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;:::i;:::-;-1:-1:-1;35714:28:169;35721:20;;;35714:28;:::i;:::-;35800:20;35793:28;35800:20;;;35793:28;:::i;:::-;10465:25:164;;;1553:47821;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47821:164;;;;;;;35838:241:169;;1553:47821:164;;35838:241:169;;1553:47821:164;;35838:241:169;;1553:47821:164;10854:33;;;1553:47821;10922:39;;;;1553:47821;10990:33;;;1553:47821;;;11067:48;;;1553:47821;11160:49;;;;1553:47821;;;;;;;;:::i;:::-;;;;;;:::i;:::-;35721:20:169;10548:19:164;;1553:47821;;;10854:33;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10603:27;;;1553:47821;;;;;;;;;;;;;;10508:712;;1553:47821;;;;;;;;;:::i;:::-;10659:20;;;1553:47821;-1:-1:-1;;;;;1553:47821:164;;;2277:3;;11160:49;1553:47821;;;;;;;;2277:3;35800:20:169;1553:47821:164;;;;;;;;2277:3;;;;10508:712;;1553:47821;;;;10508:712;;1553:47821;;;;10762:22;;;1553:47821;:::i;:::-;10508:712;1553:47821;10508:712;;1553:47821;;;10809:16;;1553:47821;;;:::i;:::-;10508:712;1553:47821;10508:712;;1553:47821;;;;10508:712;;1553:47821;;;;10508:712;;1553:47821;;;;10508:712;;1553:47821;;;;10508:712;;1553:47821;;;;10508:712;;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;;17380:22;-1:-1:-1;;;;;;;;;;;1553:47821:164;17380:22;1553:47821;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47821:164;;;;18617:28;18549:13;18617:28;;18544:129;18564:23;;;;;;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;18617:28;1553:47821;;;18589:3;18646:15;;;18617:28;18646:15;;;;:::i;:::-;;:::i;:::-;1553:47821;;;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;18608:54;;;;:::i;:::-;1553:47821;;18549:13;;1553:47821;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1553:47821:164;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;:::i;:::-;661:66:35;3327:69:39;1860:93:35;;2268:4;661:66;3556:68:39;-1:-1:-1;;;;;;;;;;;1553:47821:164;36862:19;2268:4:35;36862:19:164;;1553:47821;36862:38;1553:47821;;;;37100:20;37096:295;;1553:47821;37504:27;;;1553:47821;;;;37540:33;1553:47821;37504:69;1553:47821;;;;37639:37;;1553:47821;;;37680:21;1553:47821;;;37680:21;;:::i;:::-;1553:47821;-1:-1:-1;1553:47821:164;;37770:28;1553:47821;;;;37770:28;;:::i;:::-;1553:47821;40759:22;;1553:47821;;40759:22;1553:47821;;;;40759:22;:::i;:::-;2355:5;;;;;;;;1553:47821;2355:5;;;;;;;40894:40;2355:5;;;40894:40;:::i;:::-;40944:18;;;40993:22;;;;;;2355:5;38568:146;2355:5;;;;1083:131:88;;1553:47821:164;37910:30;1553:47821;;;;37910:30;;:::i;:::-;37986:33;1553:47821;;;;37986:33;;:::i;:::-;1553:47821;38119:21;1553:47821;;;37680:21;38119;:::i;:::-;1553:47821;38201:13;;1553:47821;;38201:13;;:::i;:::-;1553:47821;;;20645:303:169;1553:47821:164;20645:303:169;;1553:47821:164;;;;;;;;2277:3;1553:47821;;;;;;;;;;;;;37540:33;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20645:303:169;;;;;;:::i;:::-;1553:47821:164;20622:336:169;;37504:27:164;;;;;1553:47821;;38473:21;1553:47821;;;37680:21;38473;:::i;:::-;1553:47821;2277:3;1553:47821;;37639:37;;1553:47821;;;;37639:37;;1553:47821;38510:26;1553:47821;;;;;;38510:26;1553:47821;38679:21;1553:47821;;;37680:21;38679;:::i;:::-;1553:47821;;;;38568:146;;:::i;:::-;2102:66;;;3556:68:39;661:66:35;3556:68:39;1553:47821:164;;2102:66;-1:-1:-1;;;2102:66:164;;1553:47821;;2102:66;41017:3;41079:22;40759;1553:47821;;40759:22;1553:47821;;;;41079:22;:::i;:::-;1553:47821;;;;;;;;;;;;;41144:19;;;1553:47821;;;;;;;;37504:27;1553:47821;;;;;2268:4:35;41144:79:164;1553:47821;;2268:4:35;1553:47821:164;;;41722:17;1553:47821;;;;;;;;;41302:17;;;;;:::i;:::-;;;;1553:47821;;;;;;;-1:-1:-1;41144:19:164;;;1553:47821;;;;;;;-1:-1:-1;;1553:47821:164;;;;;41425:39;;;1553:47821;;41425:41;;;:::i;:::-;1553:47821;;41298:270;41620:17;41587:51;41620:17;;;;:::i;:::-;1553:47821;;;;;;;;;;;;;41587:51;41722:17;:::i;:::-;1553:47821;;;;;;18348:159:169;;;;;;;4093:83:85;;;;1553:47821:164;41017:3;1553:47821;40978:13;;;41298:270;1553:47821;;41144:19;1553:47821;;;;;;;;41144:19;1553:47821;;;;;;;;;;41298:270;;1553:47821;-1:-1:-1;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;2355:5;-1:-1:-1;;;2277:3:164;;;1553:47821;2277:3;1553:47821;;2277:3;1553:47821;-1:-1:-1;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;37096:295;37144:56;37186:13;;1553:47821;;37186:13;;:::i;:::-;1553:47821;;;;;37144:56;:::i;:::-;1553:47821;;;;37331:21;1553:47821;;;37331:21;;:::i;:::-;1553:47821;37313:15;:39;37096:295;1553:47821;-1:-1:-1;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;1860:93:35;-1:-1:-1;;;1912:30:35;;1553:47821:164;1912:30:35;;1553:47821:164;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;14090:77;;30373:37:169;;30394:15;;30373:37;:::i;:::-;14090:77:164;1553:47821;;;9308:329:171;1553:47821:164;;;;;9308:329:171;;;;;;;;;;;;;;;;;;;;1553:47821:164;9308:329:171;;;;1553:47821:164;9308:329:171;1553:47821:164;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20120:19;-1:-1:-1;;;;;;;;;;;1553:47821:164;20120:19;1553:47821;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18889:36;-1:-1:-1;;;;;;;;;;;1553:47821:164;18889:36;1553:47821;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;18142:31;-1:-1:-1;;;;;;;;;;;1553:47821:164;18142:31;:43;1553:47821;;;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;23187:11:164;;:16;1553:47821;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;23283:19;;1553:47821;23283:38;1553:47821;;23376:19;;;1553:47821;;;;;;;;;;;;;;;;;;;;;23527:32;;;1553:47821;23589:48;;;;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;23651:78;;;;;1553:47821;;-1:-1:-1;;;23651:78:164;;23671:10;1553:47821;23651:78;;1553:47821;23691:4;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23651:78;;;;;1553:47821;-1:-1:-1;;1553:47821:164;;-1:-1:-1;;;23765:61:164;;23671:10;1553:47821;23765:61;;1553:47821;23691:4;1553:47821;;;;;;;;;;;;;;;;;;;;;;23765:61;1553:47821;23651:78;;;;;:::i;:::-;1553:47821;;23651:78;;;;1553:47821;-1:-1:-1;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;21879:19;;;1553:47821;;;;;21986:26;;1553:47821;;;21976:37;;22032:25;;1553:47821;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;12822:35;;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17149:25;-1:-1:-1;;;;;;;;;;;1553:47821:164;17149:25;1553:47821;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47821:164;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;2435:3;1553:47821;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5294:13:61;;1553:47821:164;;;;5329:4:61;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;1965:72:60;;:::i;:::-;3321:4;1553:47821:164;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;3340:20:60;1553:47821:164;;;987:10:57;1553:47821:164;;3340:20:60;1553:47821:164;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47821:164;;;;17849:19;17784:13;17849:19;;17779:120;17799:20;;;;;;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;17821:3;17875:12;;;;;:::i;:::-;1553:47821;;;;;;;;;;;;17840:48;;;;:::i;:::-;1553:47821;;;;;;;;;17784:13;;1553:47821;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;:::i;:::-;;;;993:64:59;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;11976:30;-1:-1:-1;;;;;;;;;;;1553:47821:164;11976:30;1553:47821;;;;;;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47821:164;;-1:-1:-1;;;;;;1553:47821:164;;;;;;;-1:-1:-1;;;;;1553:47821:164;3996:40:52;1553:47821:164;;3996:40:52;1553:47821:164;;;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;6429:44:18;;;;;1553:47821:164;6425:105:18;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;-1:-1:-1;;1553:47821:164;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;6959:1:18;;-1:-1:-1;;;;;1553:47821:164;6891:76:18;;:::i;:::-;;;:::i;6959:1::-;1553:47821:164;;:::i;:::-;2213:17;;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1553:47821:164;;-1:-1:-1;;;;;1553:47821:164;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:47821:164;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;-1:-1:-1;;;;;1553:47821:164;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:47821:164;;;;;3593:10:61;1553:47821:164;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;-1:-1:-1;;;;;;;;;;;1553:47821:164;9302:17;;:::i;:::-;2277:3;;6591:4:18;9280:19:164;;1553:47821;3569:7:61;2277:3:164;;;1553:47821;;2277:3;;;1553:47821;2277:3;1553:47821;2277:3;;;;;1553:47821;2277:3;;;;;;;;;;1553:47821;;;;;;;:::i;:::-;;;;9359:57;1553:47821;9329:27;3593:10:61;9329:27:164;;1553:47821;;;;2277:3;1553:47821;;;;;;;;30373:37:169;30394:15;30373:37;;:::i;:::-;9469:38:164;1553:47821;;;9426:33;;;1553:47821;;2243:1:169;;;;;;;;1553:47821:164;;;;;;;9569:32;;;1553:47821;;;;;;;;;;;9556:57;;;;;;;;9550:63;9556:57;;;;;1553:47821;9550:63;;:::i;:::-;2355:5;;;;;;;;;;;9623:48;;;1553:47821;2355:5;2435:3;2355:5;;2435:3;2355:5;;;;;1553:47821;9741:49;1553:47821;-1:-1:-1;;;1553:47821:164;-1:-1:-1;;;;;;;;;;;1553:47821:164;;-1:-1:-1;;;;;;;;;;;1553:47821:164;6654:20:18;1553:47821:164;;;6889:1;1553:47821;;6654:20:18;1553:47821:164;;2355:5;-1:-1:-1;;;2277:3:164;;;1553:47821;2277:3;;1553:47821;2277:3;2355:5;-1:-1:-1;;;2277:3:164;;;1553:47821;2277:3;;1553:47821;2277:3;9556:57;;;;1553:47821;9556:57;1553:47821;9556:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:47821;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;;;;;;;6591:4:18;1553:47821:164;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;;3593:10:61;1553:47821:164;;;;;;;;;;;;;;;;6591:4:18;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;6889:1;1553:47821;;;;;;;;;;;;6889:1;1553:47821;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47821:164;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;;;;;;6591:4:18;1553:47821:164;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;6889:1;1553:47821;;;;;;;;;;;6889:1;1553:47821;;;;;:::i;:::-;;;;6425:105:18;-1:-1:-1;;;6496:23:18;;1553:47821:164;;6496:23:18;6429:44;6889:1:164;1553:47821;;-1:-1:-1;;;;;1553:47821:164;6448:25:18;;6429:44;;;1553:47821:164;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;-1:-1:-1;;;;;1553:47821:164;;;;;4301:16:18;1553:47821:164;;4724:16:18;;:34;;;;1553:47821:164;;4788:16:18;:50;;;;1553:47821:164;4853:13:18;:30;;;;1553:47821:164;4849:91:18;;;6959:1;1553:47821:164;;;-1:-1:-1;;;;;1553:47821:164;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;4977:67:18;;1553:47821:164;6891:76:18;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:47821:164;;:::i;:::-;2213:17;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1553:47821:164;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3593:10:61;1553:47821:164;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;6891:76:18;;:::i;:::-;4767:15:164;:19;2277:3;;4825:21;;2277:3;;4892:32;;;2277:3;;;5173:2;5137:32;;;;:::i;:::-;2277:3;5117:58;;2277:3;;;1553:47821;;;;;;;;;:::i;:::-;2277:3;1553:47821;;;2277:3;;;;;2324:62:52;;:::i;:::-;1553:47821:164;;1794:178:36;;;;;;;1553:47821:164;;;1794:178:36;;;1553:47821:164;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;48797:24;;;5331:17;;:::i;:::-;2277:3;;1553:47821;5309:19;;1553:47821;3569:7:61;2277:3:164;;;1553:47821;2277:3;;;1553:47821;;2277:3;;;;;;1553:47821;2277:3;;;;;;;;;;;1553:47821;;;;;;:::i;:::-;2277:3;;;-1:-1:-1;;;;;1553:47821:164;;;;5381:52;;2277:3;;;1553:47821;;;5381:52;;;;2277:3;;;5358:20;;;;;1553:47821;;;;;;-1:-1:-1;;;;;;1553:47821:164;;;;;;;2277:3;;;1553:47821;;;;;;;;2277:3;;;1553:47821;;;;;;;;;;2243:1:169;5443:25:164;;;2243:1:169;1553:47821:164;;:::i;:::-;;;;;;;:::i;:::-;1895:13:169;1553:47821:164;;2423:18:169;1553:47821:164;25377:89:169;;;1553:47821:164;5631:22;;;1553:47821;;-1:-1:-1;;;;;;2243:1:169;;;;;1553:47821:164;;;;;;;;;:::i;:::-;;;;;5718:65;;1553:47821;;;5718:65;1553:47821;5699:16;;;1553:47821;2277:3;2243:1:169;;1553:47821:164;2243:1:169;;;1553:47821:164;5793:33;;;2243:1:169;;-1:-1:-1;;2243:1:169;1553:47821:164;;;2243:1:169;;;1553:47821:164;;-1:-1:-1;;;5897:37:164;;1553:47821;;;;;5897:37;;1553:47821;5897:37;1553:47821;5897:37;;;;;;;;5891:43;5897:37;;;;;5891:43;;:::i;:::-;2355:5;;;;;;;;;;5944:48;;;1553:47821;2355:5;2435:3;2355:5;;2435:3;2355:5;;;;;6062:49;2435:3;6062:49;1553:47821;6062:49;;1553:47821;2435:3;1553:47821;;;;;;:::i;:::-;;;2435:3;;1553:47821;2435:3;;1553:47821;2435:3;1553:47821;2435:3;;1553:47821;;;;2435:3;:::i;:::-;1553:47821;;2435:3;;:::i;:::-;2243:1:169;;;;;1145:66:90;;1837:24:89;;:71;;;;1553:47821:164;;;;;;2243:1:169;6254:37:164;;;1553:47821;2243:1:169;5173:2:164;1553:47821;;;1745:1673:171;;;;;;;;;;;;;;;;5631:22:164;1745:1673:171;;;;;;;;;;;47679:52:164;;1553:47821;;-1:-1:-1;;;;;;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;1745:1673:171;;47925:15:164;;;;47808:13;47827:16;;;;47808:13;47852:3;1553:47821;;47823:27;;;;;1553:47821;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;-1:-1:-1;1553:47821:164;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;47808:13;;47823:27;;;;;;;47985:13;48027:3;1553:47821;;48000:25;;;;;1553:47821;;-1:-1:-1;;;;;48067:17:164;1553:47821;48067:17;;:::i;:::-;2277:3;1553:47821;;;;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;;47985:13;;48000:25;;;;;;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;;47980:163;1553:47821;;;;;;;;;;;;;;;4767:15;;;;48195:28;4767:15;48195:28;;1553:47821;5064:101:18;;1553:47821:164;;;5064:101:18;1553:47821:164;5140:14:18;1553:47821:164;-1:-1:-1;;;1553:47821:164;-1:-1:-1;;;;;;;;;;;1553:47821:164;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;5140:14:18;1553:47821:164;;;2277:3;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;1745:1673:171;;;;1553:47821:164;1745:1673:171;;1553:47821:164;-1:-1:-1;;;1553:47821:164;;;;;1837:71:89;1865:43;;;;:::i;:::-;1837:71;;;;2355:5:164;-1:-1:-1;;;2277:3:164;;;1553:47821;2277:3;1553:47821;;2277:3;5897:37;1553:47821;;;;;;;;;2277:3;-1:-1:-1;;;2277:3:164;;1553:47821;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:47821;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:47821;2277:3;;;-1:-1:-1;;;2277:3:164;;1553:47821;2277:3;;1553:47821;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;;3593:10:61;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1553:47821:164;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47821:164;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;4977:67:18;-1:-1:-1;;;;;;1553:47821:164;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;4977:67:18;;4849:91;-1:-1:-1;;;4906:23:18;;1553:47821:164;4906:23:18;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;1553:47821:164;;;;;;;;;;;;;4840:6:19;-1:-1:-1;;;;;1553:47821:164;4831:4:19;4823:23;4819:145;;1553:47821:164;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;4819:145:19;-1:-1:-1;;;4924:29:19;;1553:47821:164;;4924:29:19;1553:47821:164;-1:-1:-1;1553:47821:164;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;4417:6:19;1553:47821:164;4408:4:19;4400:23;;;:120;;;;1553:47821:164;4383:251:19;;;2324:62:52;;:::i;:::-;1553:47821:164;;-1:-1:-1;;;5881:52:19;;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;5881:52:19;;;;;;;;1553:47821:164;-1:-1:-1;5877:437:19;;-1:-1:-1;;;6243:60:19;;1553:47821:164;;;;;1805:47:11;6243:60:19;5877:437;5975:40;;;-1:-1:-1;;;;;;;;;;;5975:40:19;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;-1:-1:-1;;;;;;1553:47821:164;;;;;2407:36:11;;;;1553:47821:164;;2458:15:11;:11;;2489:53;;;:::i;:::-;;1553:47821:164;;2454:148:11;6185:9;;;6181:70;;1553:47821:164;;6181:70:11;-1:-1:-1;;;6221:19:11;;1553:47821:164;;6221:19:11;1744:119;-1:-1:-1;;;1805:47:11;;1553:47821:164;;;1805:47:11;;5971:120:19;-1:-1:-1;;;6042:34:19;;1553:47821:164;;;6042:34:19;;5881:52;;;;1553:47821:164;5881:52:19;;1553:47821:164;5881:52:19;;;;;;1553:47821:164;5881:52:19;;;:::i;:::-;;;1553:47821:164;;;;;5881:52:19;;;;1553:47821:164;-1:-1:-1;1553:47821:164;;5881:52:19;;;-1:-1:-1;5881:52:19;;4383:251;-1:-1:-1;;;4594:29:19;;1553:47821:164;4594:29:19;;4400:120;-1:-1:-1;;;;;;;;;;;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;4478:42:19;;;-1:-1:-1;4400:120:19;;;1553:47821:164;;;;;;;;;;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;2992:9:60;2988:62;;1553:47821:164;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;3648:22:60;1553:47821:164;;;987:10:57;1553:47821:164;;3648:22:60;1553:47821:164;;2988:62:60;-1:-1:-1;;;3024:15:60;;1553:47821:164;3024:15:60;;1553:47821:164;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47821:164;20655:23;;1553:47821;;-1:-1:-1;;;;;;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;30373:37:169;-1:-1:-1;;;;;;;;;;;1553:47821:164;30394:15:169;30373:37;;:::i;:::-;1553:47821:164;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;1965:72:60;;:::i;:::-;29200:36:164;1553:47821;;;;29200:36;:::i;:::-;-1:-1:-1;;;;;;1553:47821:164;;;;29287:70;1553:47821;;;;29324:10;;29287:70;-1:-1:-1;;;;;;;;;;;1553:47821:164;12550:23;;1553:47821;-1:-1:-1;;;;;1553:47821:164;29247:134;;;;;1553:47821;;-1:-1:-1;;;29247:134:164;;-1:-1:-1;;;;;1553:47821:164;;;;29247:134;;1553:47821;;;;;;;;;;;;;;;;;;29247:134;1553:47821;;29247:134;;;;;;;;;1553:47821;;;;;;;;29287:70;;;1553:47821;;;;;;;;;;;;;;3785:23:61;;:::i;1553:47821:164:-;;;;;;;;;;;;;;11438:22;-1:-1:-1;;;;;;;;;;;1553:47821:164;11438:22;1553:47821;;;;;;;;;;;;;;;;;;;;;19482:51;-1:-1:-1;;;;;;;;;;;1553:47821:164;19482:51;1553:47821;;;;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;2324:62:52;;:::i;:::-;1553:47821:164;;20973:51;-1:-1:-1;;;;;;;;;;;1553:47821:164;20973:51;1553:47821;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;1965:72:60;;:::i;:::-;31243:36:164;1553:47821;;;;31243:36;:::i;:::-;31331:32;;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;;;31379:96;;;;;;1553:47821;;;;;;;;;;;;31379:96;;1553:47821;;;;;;;;31419:4;;31399:10;1553:47821;31379:96;;;:::i;:::-;;;;;;;;;1553:47821;-1:-1:-1;;1553:47821:164;;-1:-1:-1;;;31511:79:164;;31399:10;1553:47821;31511:79;;1553:47821;31419:4;1553:47821;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;31511:79;;;;;;;;;;;1553:47821;;;;;-1:-1:-1;;;;;1553:47821:164;;;;31706:70;1553:47821;;;;31399:10;;31706:70;;-1:-1:-1;;;;;;;;;;;1553:47821:164;31331:20;12550:23;1553:47821;-1:-1:-1;;;;;1553:47821:164;31649:236;;;;;1553:47821;;-1:-1:-1;;;31649:236:164;;-1:-1:-1;;;;;1553:47821:164;;;;31649:236;;1553:47821;;;;;;;;;;;;;;31649:236;1553:47821;;;31649:236;;;;;;;;;;1553:47821;;;;;;;;31706:70;;;;1553:47821;-1:-1:-1;;;1553:47821:164;;;;;31511:79;;;;1553:47821;31511:79;1553:47821;31511:79;;;;;;;:::i;:::-;;;;;1553:47821;;;;;;;;;31379:96;;;;;:::i;:::-;1553:47821;;31379:96;;;;1553:47821;;;;;;-1:-1:-1;;1553:47821:164;;;;;;:::i;:::-;;;:::i;:::-;1965:72:60;;;:::i;:::-;33311:37:164;1553:47821;;;;33311:37;:::i;:::-;-1:-1:-1;;;;;;1553:47821:164;;;;33399:70;1553:47821;;;;33436:10;;33399:70;;33359:136;;;;;1553:47821;;-1:-1:-1;;;33359:136:164;;-1:-1:-1;;;;;1553:47821:164;;;;33359:136;;1553:47821;;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;33359:136;1553:47821;-1:-1:-1;33359:136:164;;;;;;;;1553:47821;33359:136;;;33399:70;1553:47821;;;;;;;33359:136;1553:47821;33359:136;;;:::i;:::-;1553:47821;33359:136;;;1553:47821;;;;;;;;;33399:70;;;;1553:47821;;;;;;-1:-1:-1;;1553:47821:164;;;;2324:62:52;;:::i;:::-;1553:47821:164;;21370:52;-1:-1:-1;;;;;;;;;;;1553:47821:164;21370:52;1553:47821;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;19147:42;-1:-1:-1;;;;;;;;;;;1553:47821:164;19147:42;1553:47821;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47821:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47821:164;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;-1:-1:-1;;1553:47821:164;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47821:164;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47821:164;;;;:::o;2213:17::-;1553:47821;;;;;;;:::i;:::-;2213:17;1553:47821;;-1:-1:-1;;;1553:47821:164;2213:17;;;:::o;2277:3::-;;;;;;;;;;:::o;:::-;1553:47821;;;2277:3;;;;;;;;;;;;;;;:::o;:::-;1553:47821;;;2277:3;;;;;;;;2243:1:169;;;;;;;;;;1553:47821:164;;;;;;;2243:1:169;:::o;:::-;1553:47821:164;;2243:1:169;;;;;;;;:::o;2355:5:164:-;;;;;;;;;;;;;;;;:::o;2435:3::-;;;;;;;;;;;1553:47821;;;;:::i;:::-;2435:3;;;1553:47821;;;2435:3;;;1553:47821;2435:3;;;:::o;:::-;-1:-1:-1;;;;;2435:3:164;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:47821;;;;;;;:::i;:::-;2435:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:47821;;;;;:::i;:::-;2435:3;;;;;;;;1553:47821;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47821:164;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47821:164;;;;;;;:::o;14347:375::-;30373:37:169;-1:-1:-1;;;;;;;;;;;1553:47821:164;30394:15:169;30373:37;;:::i;:::-;14599:22:164;;;1553:47821;14551:22;;;;;;14704:11;;;;1553:47821;14347:375;:::o;14575:3::-;14622:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47821:164;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;14598:39;14594:90;;1553:47821;;14536:13;;14594:90;14657:12;;;;1553:47821;14657:12;:::o;1553:47821::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47821:164;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47821:164;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:47821:164;;-1:-1:-1;1553:47821:164;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:47821:164;;-1:-1:-1;1553:47821:164;;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;:::o;2659:66::-;;;;;;;;;;:::o;3426:215:52:-;-1:-1:-1;;;;;1553:47821:164;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;1553:47821:164;;-1:-1:-1;;;;;;1553:47821:164;;;;;;;-1:-1:-1;;;;;1553:47821:164;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;1553:47821:164;;3530:1:52;3555:31;2679:162;-1:-1:-1;;;;;;;;;;;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;1553:47821:164;;-1:-1:-1;2784:40:52;2730:128:60;1553:47821:164;-1:-1:-1;;;;;;;;;;;1553:47821:164;;2791:61:60;;2730:128::o;2791:61::-;2826:15;;;-1:-1:-1;2826:15:60;;-1:-1:-1;2826:15:60;38818:934:164;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;38994:19;;;;1553:47821;38994:38;1553:47821;;;;;39087:19;;;1553:47821;;;;;;;;;;;;;;39125:24;39087:62;1553:47821;;3543:209:88;1553:47821:164;3543:209:88;1553:47821:164;3543:209:88;1553:47821:164;;3543:209:88;1553:47821:164;1052:614:85;;;;;;;;-1:-1:-1;;;;;1052:614:85;;;;;1691:6:167;1052:614:85;1553:47821:164;1052:614:85;1928:66:167;4093:83:85;;2038:66:167;1553:47821:164;4093:83:85;;;2148:66:167;1553:47821:164;4093:83:85;;;2258:66:167;2250:6;4093:83:85;;;2368:66:167;2360:6;4093:83:85;;;2478:66:167;2470:6;4093:83:85;;;2588:66:167;2580:6;4093:83:85;;;2698:66:167;2690:6;4093:83:85;;;2808:66:167;2800:6;4093:83:85;;;2918:66:167;2910:6;4093:83:85;;;3028:66:167;3020:6;4093:83:85;;;3138:66:167;3130:6;4093:83:85;;;3248:66:167;3240:6;4093:83:85;;;3358:66:167;3350:6;4093:83:85;;;3468:66:167;3460:6;4093:83:85;;;3578:66:167;3570:6;4093:83:85;;;3688:66:167;3680:6;4093:83:85;;;3798:66:167;3790:6;4093:83:85;;;3908:66:167;3900:6;4093:83:85;;;4018:66:167;4010:6;4093:83:85;;;4128:66:167;4120:6;4093:83:85;;;4238:66:167;4230:6;4093:83:85;;;4348:66:167;4340:6;4093:83:85;;;4458:66:167;4450:6;4093:83:85;;;4568:66:167;4560:6;4093:83:85;;;4678:66:167;4670:6;4093:83:85;;;4788:66:167;4780:6;4093:83:85;;;4898:66:167;4890:6;4093:83:85;;;5008:66:167;5000:6;4093:83:85;;;5118:66:167;5110:6;4093:83:85;;;39547:4:164;5456:2:167;1553:47821:164;5357:66:167;;;;;5356:103;5336:6;4093:83:85;;;5512:66:167;5504:6;4093:83:85;;;39424:135:164;5590:150:167;;;;;;1553:47821:164;;;;;;;-1:-1:-1;1553:47821:164;39570:28;;;1553:47821;;;;-1:-1:-1;1553:47821:164;;39627:33;;;:35;1553:47821;;39627:35;:::i;:::-;1553:47821;;;;-1:-1:-1;;;;;1553:47821:164;;;;39678:32;;1553:47821;;39678:32;39721:24;38818:934;:::o;1553:47821::-;;;;;;;;;38818:934;;;;-1:-1:-1;;;;;;;;;;;1553:47821:164;38994:19;31274:4;38994:19;;1553:47821;38994:38;1553:47821;;;-1:-1:-1;1553:47821:164;39087:19;;;1553:47821;;;;-1:-1:-1;1553:47821:164;;;;;;;;;39125:24;39087:62;1553:47821;;3543:209:88;-1:-1:-1;3543:209:88;1553:47821:164;3543:209:88;1553:47821:164;-1:-1:-1;3543:209:88;1553:47821:164;1052:614:85;;;;;;;;-1:-1:-1;;;;;1052:614:85;;;;;1585:4:168;1052:614:85;1553:47821:164;1052:614:85;2081:66:168;4093:83:85;;39486:4:164;1052:614:85;1553:47821:164;2227:66:168;2226:105;1553:47821:164;4093:83:85;;;2382:66:168;1553:47821:164;4093:83:85;;;-1:-1:-1;2460:150:168;;;;;;1553:47821:164;;;;;;;-1:-1:-1;1553:47821:164;39570:28;;;1553:47821;;;;-1:-1:-1;1553:47821:164;;39627:33;;;:35;1553:47821;;39627:35;:::i;25599:229:169:-;1553:47821:164;;:::i;:::-;;;25777:12:169;15371:24:46;15367:103;;1553:47821:164;837:15:50;14371:24:46;14367:103;;1553:47821:164;;;;;:::i;:::-;25747:1:169;1553:47821:164;;;25777:12:169;1553:47821:164;25715:106:169;;;1553:47821:164;;837:15:50;1553:47821:164;;25715:106:169;;1553:47821:164;25599:229:169;:::o;14367:103:46:-;15418:41;;;25747:1:169;14418:41:46;14449:2;14418:41;1553:47821:164;837:15:50;1553:47821:164;;;25747:1:169;14418:41:46;15367:103;15418:41;;;25747:1:169;15418:41:46;15449:2;15418:41;1553:47821:164;25777:12:169;1553:47821:164;;;25747:1:169;15418:41:46;1553:47821:164;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47821:164;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47821:164;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24574:532:169;24699:12;-1:-1:-1;;2277:3:164;;;24574:532:169;;2277:3:164;;;;1553:47821;;24699:12:169;24739:22;;24699:12;;24739:50;1553:47821:164;24739:50:169;;24823:8;;;;;;24799:278;-1:-1:-1;1553:47821:164;;-1:-1:-1;;24574:532:169:o;24804:17::-;24862:12;;24892:11;;;;;-1:-1:-1;24714:1:169;;-1:-1:-1;;;24923:11:169:o;24888:119::-;24959:8;24955:52;;-1:-1:-1;;1553:47821:164;24804:17:169;;24955:52;24987:5;;24739:50;24768:21;24699:12;;24768:21;:::i;:::-;24739:50;;;1553:47821:164;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;39758:846::-;;39886:22;;;39919:1;39886:22;;;;:::i;:::-;:34;;;1553:47821;;39963:22;;;;:::i;:::-;:34;;;39959:177;;40190:22;;;:::i;:::-;1553:47821;;;;;;;:::i;:::-;40280:23;;;;;:::i;:::-;2355:5;;;;1553:47821;2355:5;;;;;45792:2;2355:5;;;;;;;45838:36;;;;;;:::i;:::-;45884:18;1553:47821;45918:13;1553:47821;;46053:28;1553:47821;;;;;;46053:28;;45913:685;45953:3;45933:18;;;;;;1553:47821;;;;;;;;;;;;;;46082:18;;;:::i;:::-;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;46053:53;1553:47821;;;39886:22;46176:25;;-1:-1:-1;;;;;46176:25:164;;;:::i;:::-;1553:47821;46176:30;;:72;;;45953:3;46172:144;;45953:3;-1:-1:-1;;;;;46363:18:164;;;:::i;:::-;1553:47821;;-1:-1:-1;;;46355:76:164;;45792:2;46355:76;;;1553:47821;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;-1:-1:-1;;;;;1553:47821:164;;;:::i;:::-;;;;;;45792:2;1553:47821;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45792:2;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46355:76;;;;;;;;-1:-1:-1;;;;;46355:76:164;45792:2;46355:76;;1553:47821;;46355:76;;;;;;;;1553:47821;46355:76;;;1553:47821;4093:83:85;;45792:2:164;4093:83:85;39919:1:164;4093:83:85;;;;1553:47821:164;45953:3;1553:47821;45918:13;;;46355:76;;;45792:2;46355:76;;;;;;;;;1553:47821;46355:76;;;:::i;:::-;;;1553:47821;;;;;39919:1;46355:76;;;;;-1:-1:-1;46355:76:164;;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;;;45792:2;1553:47821;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;:::i;:::-;;45792:2;1553:47821;;;;;;;-1:-1:-1;;1553:47821:164;;;;;;;;;;;;45792:2;1553:47821;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;39886:22;1553:47821;;;:::i;:::-;;;;;;;;;;39886:22;1553:47821;;;;;;;;;;;;;;;;;;45792:2;1553:47821;;;;;;;;39919:1;1553:47821;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46172:144;46276:25;;;;;:::i;:::-;46172:144;;;46176:72;46211:37;;1553:47821;46211:37;;;:::i;:::-;46210:38;46176:72;;45933:18;;;;;;;;;;1083:131:88;40332:16:164;1553:47821;45792:2;40332:16;;1553:47821;;40320:29;45792:2;1553:47821;;;;;40320:29;40363:32;1553:47821;40363:46;40359:127;;45913:685;1553:47821;;17972:64:169;45792:2:164;17972:64:169;;1553:47821:164;;;;;;;;;;;;17972:64:169;;;39886:22:164;17972:64:169;;:::i;:::-;1553:47821:164;17962:75:169;;39758:846:164;:::o;40359:127::-;40430:45;45792:2;1553:47821;;;;;40430:45;40359:127;;39959:177;40105:20;;;40112:13;40105:20;:::o;1553:47821::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;42054:1705::-;42184:24;;;42219:1;42184:24;;;;:::i;:::-;:36;;;1553:47821;;42265:24;;;;:::i;:::-;:36;;;42261:179;;42496:24;;;;:::i;:::-;1553:47821;;;;;;;;;;;;;;;;;;42542:21;;;;;42566;42542;;;:::i;:::-;42566;;;1553:47821;42566:21;;;;:::i;:::-;1553:47821;;;42542:45;1553:47821;;;42645:21;;;:::i;:::-;1553:47821;42670:29;;;;1553:47821;42566:21;1553:47821;;;;42645:54;1553:47821;;42856:46;1553:47821;42880:21;42776:46;42800:21;;;;:::i;:::-;1553:47821;42776:46;;:::i;:::-;42880:21;;:::i;:::-;1553:47821;42856:46;;:::i;:::-;-1:-1:-1;1553:47821:164;;;43024:31;;;1553:47821;43093:32;;;;1553:47821;;;;;-1:-1:-1;;;;;1553:47821:164;;;;43192:19;;;;1553:47821;;;;42566:21;;1553:47821;43080:144;43161:62;42566:21;43192:19;;1553:47821;43192:19;:::i;:::-;:31;1553:47821;43161:62;;:::i;:::-;43192:19;1553:47821;;;;;;;;;43080:144;;;;;;1553:47821;;;;;43080:144;;;;;;;1553:47821;43080:144;;;42054:1705;1553:47821;;;;;43192:19;1553:47821;-1:-1:-1;;;43314:185:164;;-1:-1:-1;;;;;1553:47821:164;;;43080:144;43314:185;;1553:47821;;;;;;;;42566:21;43459:26;;;1553:47821;43080:144;1553:47821;;;;43314:185;1553:47821;-1:-1:-1;43314:185:164;;;;;;;;1553:47821;43314:185;;;42054:1705;43600:19;;;;;:::i;:::-;43621:21;;;;:::i;:::-;1553:47821;43192:19;1553:47821;;;;;43551:92;;43192:19;43080:144;43551:92;;1553:47821;;;;;;;;;;;;;;;;;;;;42566:21;1553:47821;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;43093:32;1553:47821;;;;;;;42542:21;43080:144;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;42566:21;1553:47821;;;;;;;;;;;43314:185;1553:47821;;;;43192:19;1553:47821;;;;;;;;:::i;:::-;;;;;;;;;;;43551:92;;;;;;;;;1553:47821;43551:92;;;1553:47821;43730:21;;;;:::i;:::-;43192:19;1553:47821;19021:70:169;42566:21:164;19021:70:169;;1553:47821:164;;;43192:19;1553:47821;;;2277:3;1553:47821;;;;;;42542:21;1553:47821;;;19021:70:169;;;;;;;:::i;43551:92:164:-;;;;42566:21;43551:92;;42566:21;43551:92;;;;;;1553:47821;43551:92;;;:::i;:::-;;;1553:47821;;;;;;43730:21;43551:92;;;;;-1:-1:-1;43551:92:164;;1553:47821;;;;;;;43192:19;1553:47821;42219:1;1553:47821;;;;;;;;;:::i;:::-;;;;42566:21;1553:47821;;;42566:21;1553:47821;;;;;;;;;;;;;;;;43314:185;;;;;42566:21;43314:185;;42566:21;43314:185;;;;;;1553:47821;43314:185;;;:::i;:::-;;;1553:47821;;;;;;;43600:19;43314:185;;;;;-1:-1:-1;43314:185:164;;1553:47821;;;;;;43080:144;1553:47821;;43080:144;;;;42566:21;43080:144;42566:21;43080:144;;;;;;;:::i;:::-;;;;1553:47821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;43826:1705::-;;43959:27;;;43997:1;43959:27;;;;:::i;:::-;:39;;;1553:47821;;44046:27;;;;:::i;:::-;:39;;;44042:182;;44283:27;;;:::i;:::-;1553:47821;;;;;;;;;;;;;;;;;;44332:22;;;;;;;:::i;:::-;:33;;;1553:47821;;;44499:29;;;1553:47821;;;;44481:15;:47;:15;;:47;:::i;:::-;44480:72;44532:16;;;1553:47821;44480:72;;;:::i;:::-;44571:20;;;;1553:47821;2659:66;43997:1;2659:66;;;;;;;44571:43;;1553:47821;;44705:43;;44673:75;44705:43;;:::i;:::-;44673:75;;:::i;:::-;44800:25;44785:40;44800:25;;;1553:47821;44785:40;;:::i;:::-;44481:15;44766:59;1553:47821;;44944:34;;;:::i;:::-;44996:28;1553:47821;44996:28;;44481:15;;1553:47821;;44996:46;1553:47821;;;45191:34;;;:::i;:::-;45239:31;1553:47821;45239:31;;45284:45;;;;;2435:3;;45284:45;;;;:::i;:::-;45343:22;;;;;;:::i;:::-;1553:47821;;;2435:3;1553:47821;2435:3;;:::i;:::-;1553:47821;;2435:3;;:::i;:::-;47042:752;;;43826:1705;47808:13;;1553:47821;47808:13;;;47827:16;1553:47821;47827:16;;;47925:15;;47803:168;47852:3;1553:47821;;47823:27;;;;;1553:47821;;;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;-1:-1:-1;;1553:47821:164;;;43997:1;1553:47821;47808:13;;47823:27;;;;;;;;;;1553:47821;48027:3;1553:47821;;48000:25;;;;;43997:1;;-1:-1:-1;;;;;48067:17:164;1553:47821;48067:17;;:::i;:::-;2277:3;1553:47821;;;;;;;-1:-1:-1;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;;47985:13;;48000:25;;;;;;;;;;;;1553:47821;;;-1:-1:-1;;;;;1553:47821:164;;;;-1:-1:-1;;;1553:47821:164;;;;;;;;;;;;;;;;47980:163;1553:47821;;;;;;;;;;;;;;;;;;;;45417:47;1553:47821;;;;;;45417:47;1553:47821;;;;;;;;;;44571:20;1553:47821;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;45284:45;1553:47821;;;;44332:22;1553:47821;;;;;;19466:30:169;;2243:1;1553:47821:164;2243:1:169;;19516:32;;2243:1;1553:47821:164;;;19381:257:169;;;1553:47821:164;19381:257:169;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47821:164;;19381:257:169;;;;;;1553:47821:164;19381:257:169;;;:::i;1553:47821:164:-;;;-1:-1:-1;;;;;1553:47821:164;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;43997:1;1553:47821;;;;2277:3;;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;43997:1;1553:47821;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;47042:752;2243:1:169;;47503:25:164;1553:47821;47503:25;;2243:1:169;;;1145:66:90;;1837:24:89;;:71;;;;47042:752:164;1553:47821;;;;;2243:1:169;1553:47821:164;;2243:1:169;43997::164;1553:47821;;;1745:1673:171;;;;;;;;;;;;;;;;;;;1553:47821:164;1745:1673:171;;;;;;;44499:29:164;47679:52;;1553:47821;;-1:-1:-1;;;;;;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;-1:-1:-1;;47042:752:164;;1745:1673:171;;1553:47821:164;1745:1673:171;;;;1553:47821:164;;;;;;;;;1837:71:89;1865:43;;;;:::i;:::-;1837:71;;;;1553:47821:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26319:3813:169;;;;;;1553:47821:164;34317:29:169;;;1553:47821:164;;;;34349:22:169;26688:15;34349:22;;:::i;:::-;34317:77;34349:45;34374:16;;;1553:47821:164;34349:45:169;;;:::i;:::-;34317:77;;:::i;:::-;26718:15;;;;;;:82;;26319:3813;26714:676;;;26824:35;;;1553:47821:164;;26909:25:169;;;;:::i;:::-;:39;1553:47821:164;;27484:24:169;26714:676;;27484:24;;:::i;:::-;3270:200:43;-1:-1:-1;;;1553:47821:164;3270:200:43;27549:4:169;3270:200:43;;34317:29:169;3270:200:43;34374:16:169;3270:200:43;;1553:47821:164;3270:200:43;1553:47821:164;34317:29:169;1553:47821:164;;;;;27612:37:169;;;27673:23;;34317:19;27673:23;;1553:47821:164;;;;;;;2435:3;1553:47821;;:::i;:::-;2435:3;;;:::i;:::-;1553:47821;3270:200:43;1553:47821:164;;27804:23:169;1553:47821:164;;27994:240:169;1553:47821:164;28515:272:169;27994:240;;;3270:200:43;27994:240:169;;;;;;;1553:47821:164;34317:19:169;1553:47821:164;;28604:32:169;;1553:47821:164;28515:272:169;;:::i;1553:47821:164:-;;;;;;;;;;;;;;;;;;27608:2495:169;1553:47821:164;;;34317:19:169;28808:37;28804:1299;;27608:2495;;;;;1553:47821:164;26319:3813:169;:::o;28804:1299::-;28881:199;28918:15;28958:25;28918:15;;;;;1553:47821:164;28958:25:169;;1553:47821:164;;-1:-1:-1;;;;;1553:47821:164;;;;;28881:199:169;;:::i;:::-;29095:27;1553:47821:164;29142:13:169;29338:14;1553:47821:164;29338:14:169;;29137:929;29181:3;29157:22;;;;;;5489:8:40;5433:27;2435:3:164;1553:47821;;;;;;;;:::i;2435:3::-;5433:27:40;;:::i;5489:8::-;-1:-1:-1;;;;;1553:47821:164;;;;;;;;;;;;;;;;29334:718:169;;29181:3;;34317:19;29181:3;29142:13;1553:47821:164;29142:13:169;;29334:718;-1:-1:-1;;;;;2774:163:36;1553:47821:164;2774:163:36;;;2102:66:164;1553:47821;2774:163:36;;;;3327:69:39;;29697:50:169;;;29775:8;34317:19;29775:8;;;29693:223;3556:68:39;34317:19:169;29942:17;3556:68:39;;;29942:17:169;:::i;:::-;:30;;;;29938:96;;29334:718;;;29938:96;30000:11;;;;;;;34317:19;30000:11;:::o;29157:22::-;;;;;;;;1553:47821:164;30080:12:169;:::o;1553:47821:164:-;;;;;;;;;;;;;;;;;;26714:676:169;26688:15;;;;;;27183:21;;1553:47821:164;;27484:24:169;27241:69;;;26714:676;;;;27241:69;27280:15;;27241:69;;;1553:47821:164;;;;;;;;;26718:82:169;26768:32;26755:45;26768:32;;;1553:47821:164;26755:45:169;;:::i;:::-;26688:15;26737:63;26718:82;;33166:456;-1:-1:-1;;;;;33166:456:169;;1553:47821:164;;;;33475:24:169;;;;:::i;:::-;1553:47821:164;;;;;;33587:5:169;1553:47821:164;;33600:1:169;1553:47821:164;33166:456:169;:::o;3821:191:61:-;1553:47821:164;;:::i;:::-;;;;;;6463:31:61;1553:47821:164;;:::i;:::-;;;;;;6801:34:61;1553:47821:164;;3912:92:61;1553:47821:164;3912:92:61;;1553:47821:164;1977:95:61;1553:47821:164;;;1977:95:61;;1553:47821:164;1977:95:61;;;1553:47821:164;3975:13:61;1977:95;;;1553:47821:164;3998:4:61;1977:95;;;1553:47821:164;1977:95:61;3912:92;;;;;;:::i;31082:312:169:-;;31205:37;31082:312;31205:37;;:::i;:::-;;;;31265;;31258:44;:::o;31201:187::-;31340:37;;31333:44;:::o;7082:141:18:-;1553:47821:164;-1:-1:-1;;;;;;;;;;;1553:47821:164;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;1553:47821:164;;-1:-1:-1;;;;;1553:47821:164;;;;;;;:::o;863:809:85:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:85;;;-1:-1:-1;;;;;1052:614:85;;;;;;;;;;863:809::o;33807:179:169:-;33959:16;33921:34;33920:59;33807:179;1553:47821:164;33926:29:169;;;1553:47821:164;;;;33921:34:169;;:::i;:::-;33959:16;;1553:47821:164;33920:59:169;;:::i;30623:322::-;30743:50;30777:15;30743:50;;:::i;:::-;30777:15;;;30816:37;;30809:44;:::o;30739:200::-;30891:37;;30884:44;:::o;7001:1787:83:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:83;;;8025:68;;2933:1:90;2929:5;4026:14:83;2659:66:164;4010:31:83;;;:::i;:::-;1553:47821:164;425:3:83;1553:47821:164;;;4003:1:90;2933;2929:5;;1553:47821:164;425:3:83;4492:84:85;;;4093:83;2659:66:164;4093:83:85;;;4003:1:90;1553:47821:164;;2659:66;4492:84:85;;;2659:66:164;4093:83:85;;;;;2659:66:164;4093:83:85;;;1581:66:83;2659::164;4093:83:85;;;-1:-1:-1;;;2659:66:164;4093:83:85;;;531:131:88;;2659:66:164;4093:83:85;;;;;;4003:1:90;2659:66:164;4492:84:85;;2933:1:90;4492:84:85;;2659:66:164;531:131:88;;5696:10:83;;;4093:83:85;;4492:84;2659:66:164;1145::90;;531:131:88;;6084:3:83;1553:47821:164;-1:-1:-1;;;;;1553:47821:164;;;6084:3:83;1553:47821:164;;6062:44:83;1145:66:90;;;1860::83;1553:47821:164;1860:66:83;;1553:47821:164;6037:2:83;1553:47821:164;6140:32:83;6133:57;8567:14;;8563:57;;1145:66:90;3386:2;6084:3:83;1145:66:90;1553:47821:164;1145:66:90;648:2:83;1145:66:90;;;6396:43:89;;1145:66:90;;1553:47821:164;4093:83:85;;1553:47821:164;4093:83:85;;;;;6037:2:83;4093:83:85;;;1145:66:90;;6954:42:89;;-1:-1:-1;;1553:47821:164;1530:4:87;4093:83:85;;;;;;2933:1:90;1640:140:87;;;1553:47821:164;1640:140:87;3543:209:88;1553:47821:164;3543:209:88;648:2:83;3543:209:88;1553:47821:164;;;;;6037:2:83;1553:47821:164;3543:209:88;4476:141:90;9285:100:89;7001:1787:83;:::o;8025:68::-;8070:12;;;;;;1553:47821:164;8070:12:83;:::o;34741:467:169:-;1553:47821:164;;:::i;:::-;-1:-1:-1;35045:51:169;;;1553:47821:164;35163:27:169;;;1553:47821:164;;;;;;;;35116:15:169;;-1:-1:-1;;;;;1553:47821:164;;;;:::i;:::-;;;;:::i;:::-;;;34904:297:169;;;2277:3:164;35116:15:169;1553:47821:164;:::i;:::-;;34904:297:169;;1553:47821:164;34904:297:169;;;1553:47821:164;34741:467:169;:::o;7129:1551:40:-;;;8209:66;8196:79;;8192:164;;1553:47821:164;;;;;;-1:-1:-1;1553:47821:164;;;;;;;;;;;;;;;;;;;8467:24:40;;;;;;;;;-1:-1:-1;8467:24:40;-1:-1:-1;;;;;1553:47821:164;;8505:20:40;8501:113;;8624:49;-1:-1:-1;8624:49:40;-1:-1:-1;7129:1551:40;:::o;8501:113::-;8541:62;-1:-1:-1;8541:62:40;8467:24;8541:62;-1:-1:-1;8541:62:40;:::o;8192:164::-;8291:54;;;8307:1;8291:54;8311:30;8291:54;;:::o;11617:532::-;1553:47821:164;;;;;;11703:29:40;;;11748:7;;:::o;11699:444::-;1553:47821:164;11799:38:40;;1553:47821:164;;11860:23:40;;;11712:20;11860:23;1553:47821:164;11712:20:40;11860:23;11795:348;11913:35;11904:44;;11913:35;;11971:46;;;;11712:20;11971:46;1553:47821:164;;;11712:20:40;11971:46;11900:243;12047:30;12038:39;12034:109;;11900:243;11617:532::o;12034:109::-;12100:32;;;11712:20;12100:32;1553:47821:164;;;11712:20:40;12100:32;31801:863:169;;32047:54;31969;;;1553:47821:164;32047:54:169;;1553:47821:164;32175:10:169;;;1553:47821:164;;32246:9:169;;;;32278;;;;;32310;;;32411:14;;;;;31801:863;1553:47821:164;;;32627:30:169;;;32620:37;;31801:863;:::o;32627:30::-;32642:14;;31801:863;-1:-1:-1;31801:863:169:o;1553:47821:164:-;;;;-1:-1:-1;1553:47821:164;;-1:-1:-1;1553:47821:164;32411:14:169;;;;;1553:47821:164;;;;-1:-1:-1;1553:47821:164;;-1:-1:-1;1553:47821:164;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;1553:47821:164;;;;5045:24:25;1553:47821:164;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;1553:47821:164;;;-1:-1:-1;1553:47821:164;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;;2419:778:40;1553:47821:164;;;2419:778:40;2609:2;2589:22;;2609:2;;3041:25;2825:196;;;;;;;;;;;;;;;-1:-1:-1;2825:196:40;3041:25;;:::i;:::-;3034:32;;;;;:::o;2585:606::-;3097:83;;3113:1;3097:83;3117:35;3097:83;;:::o;1767:250:90:-;-1:-1:-1;;912:66:90;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:90;;1948:15;:62;1767:250;:::o","linkReferences":{},"immutableReferences":{"1929":[{"start":11244,"length":32},{"start":11392,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,bytes32,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"a90fbdd7","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":"ee32004f","createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":"0d91bf2a","eip712Domain()":"84b0196e","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":"8c4ace6a","requestCodeValidationBaseFee()":"188509e9","requestCodeValidationExtraFee()":"f1ef31ec","requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":"f0fd702a","setMirror(address)":"3d43b418","setRequestCodeValidationBaseFee(uint256)":"11bec80d","setRequestCodeValidationExtraFee(uint256)":"0b9737ce","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"providedBlobHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedBlobHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidBlobHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedLength\",\"type\":\"uint256\"}],\"name\":\"InvalidBlobHashesLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ethBlockHash\",\"type\":\"bytes32\"}],\"name\":\"EBCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"MBCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastAdvancedEthBlock\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasAggregatedPublicKey\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"createProgramWithAbiInterfaceAndExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"createProgramWithExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationExtraFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_requester\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"_blobHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v1\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s1\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_v2\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s2\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidationOnBehalf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExtraFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationExtraFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxValidators\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationBaseFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationExtraFee\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BlobNotFound()\":[{\"details\":\"Thrown when the tx is not in EIP-4844/EIP-7594 format, so it doesn't have blobhashes.\"}],\"CodeAlreadyOnValidationOrValidated()\":[{\"details\":\"Thrown when the code is already on validation or validated.\"}],\"CodeNotValidated()\":[{\"details\":\"Thrown when the code is not validated and someone tries to create program with it.\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"EraDurationTooShort()\":[{\"details\":\"Thrown when the era duration is too short (era duration must be greater than election duration).\"}],\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"ExpiredSignature(uint256)\":[{\"details\":\"Thrown when deadline for code validation request has expired.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"GenesisHashAlreadySet()\":[{\"details\":\"Thrown when the genesis hash is already set by someone else.\"}],\"GenesisHashNotFound()\":[{\"details\":\"Thrown when the genesis hash is not found from previous blocks. There is 256 blocks lookback for `blockhash` opcode, so if the genesis block is too old, it may not be found.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidBlobHash(uint256,bytes32,bytes32)\":[{\"details\":\"Thrown when the blobhash for code validation request is invalid.\"}],\"InvalidBlobHashesLength(uint256,uint256)\":[{\"details\":\"Thrown when the provided blob hashes length doesn't match the actual blob hashes length in transaction.\"}],\"InvalidElectionDuration()\":[{\"details\":\"Thrown when an invalid election duration is provided (must be greater than 0).\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidSigner(address,address)\":[{\"details\":\"Thrown when the signer of the code validation request is not the requester.\"}],\"InvalidTimestamp()\":[{\"details\":\"Thrown when an invalid block.timestamp is provided (must be greater than 0).\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"RouterGenesisHashNotInitialized()\":[{\"details\":\"Thrown when the router's genesis hash is not initialized (no one called `lookupGenesisHash` yet).\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in a uint of `bits` size.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidationDelayTooBig()\":[{\"details\":\"Thrown when the validation delay is too big.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"events\":{\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch hash (`keccak256` algorithm), see `Gear.batchCommitmentHash(...)`.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, one the client side it's calculated as `gprimitives::CodeId::generate(wasm_code)`.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"EBCommitted(bytes32)\":{\"details\":\"Lets observers update `last_committed_eb` so the producer can decide when to issue a checkpoint batch even with no transitions.\",\"params\":{\"ethBlockHash\":\"Latest Ethereum block hash whose events were folded into the chain commitment's MB head.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MBCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\"}},\"StorageSlotChanged(bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\",\"params\":{\"slot\":\"The new storage slot.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\",\"returns\":{\"_0\":\"domainSeparator The domain separator.\"}},\"areValidators(address[])\":{\"details\":\"Checks if the given addresses are all validators.\",\"returns\":{\"_0\":\"areValidators `true` if all addresses are validators, `false` otherwise.\"}},\"codeState(bytes32)\":{\"details\":\"Returns the state of code.\",\"returns\":{\"_0\":\"codeState The state of the code.\"}},\"codesStates(bytes32[])\":{\"details\":\"Returns the states of multiple codes.\",\"returns\":{\"_0\":\"codesStates The states of the codes.\"}},\"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,bytes32,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])\":{\"details\":\"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\",\"params\":{\"_batch\":\"The batch commitment data.\",\"_signatureType\":\"The type of signature to validate.\",\"_signatures\":\"The signatures for the batch commitment.\"}},\"computeSettings()\":{\"details\":\"Returns the computation settings.\",\"returns\":{\"_0\":\"computeSettings The computation settings.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createProgram(bytes32,bytes32,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterface(bytes32,bytes32,address,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"genesisBlockHash()\":{\"details\":\"Returns the hash of the genesis block.\",\"returns\":{\"_0\":\"genesisBlockHash The hash of the genesis block.\"}},\"genesisTimestamp()\":{\"details\":\"Returns the timestamp of the genesis block.\",\"returns\":{\"_0\":\"genesisTimestamp The timestamp of the genesis block.\"}},\"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])\":{\"details\":\"Initializes the `Router` with the given parameters.\",\"params\":{\"_aggregatedPublicKey\":\"The optional aggregated public key of the initial validators. Will be used in future.\",\"_electionDuration\":\"The duration of an election in seconds.\",\"_eraDuration\":\"The duration of an era in seconds.\",\"_middleware\":\"The address of the middleware contract.\",\"_mirror\":\"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\",\"_owner\":\"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\",\"_validationDelay\":\"The delay before validators can start validating in seconds.\",\"_validators\":\"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.\",\"_verifiableSecretSharingCommitment\":\"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\",\"_wrappedVara\":\"The address of the `WrappedVara` (WVARA) ERC20 token contract.\"}},\"isValidator(address)\":{\"details\":\"Checks if the given address is a validator.\",\"returns\":{\"_0\":\"isValidator `true` if the address is a validator, `false` otherwise.\"}},\"latestCommittedBatchHash()\":{\"details\":\"Returns the hash of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchHash The hash of the latest committed batch.\"}},\"latestCommittedBatchTimestamp()\":{\"details\":\"Returns the timestamp of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchTimestamp The timestamp of the latest committed batch.\"}},\"lookupGenesisHash()\":{\"details\":\"Looks up the genesis hash from previous blocks.\"},\"middleware()\":{\"details\":\"Returns the address of the middleware implementation.\",\"returns\":{\"_0\":\"middleware The address of the middleware implementation.\"}},\"mirrorImpl()\":{\"details\":\"Returns the address of the mirror implementation.\",\"returns\":{\"_0\":\"mirrorImpl The address of the mirror implementation.\"}},\"nonces(address)\":{\"details\":\"Returns the next unused nonce for an address.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Pauses the contract.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\",\"returns\":{\"_0\":\"isPaused `true` if the contract is paused, `false` otherwise.\"}},\"programCodeId(address)\":{\"details\":\"Returns the code ID of the given program.\",\"returns\":{\"_0\":\"codeId The code ID of the program.\"}},\"programsCodeIds(address[])\":{\"details\":\"Returns the code IDs of the given programs.\",\"returns\":{\"_0\":\"codesIds The code IDs of the programs.\"}},\"programsCount()\":{\"details\":\"Returns the count of programs.\",\"returns\":{\"_0\":\"programsCount The count of programs.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\",\"details\":\"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.\",\"params\":{\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\"}},\"requestCodeValidationBaseFee()\":{\"details\":\"Returns the base fee for requesting code validation in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationBaseFee The base fee for requesting code validation.\"}},\"requestCodeValidationExtraFee()\":{\"details\":\"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else.\"}},\"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.\",\"params\":{\"_blobHashes\":\"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.\",\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_r2\":\"ECDSA signature parameter (for permit).\",\"_requester\":\"The address of the requester on behalf of whom the code validation is requested.\",\"_s1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_s2\":\"ECDSA signature parameter (for permit).\",\"_v1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_v2\":\"ECDSA signature parameter (for permit).\"}},\"setMirror(address)\":{\"details\":\"Sets the `Mirror` implementation address.\",\"params\":{\"newMirror\":\"The new mirror implementation address.\"}},\"setRequestCodeValidationBaseFee(uint256)\":{\"details\":\"Sets the base fee for requesting code validation in WVARA ERC20 token.\",\"params\":{\"newBaseFee\":\"The new base fee for requesting code validation.\"}},\"setRequestCodeValidationExtraFee(uint256)\":{\"details\":\"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"params\":{\"newExtraFee\":\"The new extra fee for requesting code validation on behalf of someone else.\"}},\"signingThresholdFraction()\":{\"details\":\"Returns the signing threshold fraction.\",\"returns\":{\"thresholdDenominator\":\"The denominator of the signing threshold fraction.\",\"thresholdNumerator\":\"The numerator of the signing threshold fraction.\"}},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\",\"returns\":{\"_0\":\"storageView The storage view of the contract storage.\"}},\"timelines()\":{\"details\":\"Returns the timelines.\",\"returns\":{\"_0\":\"timelines The timelines.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Unpauses the contract.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"validatedCodesCount()\":{\"details\":\"Returns the count of validated codes.\",\"returns\":{\"_0\":\"validatedCodesCount The count of validated codes.\"}},\"validators()\":{\"details\":\"Returns the list of current validators.\",\"returns\":{\"_0\":\"validators The list of current validators.\"}},\"validatorsAggregatedPublicKey()\":{\"details\":\"Returns the aggregated public key of the current validators.\",\"returns\":{\"_0\":\"validatorsAggregatedPublicKey The aggregated public key of the current validators.\"}},\"validatorsCount()\":{\"details\":\"Returns the count of current validators.\",\"returns\":{\"_0\":\"validatorsCount The count of current validators.\"}},\"validatorsThreshold()\":{\"details\":\"Returns the threshold number of validators required for a valid signature.\",\"returns\":{\"_0\":\"threshold The threshold number of validators required for a valid signature.\"}},\"validatorsVerifiableSecretSharingCommitment()\":{\"details\":\"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\",\"returns\":{\"_0\":\"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators.\"}},\"wrappedVara()\":{\"details\":\"Returns the address of the wrapped Vara implementation.\",\"returns\":{\"_0\":\"wrappedVara The address of the wrapped Vara implementation.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its `Gear.CodeState` changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"EBCommitted(bytes32)\":{\"notice\":\"Emitted when a chain commitment carrying a `lastAdvancedEthBlock` lands on-chain.\"},\"MBCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol\":{\"keccak256\":\"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9\",\"dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e\",\"dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95\",\"dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x1149f6c3445a564f5b9cd27c2dc85c6bcaed254c67cb57a416bc7ca1f667ad1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a72ecd1a82f8ece4d83280a4920a6269e83bec971a27d0ce2e3a21d2ae08450\",\"dweb:/ipfs/QmSn68D8stm6b7m4nZndhTqincMQdoTqNrRXmAReV9Xb2r\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd\",\"dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN\"]},\"dependencies/frost-secp256k1-evm-master/src/FROST.sol\":{\"keccak256\":\"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28\",\"dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol\":{\"keccak256\":\"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f\",\"dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1\",\"dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739\",\"dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d\",\"dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY\"]},\"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa\",\"dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59\",\"dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xcab25323c350222e48ad9dfd84325ffd36b4e34d4ae3a0a49932d8a1c95e501e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://71df44d61da238cb41cf2701c7cb15af7815f1b7cab46d3a0c0fa5ba0a15aed7\",\"dweb:/ipfs/QmT78yRqQoPHGafTzKyjUK6Dnm7XLpV4RnUQsEZ62PHWUi\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19\",\"dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2\",\"dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k\"]},\"src/Router.sol\":{\"keccak256\":\"0x8856eae0379d4b160a42de3ff849b9fab661f43534d96d0118ef1fa23afe8c4d\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://fa2fcddba170ff5b2634b2d9d8c70203fd1849d505235926cda65cddca1c9e69\",\"dweb:/ipfs/QmZAR7Pis6gfrUm7SyqSVuXU69cubq3iqrMQFEypF1Y8gC\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0x6cb1246f6ab6bb8b6192be94a75fda503d7f692b0b5f2a051d55dce7c2e63cee\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6740c26af24c90880a7b92245d33afaf5ae81643102f878661ce9a345caa5e79\",\"dweb:/ipfs/Qmceviu8mqoXZLu7FLL88TPXKGNyzAnsF1jXm1UsLCMfyE\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0xadbc9b06486d060323f636b3a72f47495cc992bf7483837bdf6710ca954a7354\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://3e34e91e60cf1020fc03b8ab62b6f946b1d958b0308d900c4fe416c447b1260f\",\"dweb:/ipfs/QmbKUa3P3pqnDe7bTikZu1veQFCVXZKkCRA4YZGhXurP8h\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd\",\"dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0x5a9e53b62f5198b3e2c07c523c82de277725b392df34dd0a8ed2ea8f77bd7d5f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://72fb6f6f7141cecefefe6babfb437cfa7b698be6a5df3cba2846d052eb5e94f7\",\"dweb:/ipfs/QmUMXq9okbsTenwnRG2RD4PrqXJWDDV9KvTLpUViqyLS37\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32","name":"providedBlobHash","type":"bytes32"},{"internalType":"bytes32","name":"expectedBlobHash","type":"bytes32"}],"type":"error","name":"InvalidBlobHash"},{"inputs":[{"internalType":"uint256","name":"providedLength","type":"uint256"},{"internalType":"uint256","name":"expectedLength","type":"uint256"}],"type":"error","name":"InvalidBlobHashesLength"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"requester","type":"address"}],"type":"error","name":"InvalidSigner"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"ethBlockHash","type":"bytes32","indexed":false}],"type":"event","name":"EBCommitted","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"MBCommitted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]},{"internalType":"bytes32","name":"head","type":"bytes32"},{"internalType":"bytes32","name":"lastAdvancedEthBlock","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"bool","name":"hasAggregatedPublicKey","type":"bool"},{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterfaceAndExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationExtraFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_requester","type":"address"},{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32[]","name":"_blobHashes","type":"bytes32[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v1","type":"uint8"},{"internalType":"bytes32","name":"_r1","type":"bytes32"},{"internalType":"bytes32","name":"_s1","type":"bytes32"},{"internalType":"uint8","name":"_v2","type":"uint8"},{"internalType":"bytes32","name":"_r2","type":"bytes32"},{"internalType":"bytes32","name":"_s2","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidationOnBehalf"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"uint256","name":"newBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationBaseFee"},{"inputs":[{"internalType":"uint256","name":"newExtraFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationExtraFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"},{"internalType":"uint16","name":"maxValidators","type":"uint16"},{"internalType":"uint256","name":"requestCodeValidationBaseFee","type":"uint256"},{"internalType":"uint256","name":"requestCodeValidationExtraFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.","returns":{"_0":"domainSeparator The domain separator."}},"areValidators(address[])":{"details":"Checks if the given addresses are all validators.","returns":{"_0":"areValidators `true` if all addresses are validators, `false` otherwise."}},"codeState(bytes32)":{"details":"Returns the state of code.","returns":{"_0":"codeState The state of the code."}},"codesStates(bytes32[])":{"details":"Returns the states of multiple codes.","returns":{"_0":"codesStates The states of the codes."}},"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,bytes32,(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":{"details":"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.","params":{"_batch":"The batch commitment data.","_signatureType":"The type of signature to validate.","_signatures":"The signatures for the batch commitment."}},"computeSettings()":{"details":"Returns the computation settings.","returns":{"_0":"computeSettings The computation settings."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createProgram(bytes32,bytes32,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterface(bytes32,bytes32,address,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"genesisBlockHash()":{"details":"Returns the hash of the genesis block.","returns":{"_0":"genesisBlockHash The hash of the genesis block."}},"genesisTimestamp()":{"details":"Returns the timestamp of the genesis block.","returns":{"_0":"genesisTimestamp The timestamp of the genesis block."}},"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":{"details":"Initializes the `Router` with the given parameters.","params":{"_aggregatedPublicKey":"The optional aggregated public key of the initial validators. Will be used in future.","_electionDuration":"The duration of an election in seconds.","_eraDuration":"The duration of an era in seconds.","_middleware":"The address of the middleware contract.","_mirror":"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.","_owner":"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.","_validationDelay":"The delay before validators can start validating in seconds.","_validators":"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.","_verifiableSecretSharingCommitment":"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.","_wrappedVara":"The address of the `WrappedVara` (WVARA) ERC20 token contract."}},"isValidator(address)":{"details":"Checks if the given address is a validator.","returns":{"_0":"isValidator `true` if the address is a validator, `false` otherwise."}},"latestCommittedBatchHash()":{"details":"Returns the hash of the latest committed batch.","returns":{"_0":"latestCommittedBatchHash The hash of the latest committed batch."}},"latestCommittedBatchTimestamp()":{"details":"Returns the timestamp of the latest committed batch.","returns":{"_0":"latestCommittedBatchTimestamp The timestamp of the latest committed batch."}},"lookupGenesisHash()":{"details":"Looks up the genesis hash from previous blocks."},"middleware()":{"details":"Returns the address of the middleware implementation.","returns":{"_0":"middleware The address of the middleware implementation."}},"mirrorImpl()":{"details":"Returns the address of the mirror implementation.","returns":{"_0":"mirrorImpl The address of the mirror implementation."}},"nonces(address)":{"details":"Returns the next unused nonce for an address."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"Pauses the contract."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise.","returns":{"_0":"isPaused `true` if the contract is paused, `false` otherwise."}},"programCodeId(address)":{"details":"Returns the code ID of the given program.","returns":{"_0":"codeId The code ID of the program."}},"programsCodeIds(address[])":{"details":"Returns the code IDs of the given programs.","returns":{"_0":"codesIds The code IDs of the programs."}},"programsCount()":{"details":"Returns the count of programs.","returns":{"_0":"programsCount The count of programs."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":"","details":"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.","params":{"_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter."}},"requestCodeValidationBaseFee()":{"details":"Returns the base fee for requesting code validation in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationBaseFee The base fee for requesting code validation."}},"requestCodeValidationExtraFee()":{"details":"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."}},"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.","params":{"_blobHashes":"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.","_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r1":"ECDSA signature parameter (for requestCodeValidation).","_r2":"ECDSA signature parameter (for permit).","_requester":"The address of the requester on behalf of whom the code validation is requested.","_s1":"ECDSA signature parameter (for requestCodeValidation).","_s2":"ECDSA signature parameter (for permit).","_v1":"ECDSA signature parameter (for requestCodeValidation).","_v2":"ECDSA signature parameter (for permit)."}},"setMirror(address)":{"details":"Sets the `Mirror` implementation address.","params":{"newMirror":"The new mirror implementation address."}},"setRequestCodeValidationBaseFee(uint256)":{"details":"Sets the base fee for requesting code validation in WVARA ERC20 token.","params":{"newBaseFee":"The new base fee for requesting code validation."}},"setRequestCodeValidationExtraFee(uint256)":{"details":"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","params":{"newExtraFee":"The new extra fee for requesting code validation on behalf of someone else."}},"signingThresholdFraction()":{"details":"Returns the signing threshold fraction.","returns":{"thresholdDenominator":"The denominator of the signing threshold fraction.","thresholdNumerator":"The numerator of the signing threshold fraction."}},"storageView()":{"details":"Returns the storage view of the contract storage.","returns":{"_0":"storageView The storage view of the contract storage."}},"timelines()":{"details":"Returns the timelines.","returns":{"_0":"timelines The timelines."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"details":"Unpauses the contract."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"validatedCodesCount()":{"details":"Returns the count of validated codes.","returns":{"_0":"validatedCodesCount The count of validated codes."}},"validators()":{"details":"Returns the list of current validators.","returns":{"_0":"validators The list of current validators."}},"validatorsAggregatedPublicKey()":{"details":"Returns the aggregated public key of the current validators.","returns":{"_0":"validatorsAggregatedPublicKey The aggregated public key of the current validators."}},"validatorsCount()":{"details":"Returns the count of current validators.","returns":{"_0":"validatorsCount The count of current validators."}},"validatorsThreshold()":{"details":"Returns the threshold number of validators required for a valid signature.","returns":{"_0":"threshold The threshold number of validators required for a valid signature."}},"validatorsVerifiableSecretSharingCommitment()":{"details":"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.","returns":{"_0":"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."}},"wrappedVara()":{"details":"Returns the address of the wrapped Vara implementation.","returns":{"_0":"wrappedVara The address of the wrapped Vara implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol":{"keccak256":"0x8b95459390767d84c984d18faee298ce913e69cf0be8d2fe7785e2ad487ffed8","urls":["bzz-raw://b5949065ea24feded902e4b0586f547ae6360b4eda7572419d72fe9d5714d1b9","dweb:/ipfs/Qme52ocDwVG8nt9Xvf3j4h9SU1WWk2PHSEk97nRD4sNvY4"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableMap.sol":{"keccak256":"0x3e00fb96a60f23bda26fdcfefeeec9eff4cf16c017b36a9feb637350c9cd6402","urls":["bzz-raw://2e35f0aaa3a09bb879cc4b6d03250274bc8f2b020defbd943bc0b01189d1cb3e","dweb:/ipfs/QmUJqTiqGBY8FeoSWXsE6ZgbbYVzRe2ssaSF4yzf7vxrJv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol":{"keccak256":"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad","urls":["bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95","dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol":{"keccak256":"0x1149f6c3445a564f5b9cd27c2dc85c6bcaed254c67cb57a416bc7ca1f667ad1f","urls":["bzz-raw://8a72ecd1a82f8ece4d83280a4920a6269e83bec971a27d0ce2e3a21d2ae08450","dweb:/ipfs/QmSn68D8stm6b7m4nZndhTqincMQdoTqNrRXmAReV9Xb2r"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d","urls":["bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd","dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/FROST.sol":{"keccak256":"0x2612986347bba4c014737d85a58c6b6aa4e6f0151ca9f1a878f4cf36bfef9d73","urls":["bzz-raw://5f7a2450b0c4cf794ac742c6b4e452a6cd16f760d1f1051685eb80e39bb17e28","dweb:/ipfs/QmYSKF6PB4TCQ1D42AhoCWrymchekGuNasNKD5czvpCmp8"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol":{"keccak256":"0xc8728e41d588b0cb4a5ce4b162b744ceb639e7525a986acabead127d44ccf937","urls":["bzz-raw://21e319cafa82636141903c1aeab626fb77fc4df176ef8cfccb2fa3402534f31f","dweb:/ipfs/QmRh59BnLvyY5XK9omeGZkshxf34LwKrWor1biP8tQ84dA"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xb9a059e412a44d084613478c901fe8cd083b22c0d0e69d47868a1104f60e1356","urls":["bzz-raw://819a22494dc3b05cfc53a6cc9ab24bd75951a709df87377e3962871f72fddcf1","dweb:/ipfs/QmXwK8ha3cQ93a97vhE5g4Nad6T9bzqa4mkfSDZfSkDoMS"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol":{"keccak256":"0x4f81eeca8c767246d3777c1cb79b911fae85c0cfc70b36ab90adc3023fdfe4c3","urls":["bzz-raw://fe9f5d0b7668cb0cfd16c37a599f380dc4e0362a8b02c83cb1f186cb1c04f739","dweb:/ipfs/QmSVvMnT3XWmGv5wKHt5HAXLuvobvkZUmJKPwAxnyGKwrX"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x69acb77cd55fd3c309d6a029414217e9440c3eb51743ee3d583ea4c0016b6872","urls":["bzz-raw://5b7d191db5c82d985a5ce00c7aafde5ed087666d930b078b5ad36a4e8a44c42d","dweb:/ipfs/QmemqD2UB9Y9sn3smdAmoGnMq34c5AG5tsaNySHiJqVDfY"],"license":"MIT"},"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0xaba4e9d944081d7741e03fa2bb185e4622445331b0ad8eb15eb466f3ef9439ce","urls":["bzz-raw://43f86f3a12b3d7ea40ba6997604f4aaf0150c387d2f067b6517fbc4e6cc064aa","dweb:/ipfs/QmRbpFNbYGhTQZbhx6KfwXeq3MwTZeXYToyvTAoQ77YD2u"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x1dd185cf7d9f9bdca581f904b25265b0df0f55941cdbeed70b9d39d5598b506c","urls":["bzz-raw://048e8adbed5e353401881a71628cf4a15d65fe92c860aebbb13d5b8cc5328e59","dweb:/ipfs/QmZm8mKfrky7bdNbbNssweUPeKnYuGCru3Zs37M8UWGEKQ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xcab25323c350222e48ad9dfd84325ffd36b4e34d4ae3a0a49932d8a1c95e501e","urls":["bzz-raw://71df44d61da238cb41cf2701c7cb15af7815f1b7cab46d3a0c0fa5ba0a15aed7","dweb:/ipfs/QmT78yRqQoPHGafTzKyjUK6Dnm7XLpV4RnUQsEZ62PHWUi"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x350a0652dd931a3376b518c2e6ccc15f3917967a0fe37f7622bfd22d93f952b4","urls":["bzz-raw://38752c261e196e3cbc29939f9729daaec6ff6e26f8d4089b2c2c35926aba2d19","dweb:/ipfs/QmcJjZZLk92rpK3u3wx1LUc67bjWYJjBmhTUwo5kSDdXbG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xe674b2e16c2809fb8d61b779dcc5c50b13053c348a514f74c382cbe47d15b0eb","urls":["bzz-raw://8eaf97adaea15ffcd815cea181b12ff1aa295a10608bed417b7f878de8baaee2","dweb:/ipfs/Qmf49Av7NafxAXP9xrN4sxDxq6CnFarDSU2HcKk6VZvM9k"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Router.sol":{"keccak256":"0x8856eae0379d4b160a42de3ff849b9fab661f43534d96d0118ef1fa23afe8c4d","urls":["bzz-raw://fa2fcddba170ff5b2634b2d9d8c70203fd1849d505235926cda65cddca1c9e69","dweb:/ipfs/QmZAR7Pis6gfrUm7SyqSVuXU69cubq3iqrMQFEypF1Y8gC"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Clones.sol":{"keccak256":"0x6cb1246f6ab6bb8b6192be94a75fda503d7f692b0b5f2a051d55dce7c2e63cee","urls":["bzz-raw://6740c26af24c90880a7b92245d33afaf5ae81643102f878661ce9a345caa5e79","dweb:/ipfs/Qmceviu8mqoXZLu7FLL88TPXKGNyzAnsF1jXm1UsLCMfyE"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/ClonesSmall.sol":{"keccak256":"0xadbc9b06486d060323f636b3a72f47495cc992bf7483837bdf6710ca954a7354","urls":["bzz-raw://3e34e91e60cf1020fc03b8ab62b6f946b1d958b0308d900c4fe416c447b1260f","dweb:/ipfs/QmbKUa3P3pqnDe7bTikZu1veQFCVXZKkCRA4YZGhXurP8h"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x18e44182854aec2fef3aff49018f88e0fb66851c963f746c54032f748521b32d","urls":["bzz-raw://884439adca27db9120244420723c3ee6ba047a6f079072b586dd3f102f0399fd","dweb:/ipfs/QmdNHp1xZSQyToTZTapx7ki4hDbv4pcjqeQnPofowsPYg1"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/SSTORE2.sol":{"keccak256":"0x5a9e53b62f5198b3e2c07c523c82de277725b392df34dd0a8ed2ea8f77bd7d5f","urls":["bzz-raw://72fb6f6f7141cecefefe6babfb437cfa7b698be6a5df3cba2846d052eb5e94f7","dweb:/ipfs/QmUMXq9okbsTenwnRG2RD4PrqXJWDDV9KvTLpUViqyLS37"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":84666,"exportedSymbols":{"Clones":[85415],"ClonesSmall":[85499],"ECDSA":[9016],"EIP712Upgradeable":[20974],"FROST":[61980],"Gear":[86834],"Hashes":[62498],"IMiddleware":[76054],"IMirror":[76363],"IRouter":[76958],"IWrappedVara":[76974],"Memory":[62272],"NoncesUpgradeable":[20577],"OwnableUpgradeable":[19465],"PausableUpgradeable":[20737],"ReentrancyGuardTransient":[6594],"Router":[84665],"SSTORE2":[87290],"SlotDerivation":[6724],"StorageSlot":[6848],"UUPSUpgradeable":[2079]},"nodeType":"SourceUnit","src":"114:49261:164","nodes":[{"id":81744,"nodeType":"PragmaDirective","src":"114:24:164","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":81746,"nodeType":"ImportDirective","src":"140:101:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":81745,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81748,"nodeType":"ImportDirective","src":"242:98:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":20578,"symbolAliases":[{"foreign":{"id":81747,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20577,"src":"250:17:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81750,"nodeType":"ImportDirective","src":"341:102:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":20738,"symbolAliases":[{"foreign":{"id":81749,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20737,"src":"349:19:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81752,"nodeType":"ImportDirective","src":"444:111:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":20975,"symbolAliases":[{"foreign":{"id":81751,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20974,"src":"452:17:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81754,"nodeType":"ImportDirective","src":"556:88:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":81753,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"564:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81756,"nodeType":"ImportDirective","src":"645:100:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuardTransient.sol","file":"@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":6595,"symbolAliases":[{"foreign":{"id":81755,"name":"ReentrancyGuardTransient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"653:24:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81758,"nodeType":"ImportDirective","src":"746:80:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":6725,"symbolAliases":[{"foreign":{"id":81757,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"754:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81760,"nodeType":"ImportDirective","src":"827:74:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":6849,"symbolAliases":[{"foreign":{"id":81759,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"835:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81762,"nodeType":"ImportDirective","src":"902:75:164","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":9017,"symbolAliases":[{"foreign":{"id":81761,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"910:5:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81764,"nodeType":"ImportDirective","src":"978:52:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":61981,"symbolAliases":[{"foreign":{"id":81763,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61980,"src":"986:5:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81766,"nodeType":"ImportDirective","src":"1031:60:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":62273,"symbolAliases":[{"foreign":{"id":81765,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"1039:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81768,"nodeType":"ImportDirective","src":"1092:73:164","nodes":[],"absolutePath":"dependencies/frost-secp256k1-evm-master/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":62499,"symbolAliases":[{"foreign":{"id":81767,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62498,"src":"1100:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81770,"nodeType":"ImportDirective","src":"1166:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":76055,"symbolAliases":[{"foreign":{"id":81769,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"1174:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81772,"nodeType":"ImportDirective","src":"1215:40:164","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":76364,"symbolAliases":[{"foreign":{"id":81771,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"1223:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81774,"nodeType":"ImportDirective","src":"1256:40:164","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":76959,"symbolAliases":[{"foreign":{"id":81773,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76958,"src":"1264:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81776,"nodeType":"ImportDirective","src":"1297:50:164","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":76975,"symbolAliases":[{"foreign":{"id":81775,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"1305:12:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81778,"nodeType":"ImportDirective","src":"1348:48:164","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":85416,"symbolAliases":[{"foreign":{"id":81777,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85415,"src":"1356:6:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81780,"nodeType":"ImportDirective","src":"1397:58:164","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":85500,"symbolAliases":[{"foreign":{"id":81779,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85499,"src":"1405:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81782,"nodeType":"ImportDirective","src":"1456:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":86835,"symbolAliases":[{"foreign":{"id":81781,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"1464:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81784,"nodeType":"ImportDirective","src":"1501:50:164","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":84666,"sourceUnit":87291,"symbolAliases":[{"foreign":{"id":81783,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87290,"src":"1509:7:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84665,"nodeType":"ContractDefinition","src":"1553:47821:164","nodes":[{"id":81801,"nodeType":"VariableDeclaration","src":"1838:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1863:12:164","scope":84665,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1838:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":81800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:66:164","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":81804,"nodeType":"VariableDeclaration","src":"2057:111:164","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2082:17:164","scope":84665,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81802,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2057:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":81803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2102:66:164","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":81807,"nodeType":"VariableDeclaration","src":"2175:55:164","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2199:11:164","scope":84665,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":81805,"name":"string","nodeType":"ElementaryTypeName","src":"2175:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":81806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2213:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_ded8ea4cbd8dfac3d256d1ee2019397a32c8630b040ad63275830e967889ecd8","typeString":"literal_string \"Vara.ETH Router\""},"value":"Vara.ETH Router"},"visibility":"private"},{"id":81810,"nodeType":"VariableDeclaration","src":"2236:44:164","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2260:14:164","scope":84665,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":81808,"name":"string","nodeType":"ElementaryTypeName","src":"2236:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":81809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2277:3:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"private"},{"id":81813,"nodeType":"VariableDeclaration","src":"2287:73:164","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2312:40:164","scope":84665,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81811,"name":"uint256","nodeType":"ElementaryTypeName","src":"2287:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":81812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2355:5:164","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"id":81816,"nodeType":"VariableDeclaration","src":"2366:72:164","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2391:41:164","scope":84665,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81814,"name":"uint256","nodeType":"ElementaryTypeName","src":"2366:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":81815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2435:3:164","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"private"},{"id":81819,"nodeType":"VariableDeclaration","src":"2581:144:164","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2606:42:164","scope":84665,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2581:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":81818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2659:66:164","typeDescriptions":{"typeIdentifier":"t_rational_25041847662038966976180655381136102362768580769727479521951050179079337377943_by_1","typeString":"int_const 2504...(69 digits omitted)...7943"},"value":"0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097"},"visibility":"private"},{"id":81827,"nodeType":"FunctionDefinition","src":"2800:53:164","nodes":[],"body":{"id":81826,"nodeType":"Block","src":"2814:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81823,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"2824:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":81824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2824:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81825,"nodeType":"ExpressionStatement","src":"2824:22:164"}]},"documentation":{"id":81820,"nodeType":"StructuredDocumentation","src":"2732:63:164","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81821,"nodeType":"ParameterList","parameters":[],"src":"2811:2:164"},"returnParameters":{"id":81822,"nodeType":"ParameterList","parameters":[],"src":"2814:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82029,"nodeType":"FunctionDefinition","src":"4037:2477:164","nodes":[],"body":{"id":82028,"nodeType":"Block","src":"4452:2062:164","nodes":[],"statements":[{"expression":{"arguments":[{"id":81856,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81830,"src":"4477:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81855,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"4462:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4462:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81858,"nodeType":"ExpressionStatement","src":"4462:22:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81859,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20641,"src":"4494:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":81860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81861,"nodeType":"ExpressionStatement","src":"4494:17:164"},{"expression":{"arguments":[{"id":81863,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81807,"src":"4535:11:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":81864,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81810,"src":"4548:14:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":81862,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20792,"src":"4521:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":81865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4521:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81866,"nodeType":"ExpressionStatement","src":"4521:42:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81867,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20503,"src":"4573:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":81868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4573:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81869,"nodeType":"ExpressionStatement","src":"4573:15:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81871,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4767:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4773:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"4767:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4785:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4767:19:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81875,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76512,"src":"4788:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4788:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4759:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4759:48:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81878,"nodeType":"ExpressionStatement","src":"4759:48:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81880,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81840,"src":"4825:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4845:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4825:21:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81883,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76515,"src":"4848:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4848:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81879,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4817:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4817:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81886,"nodeType":"ExpressionStatement","src":"4817:57:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81888,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81838,"src":"4892:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":81889,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81840,"src":"4907:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4892:32:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81891,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76518,"src":"4926:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4926:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81887,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4884:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4884:64:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81894,"nodeType":"ExpressionStatement","src":"4884:64:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81896,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81842,"src":"5117:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81897,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81838,"src":"5137:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":81898,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81840,"src":"5152:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5137:32:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5136:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":81901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5173:2:164","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5136:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5117:58:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81904,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76523,"src":"5177:21:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5177:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81895,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5109:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5109:92:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81907,"nodeType":"ExpressionStatement","src":"5109:92:164"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":81909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5228:25:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":81908,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84605,"src":"5212:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":81910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5212:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81911,"nodeType":"ExpressionStatement","src":"5212:42:164"},{"assignments":[81914],"declarations":[{"constant":false,"id":81914,"mutability":"mutable","name":"router","nameLocation":"5280:6:164","nodeType":"VariableDeclaration","scope":82028,"src":"5264:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81913,"nodeType":"UserDefinedTypeName","pathNode":{"id":81912,"name":"Storage","nameLocations":["5264:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"5264:7:164"},"referencedDeclaration":76458,"src":"5264:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81917,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81915,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"5289:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5289:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5264:34:164"},{"expression":{"id":81924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81918,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"5309:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5316:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"5309:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":81921,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"5331:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":81922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5336:10:164","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":86286,"src":"5331:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$85758_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":81923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5309:39:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81925,"nodeType":"ExpressionStatement","src":"5309:39:164"},{"expression":{"id":81935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81926,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"5358:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5365:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"5358:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":81931,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81832,"src":"5398:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81932,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81834,"src":"5407:12:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81933,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81836,"src":"5421:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":81929,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"5381:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":81930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5386:11:164","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":85629,"src":"5381:16:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$85629_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":81934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5381:52:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5358:75:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81936,"nodeType":"ExpressionStatement","src":"5358:75:164"},{"expression":{"id":81944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81937,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"5443:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5450:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"5443:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":81941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5469:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85854,"src":"5443:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81942,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"5490:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":81943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5495:30:164","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":85538,"src":"5490:35:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5443:82:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":81945,"nodeType":"ExpressionStatement","src":"5443:82:164"},{"expression":{"id":81953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81946,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"5535:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5542:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"5535:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":81950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5561:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85856,"src":"5535:46:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81951,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"5584:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":81952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5589:32:164","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":85542,"src":"5584:37:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5535:86:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":81954,"nodeType":"ExpressionStatement","src":"5535:86:164"},{"expression":{"id":81961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81955,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"5631:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5638:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":76449,"src":"5631:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":81958,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"5656:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":81959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5661:26:164","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":86263,"src":"5656:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$85750_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":81960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5656:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"5631:58:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":81962,"nodeType":"ExpressionStatement","src":"5631:58:164"},{"expression":{"id":81972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81963,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"5699:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5706:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"5699:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":81968,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81838,"src":"5733:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81969,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81840,"src":"5747:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81970,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81842,"src":"5766:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81966,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"5718:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":81967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5723:9:164","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":85851,"src":"5718:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$85851_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":81971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5718:65:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"5699:84:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81973,"nodeType":"ExpressionStatement","src":"5699:84:164"},{"expression":{"id":81984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81974,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"5793:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5800:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"5793:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5813:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":85800,"src":"5793:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":81981,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81850,"src":"5836:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5848:6:164","memberName":"length","nodeType":"MemberAccess","src":"5836:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5829:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":81979,"name":"uint16","nodeType":"ElementaryTypeName","src":"5829:6:164","typeDescriptions":{}}},"id":81983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5793:62:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":81985,"nodeType":"ExpressionStatement","src":"5793:62:164"},{"assignments":[81987],"declarations":[{"constant":false,"id":81987,"mutability":"mutable","name":"decimalsFactor","nameLocation":"5874:14:164","nodeType":"VariableDeclaration","scope":82028,"src":"5866:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81986,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81995,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:2:164","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":81990,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81834,"src":"5910:12:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81989,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"5897:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":81991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":81992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5924:8:164","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":2697,"src":"5897:35:164","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":81993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5891:43:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5866:68:164"},{"expression":{"id":82004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81996,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"5944:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5951:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"5944:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5964:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":85803,"src":"5944:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82001,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"5995:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82002,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81987,"src":"6038:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5995:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5944:108:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82005,"nodeType":"ExpressionStatement","src":"5944:108:164"},{"expression":{"id":82014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82006,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"6062:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6069:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"6062:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6082:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":85806,"src":"6062:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82011,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81816,"src":"6114:41:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82012,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81987,"src":"6158:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6114:58:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6062:110:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82015,"nodeType":"ExpressionStatement","src":"6062:110:164"},{"expression":{"arguments":[{"expression":{"expression":{"id":82017,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"6254:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6261:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"6254:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6280:11:164","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85859,"src":"6254:37:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"}},{"hexValue":"74727565","id":82020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6305:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":82021,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81845,"src":"6323:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":82022,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81847,"src":"6357:34:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":82023,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81850,"src":"6405:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":82024,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6430:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6436:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"6430:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$85606_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82016,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84552,"src":"6224:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$85606_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$85585_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":82026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6224:231:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82027,"nodeType":"ExpressionStatement","src":"6224:231:164"}]},"documentation":{"id":81828,"nodeType":"StructuredDocumentation","src":"2859:1173:164","text":" @dev Initializes the `Router` with the given parameters.\n @param _owner The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\n @param _mirror The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\n @param _wrappedVara The address of the `WrappedVara` (WVARA) ERC20 token contract.\n @param _middleware The address of the middleware contract.\n @param _eraDuration The duration of an era in seconds.\n @param _electionDuration The duration of an election in seconds.\n @param _validationDelay The delay before validators can start validating in seconds.\n @param _aggregatedPublicKey The optional aggregated public key of the initial validators. Will be used in future.\n @param _verifiableSecretSharingCommitment The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\n @param _validators The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures,\n so the list of validators is used for signature verification."},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":81853,"kind":"modifierInvocation","modifierName":{"id":81852,"name":"initializer","nameLocations":["4440:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"4440:11:164"},"nodeType":"ModifierInvocation","src":"4440:11:164"}],"name":"initialize","nameLocation":"4046:10:164","parameters":{"id":81851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81830,"mutability":"mutable","name":"_owner","nameLocation":"4074:6:164","nodeType":"VariableDeclaration","scope":82029,"src":"4066:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81829,"name":"address","nodeType":"ElementaryTypeName","src":"4066:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81832,"mutability":"mutable","name":"_mirror","nameLocation":"4098:7:164","nodeType":"VariableDeclaration","scope":82029,"src":"4090:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81831,"name":"address","nodeType":"ElementaryTypeName","src":"4090:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81834,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4123:12:164","nodeType":"VariableDeclaration","scope":82029,"src":"4115:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81833,"name":"address","nodeType":"ElementaryTypeName","src":"4115:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81836,"mutability":"mutable","name":"_middleware","nameLocation":"4153:11:164","nodeType":"VariableDeclaration","scope":82029,"src":"4145:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81835,"name":"address","nodeType":"ElementaryTypeName","src":"4145:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81838,"mutability":"mutable","name":"_eraDuration","nameLocation":"4182:12:164","nodeType":"VariableDeclaration","scope":82029,"src":"4174:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81837,"name":"uint256","nodeType":"ElementaryTypeName","src":"4174:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81840,"mutability":"mutable","name":"_electionDuration","nameLocation":"4212:17:164","nodeType":"VariableDeclaration","scope":82029,"src":"4204:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81839,"name":"uint256","nodeType":"ElementaryTypeName","src":"4204:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81842,"mutability":"mutable","name":"_validationDelay","nameLocation":"4247:16:164","nodeType":"VariableDeclaration","scope":82029,"src":"4239:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81841,"name":"uint256","nodeType":"ElementaryTypeName","src":"4239:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81845,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4307:20:164","nodeType":"VariableDeclaration","scope":82029,"src":"4273:54:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":81844,"nodeType":"UserDefinedTypeName","pathNode":{"id":81843,"name":"Gear.AggregatedPublicKey","nameLocations":["4273:4:164","4278:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":85585,"src":"4273:24:164"},"referencedDeclaration":85585,"src":"4273:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":81847,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4352:34:164","nodeType":"VariableDeclaration","scope":82029,"src":"4337:49:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":81846,"name":"bytes","nodeType":"ElementaryTypeName","src":"4337:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":81850,"mutability":"mutable","name":"_validators","nameLocation":"4415:11:164","nodeType":"VariableDeclaration","scope":82029,"src":"4396:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81848,"name":"address","nodeType":"ElementaryTypeName","src":"4396:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81849,"nodeType":"ArrayTypeName","src":"4396:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4056:376:164"},"returnParameters":{"id":81854,"nodeType":"ParameterList","parameters":[],"src":"4452:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82124,"nodeType":"FunctionDefinition","src":"6834:3024:164","nodes":[],"body":{"id":82123,"nodeType":"Block","src":"6892:2966:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82039,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"9165:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9165:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82038,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"9150:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82042,"nodeType":"ExpressionStatement","src":"9150:23:164"},{"expression":{"arguments":[{"id":82044,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81807,"src":"9197:11:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82045,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81810,"src":"9210:14:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82043,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20792,"src":"9183:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9183:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82047,"nodeType":"ExpressionStatement","src":"9183:42:164"},{"assignments":[82050],"declarations":[{"constant":false,"id":82050,"mutability":"mutable","name":"router","nameLocation":"9252:6:164","nodeType":"VariableDeclaration","scope":82123,"src":"9236:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82049,"nodeType":"UserDefinedTypeName","pathNode":{"id":82048,"name":"Storage","nameLocations":["9236:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"9236:7:164"},"referencedDeclaration":76458,"src":"9236:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82053,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82051,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"9261:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9261:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9236:34:164"},{"expression":{"id":82060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82054,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82050,"src":"9280:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9287:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"9280:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82057,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"9302:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9307:10:164","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":86286,"src":"9302:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$85758_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":82059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9302:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9280:39:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82061,"nodeType":"ExpressionStatement","src":"9280:39:164"},{"expression":{"id":82073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82062,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82050,"src":"9329:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9336:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":76437,"src":"9329:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":82069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9398:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":82068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9390:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9390:7:164","typeDescriptions":{}}},"id":82070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9390:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":82071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9413:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":82065,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"9359:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9364:18:164","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":85744,"src":"9359:23:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$85744_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":82072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9384:4:164","9402:9:164"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"9359:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"9329:87:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82074,"nodeType":"ExpressionStatement","src":"9329:87:164"},{"expression":{"id":82089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82075,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82050,"src":"9426:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9433:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"9426:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9446:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":85800,"src":"9426:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":82084,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82050,"src":"9495:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82082,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"9469:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9474:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86553,"src":"9469:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9469:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9503:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"9469:38:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9508:6:164","memberName":"length","nodeType":"MemberAccess","src":"9469:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9462:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":82080,"name":"uint16","nodeType":"ElementaryTypeName","src":"9462:6:164","typeDescriptions":{}}},"id":82088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9462:53:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9426:89:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":82090,"nodeType":"ExpressionStatement","src":"9426:89:164"},{"assignments":[82092],"declarations":[{"constant":false,"id":82092,"mutability":"mutable","name":"decimalsFactor","nameLocation":"9533:14:164","nodeType":"VariableDeclaration","scope":82123,"src":"9525:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82091,"name":"uint256","nodeType":"ElementaryTypeName","src":"9525:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82102,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9550:2:164","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":82095,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82050,"src":"9569:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9576:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"9569:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9590:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85625,"src":"9569:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82094,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"9556:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":82098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9556:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":82099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9603:8:164","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":2697,"src":"9556:55:164","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":82100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9556:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9550:63:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9525:88:164"},{"expression":{"id":82111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82103,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82050,"src":"9623:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9630:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"9623:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9643:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":85803,"src":"9623:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82108,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"9674:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82109,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82092,"src":"9717:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9674:57:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9623:108:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82112,"nodeType":"ExpressionStatement","src":"9623:108:164"},{"expression":{"id":82121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82113,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82050,"src":"9741:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9748:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"9741:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9761:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":85806,"src":"9741:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82118,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81816,"src":"9793:41:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":82119,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82092,"src":"9837:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9793:58:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9741:110:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82122,"nodeType":"ExpressionStatement","src":"9741:110:164"}]},"documentation":{"id":82030,"nodeType":"StructuredDocumentation","src":"6520:309:164","text":" @dev Reinitializes the `Router` to set up new storage layout.\n This function is intended to be called during an upgrade/wipe and can contain any logic.\n NOTE: Don't forget to bump `reinitializer(version)` in modifier!\n @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82033,"kind":"modifierInvocation","modifierName":{"id":82032,"name":"onlyOwner","nameLocations":["6865:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"6865:9:164"},"nodeType":"ModifierInvocation","src":"6865:9:164"},{"arguments":[{"hexValue":"35","id":82035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6889:1:164","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":82036,"kind":"modifierInvocation","modifierName":{"id":82034,"name":"reinitializer","nameLocations":["6875:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"6875:13:164"},"nodeType":"ModifierInvocation","src":"6875:16:164"}],"name":"reinitialize","nameLocation":"6843:12:164","parameters":{"id":82031,"nodeType":"ParameterList","parameters":[],"src":"6855:2:164"},"returnParameters":{"id":82037,"nodeType":"ParameterList","parameters":[],"src":"6892:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82134,"nodeType":"FunctionDefinition","src":"10023:84:164","nodes":[],"body":{"id":82133,"nodeType":"Block","src":"10105:2:164","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":82125,"nodeType":"StructuredDocumentation","src":"9864:154:164","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":82131,"kind":"modifierInvocation","modifierName":{"id":82130,"name":"onlyOwner","nameLocations":["10095:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"10095:9:164"},"nodeType":"ModifierInvocation","src":"10095:9:164"}],"name":"_authorizeUpgrade","nameLocation":"10032:17:164","overrides":{"id":82129,"nodeType":"OverrideSpecifier","overrides":[],"src":"10086:8:164"},"parameters":{"id":82128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82127,"mutability":"mutable","name":"newImplementation","nameLocation":"10058:17:164","nodeType":"VariableDeclaration","scope":82134,"src":"10050:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82126,"name":"address","nodeType":"ElementaryTypeName","src":"10050:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10049:27:164"},"returnParameters":{"id":82132,"nodeType":"ParameterList","parameters":[],"src":"10105:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82188,"nodeType":"FunctionDefinition","src":"10279:948:164","nodes":[],"body":{"id":82187,"nodeType":"Block","src":"10343:884:164","nodes":[],"statements":[{"assignments":[82143],"declarations":[{"constant":false,"id":82143,"mutability":"mutable","name":"router","nameLocation":"10369:6:164","nodeType":"VariableDeclaration","scope":82187,"src":"10353:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82142,"nodeType":"UserDefinedTypeName","pathNode":{"id":82141,"name":"Storage","nameLocations":["10353:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"10353:7:164"},"referencedDeclaration":76458,"src":"10353:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82146,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82144,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"10378:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10378:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10353:34:164"},{"assignments":[82151],"declarations":[{"constant":false,"id":82151,"mutability":"mutable","name":"validationSettings","nameLocation":"10432:18:164","nodeType":"VariableDeclaration","scope":82187,"src":"10397:53:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85875_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":82150,"nodeType":"UserDefinedTypeName","pathNode":{"id":82149,"name":"Gear.ValidationSettingsView","nameLocations":["10397:4:164","10402:22:164"],"nodeType":"IdentifierPath","referencedDeclaration":85875,"src":"10397:27:164"},"referencedDeclaration":85875,"src":"10397:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85875_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":82157,"initialValue":{"arguments":[{"expression":{"id":82154,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10465:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10472:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"10465:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":82152,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"10453:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10458:6:164","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":86833,"src":"10453:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$85863_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$85875_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":82156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10453:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85875_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"10397:94:164"},{"expression":{"arguments":[{"expression":{"id":82159,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10548:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10555:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"10548:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":82161,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10603:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10610:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":76437,"src":"10603:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":82163,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10659:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10666:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"10659:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":82165,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82151,"src":"10713:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85875_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":82166,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10762:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10769:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":76449,"src":"10762:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":82168,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10809:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10816:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"10809:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":82170,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10854:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10861:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"10854:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10874:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85794,"src":"10854:33:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82173,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10922:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10929:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"10922:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10942:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85797,"src":"10922:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82176,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"10990:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10997:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"10990:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11010:13:164","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":85800,"src":"10990:33:164","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":82179,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"11067:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11074:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"11067:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11087:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":85803,"src":"11067:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82182,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82143,"src":"11160:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11167:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"11160:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11180:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":85806,"src":"11160:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$85875_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$85750_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82158,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76425,"src":"10508:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$76425_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":82185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10534:12:164","10581:20:164","10644:13:164","10693:18:164","10745:15:164","10798:9:164","10839:13:164","10901:19:164","10975:13:164","11037:28:164","11129:29:164"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee"],"nodeType":"FunctionCall","src":"10508:712:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$76425_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":82140,"id":82186,"nodeType":"Return","src":"10501:719:164"}]},"baseFunctions":[76616],"documentation":{"id":82135,"nodeType":"StructuredDocumentation","src":"10132:142:164","text":" @dev Returns the storage view of the contract storage.\n @return storageView The storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"10288:11:164","parameters":{"id":82136,"nodeType":"ParameterList","parameters":[],"src":"10299:2:164"},"returnParameters":{"id":82140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82188,"src":"10323:18:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$76425_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":82138,"nodeType":"UserDefinedTypeName","pathNode":{"id":82137,"name":"StorageView","nameLocations":["10323:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":76425,"src":"10323:11:164"},"referencedDeclaration":76425,"src":"10323:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$76425_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"10322:20:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82200,"nodeType":"FunctionDefinition","src":"11363:109:164","nodes":[],"body":{"id":82199,"nodeType":"Block","src":"11421:51:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82194,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"11438:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11438:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11448:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"11438:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11461:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85753,"src":"11438:27:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82193,"id":82198,"nodeType":"Return","src":"11431:34:164"}]},"baseFunctions":[76622],"documentation":{"id":82189,"nodeType":"StructuredDocumentation","src":"11233:125:164","text":" @dev Returns the hash of the genesis block.\n @return genesisBlockHash The hash of the genesis block."},"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"11372:16:164","parameters":{"id":82190,"nodeType":"ParameterList","parameters":[],"src":"11388:2:164"},"returnParameters":{"id":82193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82200,"src":"11412:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11412:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11411:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82212,"nodeType":"FunctionDefinition","src":"11618:113:164","nodes":[],"body":{"id":82211,"nodeType":"Block","src":"11675:56:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82206,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"11692:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11692:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11702:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"11692:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11715:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85757,"src":"11692:32:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":82205,"id":82210,"nodeType":"Return","src":"11685:39:164"}]},"baseFunctions":[76628],"documentation":{"id":82201,"nodeType":"StructuredDocumentation","src":"11478:135:164","text":" @dev Returns the timestamp of the genesis block.\n @return genesisTimestamp The timestamp of the genesis block."},"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"11627:16:164","parameters":{"id":82202,"nodeType":"ParameterList","parameters":[],"src":"11643:2:164"},"returnParameters":{"id":82205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82212,"src":"11667:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82203,"name":"uint48","nodeType":"ElementaryTypeName","src":"11667:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11666:8:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82224,"nodeType":"FunctionDefinition","src":"11893:125:164","nodes":[],"body":{"id":82223,"nodeType":"Block","src":"11959:59:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82218,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"11976:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11976:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11986:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":76437,"src":"11976:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12007:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85741,"src":"11976:35:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82217,"id":82222,"nodeType":"Return","src":"11969:42:164"}]},"baseFunctions":[76634],"documentation":{"id":82213,"nodeType":"StructuredDocumentation","src":"11737:151:164","text":" @dev Returns the hash of the latest committed batch.\n @return latestCommittedBatchHash The hash of the latest committed batch."},"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"11902:24:164","parameters":{"id":82214,"nodeType":"ParameterList","parameters":[],"src":"11926:2:164"},"returnParameters":{"id":82217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82224,"src":"11950:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82215,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11950:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11949:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82236,"nodeType":"FunctionDefinition","src":"12195:134:164","nodes":[],"body":{"id":82235,"nodeType":"Block","src":"12265:64:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82230,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"12282:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12282:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12292:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":76437,"src":"12282:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12313:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85743,"src":"12282:40:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":82229,"id":82234,"nodeType":"Return","src":"12275:47:164"}]},"baseFunctions":[76640],"documentation":{"id":82225,"nodeType":"StructuredDocumentation","src":"12024:166:164","text":" @dev Returns the timestamp of the latest committed batch.\n @return latestCommittedBatchTimestamp The timestamp of the latest committed batch."},"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"12204:29:164","parameters":{"id":82226,"nodeType":"ParameterList","parameters":[],"src":"12233:2:164"},"returnParameters":{"id":82229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82236,"src":"12257:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82227,"name":"uint48","nodeType":"ElementaryTypeName","src":"12257:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12256:8:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82248,"nodeType":"FunctionDefinition","src":"12481:106:164","nodes":[],"body":{"id":82247,"nodeType":"Block","src":"12533:54:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82242,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"12550:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12550:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12560:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"12550:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12574:6:164","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":85622,"src":"12550:30:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82241,"id":82246,"nodeType":"Return","src":"12543:37:164"}]},"baseFunctions":[76646],"documentation":{"id":82237,"nodeType":"StructuredDocumentation","src":"12335:141:164","text":" @dev Returns the address of the mirror implementation.\n @return mirrorImpl The address of the mirror implementation."},"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"12490:10:164","parameters":{"id":82238,"nodeType":"ParameterList","parameters":[],"src":"12500:2:164"},"returnParameters":{"id":82241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82248,"src":"12524:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82239,"name":"address","nodeType":"ElementaryTypeName","src":"12524:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12523:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82260,"nodeType":"FunctionDefinition","src":"12752:112:164","nodes":[],"body":{"id":82259,"nodeType":"Block","src":"12805:59:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82254,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"12822:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12822:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12832:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"12822:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12846:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85625,"src":"12822:35:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82253,"id":82258,"nodeType":"Return","src":"12815:42:164"}]},"baseFunctions":[76652],"documentation":{"id":82249,"nodeType":"StructuredDocumentation","src":"12593:154:164","text":" @dev Returns the address of the wrapped Vara implementation.\n @return wrappedVara The address of the wrapped Vara implementation."},"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"12761:11:164","parameters":{"id":82250,"nodeType":"ParameterList","parameters":[],"src":"12772:2:164"},"returnParameters":{"id":82253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82260,"src":"12796:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82251,"name":"address","nodeType":"ElementaryTypeName","src":"12796:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12795:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82272,"nodeType":"FunctionDefinition","src":"13024:110:164","nodes":[],"body":{"id":82271,"nodeType":"Block","src":"13076:58:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82266,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"13093:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13093:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13103:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"13093:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13117:10:164","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":85628,"src":"13093:34:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82265,"id":82270,"nodeType":"Return","src":"13086:41:164"}]},"baseFunctions":[76658],"documentation":{"id":82261,"nodeType":"StructuredDocumentation","src":"12870:149:164","text":" @dev Returns the address of the middleware implementation.\n @return middleware The address of the middleware implementation."},"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"13033:10:164","parameters":{"id":82262,"nodeType":"ParameterList","parameters":[],"src":"13043:2:164"},"returnParameters":{"id":82265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82272,"src":"13067:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82263,"name":"address","nodeType":"ElementaryTypeName","src":"13067:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13066:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82287,"nodeType":"FunctionDefinition","src":"13327:175:164","nodes":[],"body":{"id":82286,"nodeType":"Block","src":"13422:80:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82281,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"13465:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13465:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82279,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"13439:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13444:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86553,"src":"13439:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13439:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13476:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85590,"src":"13439:56:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":82278,"id":82285,"nodeType":"Return","src":"13432:63:164"}]},"baseFunctions":[76665],"documentation":{"id":82273,"nodeType":"StructuredDocumentation","src":"13140:182:164","text":" @dev Returns the aggregated public key of the current validators.\n @return validatorsAggregatedPublicKey The aggregated public key of the current validators."},"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"13336:29:164","parameters":{"id":82274,"nodeType":"ParameterList","parameters":[],"src":"13365:2:164"},"returnParameters":{"id":82278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82287,"src":"13389:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82276,"nodeType":"UserDefinedTypeName","pathNode":{"id":82275,"name":"Gear.AggregatedPublicKey","nameLocations":["13389:4:164","13394:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":85585,"src":"13389:24:164"},"referencedDeclaration":85585,"src":"13389:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"13388:33:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82304,"nodeType":"FunctionDefinition","src":"13968:207:164","nodes":[],"body":{"id":82303,"nodeType":"Block","src":"14060:115:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82297,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"14116:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14116:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82295,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"14090:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14095:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86553,"src":"14090:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14090:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14127:40:164","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":85593,"src":"14090:77:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":82293,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87290,"src":"14077:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$87290_$","typeString":"type(library SSTORE2)"}},"id":82294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14085:4:164","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":87263,"src":"14077:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":82301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14077:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":82292,"id":82302,"nodeType":"Return","src":"14070:98:164"}]},"baseFunctions":[76671],"documentation":{"id":82288,"nodeType":"StructuredDocumentation","src":"13508:455:164","text":" @dev Returns the verifiable secret sharing commitment of the current validators.\n This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct.\n See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\n @return validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."},"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"13977:43:164","parameters":{"id":82289,"nodeType":"ParameterList","parameters":[],"src":"14020:2:164"},"returnParameters":{"id":82292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82304,"src":"14046:12:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82290,"name":"bytes","nodeType":"ElementaryTypeName","src":"14046:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14045:14:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":82351,"nodeType":"FunctionDefinition","src":"14347:375:164","nodes":[],"body":{"id":82350,"nodeType":"Block","src":"14429:293:164","nodes":[],"statements":[{"assignments":[82317],"declarations":[{"constant":false,"id":82317,"mutability":"mutable","name":"_currentValidators","nameLocation":"14463:18:164","nodeType":"VariableDeclaration","scope":82350,"src":"14439:42:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82316,"nodeType":"UserDefinedTypeName","pathNode":{"id":82315,"name":"Gear.Validators","nameLocations":["14439:4:164","14444:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"14439:15:164"},"referencedDeclaration":85606,"src":"14439:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":82323,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82320,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"14510:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14510:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82318,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"14484:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14489:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86553,"src":"14484:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14484:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14439:81:164"},{"body":{"id":82346,"nodeType":"Block","src":"14580:114:164","statements":[{"condition":{"id":82341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14598:39:164","subExpression":{"baseExpression":{"expression":{"id":82335,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82317,"src":"14599:18:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14618:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85598,"src":"14599:22:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82340,"indexExpression":{"baseExpression":{"id":82337,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82308,"src":"14622:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82339,"indexExpression":{"id":82338,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82325,"src":"14634:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14622:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14599:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82345,"nodeType":"IfStatement","src":"14594:90:164","trueBody":{"id":82344,"nodeType":"Block","src":"14639:45:164","statements":[{"expression":{"hexValue":"66616c7365","id":82342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14664:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":82312,"id":82343,"nodeType":"Return","src":"14657:12:164"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82325,"src":"14551:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82329,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82308,"src":"14555:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14567:6:164","memberName":"length","nodeType":"MemberAccess","src":"14555:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14551:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82347,"initializationExpression":{"assignments":[82325],"declarations":[{"constant":false,"id":82325,"mutability":"mutable","name":"i","nameLocation":"14544:1:164","nodeType":"VariableDeclaration","scope":82347,"src":"14536:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82324,"name":"uint256","nodeType":"ElementaryTypeName","src":"14536:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82327,"initialValue":{"hexValue":"30","id":82326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14548:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14536:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14575:3:164","subExpression":{"id":82332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82325,"src":"14575:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82334,"nodeType":"ExpressionStatement","src":"14575:3:164"},"nodeType":"ForStatement","src":"14531:163:164"},{"expression":{"hexValue":"74727565","id":82348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14711:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":82312,"id":82349,"nodeType":"Return","src":"14704:11:164"}]},"baseFunctions":[76680],"documentation":{"id":82305,"nodeType":"StructuredDocumentation","src":"14181:161:164","text":" @dev Checks if the given addresses are all validators.\n @return areValidators `true` if all addresses are validators, `false` otherwise."},"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"14356:13:164","parameters":{"id":82309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82308,"mutability":"mutable","name":"_validators","nameLocation":"14389:11:164","nodeType":"VariableDeclaration","scope":82351,"src":"14370:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82306,"name":"address","nodeType":"ElementaryTypeName","src":"14370:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82307,"nodeType":"ArrayTypeName","src":"14370:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14369:32:164"},"returnParameters":{"id":82312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82351,"src":"14423:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82310,"name":"bool","nodeType":"ElementaryTypeName","src":"14423:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14422:6:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82369,"nodeType":"FunctionDefinition","src":"14884:144:164","nodes":[],"body":{"id":82368,"nodeType":"Block","src":"14952:76:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82361,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"14995:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14995:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82359,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"14969:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14974:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86553,"src":"14969:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14969:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15006:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85598,"src":"14969:40:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82366,"indexExpression":{"id":82365,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82354,"src":"15010:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14969:52:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":82358,"id":82367,"nodeType":"Return","src":"14962:59:164"}]},"baseFunctions":[76688],"documentation":{"id":82352,"nodeType":"StructuredDocumentation","src":"14728:151:164","text":" @dev Checks if the given address is a validator.\n @return isValidator `true` if the address is a validator, `false` otherwise."},"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"14893:11:164","parameters":{"id":82355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82354,"mutability":"mutable","name":"_validator","nameLocation":"14913:10:164","nodeType":"VariableDeclaration","scope":82369,"src":"14905:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82353,"name":"address","nodeType":"ElementaryTypeName","src":"14905:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14904:20:164"},"returnParameters":{"id":82358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82369,"src":"14946:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82356,"name":"bool","nodeType":"ElementaryTypeName","src":"14946:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14945:6:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82394,"nodeType":"FunctionDefinition","src":"15272:285:164","nodes":[],"body":{"id":82393,"nodeType":"Block","src":"15387:170:164","nodes":[],"statements":[{"assignments":[82381],"declarations":[{"constant":false,"id":82381,"mutability":"mutable","name":"router","nameLocation":"15421:6:164","nodeType":"VariableDeclaration","scope":82393,"src":"15397:30:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82380,"nodeType":"UserDefinedTypeName","pathNode":{"id":82379,"name":"IRouter.Storage","nameLocations":["15397:7:164","15405:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"15397:15:164"},"referencedDeclaration":76458,"src":"15397:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82384,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82382,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"15430:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15430:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15397:42:164"},{"expression":{"components":[{"expression":{"expression":{"id":82385,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82381,"src":"15457:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15464:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"15457:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15483:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85854,"src":"15457:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":82388,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82381,"src":"15503:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15510:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"15503:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15529:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85856,"src":"15503:46:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":82391,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15456:94:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":82376,"id":82392,"nodeType":"Return","src":"15449:101:164"}]},"baseFunctions":[76696],"documentation":{"id":82370,"nodeType":"StructuredDocumentation","src":"15034:233:164","text":" @dev Returns the signing threshold fraction.\n @return thresholdNumerator The numerator of the signing threshold fraction.\n @return thresholdDenominator The denominator of the signing threshold fraction."},"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"15281:24:164","parameters":{"id":82371,"nodeType":"ParameterList","parameters":[],"src":"15305:2:164"},"returnParameters":{"id":82376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82373,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15337:18:164","nodeType":"VariableDeclaration","scope":82394,"src":"15329:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82372,"name":"uint128","nodeType":"ElementaryTypeName","src":"15329:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":82375,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15365:20:164","nodeType":"VariableDeclaration","scope":82394,"src":"15357:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82374,"name":"uint128","nodeType":"ElementaryTypeName","src":"15357:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"15328:58:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82409,"nodeType":"FunctionDefinition","src":"15689:126:164","nodes":[],"body":{"id":82408,"nodeType":"Block","src":"15750:65:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82403,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"15793:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15793:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82401,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"15767:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15772:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86553,"src":"15767:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15767:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15804:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"15767:41:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":82400,"id":82407,"nodeType":"Return","src":"15760:48:164"}]},"baseFunctions":[76703],"documentation":{"id":82395,"nodeType":"StructuredDocumentation","src":"15563:121:164","text":" @dev Returns the list of current validators.\n @return validators The list of current validators."},"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"15698:10:164","parameters":{"id":82396,"nodeType":"ParameterList","parameters":[],"src":"15708:2:164"},"returnParameters":{"id":82400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82409,"src":"15732:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82397,"name":"address","nodeType":"ElementaryTypeName","src":"15732:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82398,"nodeType":"ArrayTypeName","src":"15732:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15731:18:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82424,"nodeType":"FunctionDefinition","src":"15954:129:164","nodes":[],"body":{"id":82423,"nodeType":"Block","src":"16011:72:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82417,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"16054:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16054:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82415,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"16028:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16033:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86553,"src":"16028:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16028:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16065:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"16028:41:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16070:6:164","memberName":"length","nodeType":"MemberAccess","src":"16028:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82414,"id":82422,"nodeType":"Return","src":"16021:55:164"}]},"baseFunctions":[76709],"documentation":{"id":82410,"nodeType":"StructuredDocumentation","src":"15821:128:164","text":" @dev Returns the count of current validators.\n @return validatorsCount The count of current validators."},"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"15963:15:164","parameters":{"id":82411,"nodeType":"ParameterList","parameters":[],"src":"15978:2:164"},"returnParameters":{"id":82414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82424,"src":"16002:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82412,"name":"uint256","nodeType":"ElementaryTypeName","src":"16002:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16001:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82455,"nodeType":"FunctionDefinition","src":"16284:348:164","nodes":[],"body":{"id":82454,"nodeType":"Block","src":"16345:287:164","nodes":[],"statements":[{"assignments":[82434],"declarations":[{"constant":false,"id":82434,"mutability":"mutable","name":"router","nameLocation":"16379:6:164","nodeType":"VariableDeclaration","scope":82454,"src":"16355:30:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82433,"nodeType":"UserDefinedTypeName","pathNode":{"id":82432,"name":"IRouter.Storage","nameLocations":["16355:7:164","16363:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"16355:15:164"},"referencedDeclaration":76458,"src":"16355:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82437,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82435,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"16388:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16388:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16355:42:164"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":82442,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82434,"src":"16478:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82440,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"16452:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16457:20:164","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":86553,"src":"16452:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16452:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16486:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"16452:38:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16491:6:164","memberName":"length","nodeType":"MemberAccess","src":"16452:45:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82446,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82434,"src":"16511:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16518:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"16511:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16537:18:164","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85854,"src":"16511:44:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":82449,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82434,"src":"16569:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16576:18:164","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":76445,"src":"16569:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85863_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16595:20:164","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85856,"src":"16569:46:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":82438,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"16414:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16419:19:164","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":86721,"src":"16414:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":82452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16414:211:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82429,"id":82453,"nodeType":"Return","src":"16407:218:164"}]},"baseFunctions":[76715],"documentation":{"id":82425,"nodeType":"StructuredDocumentation","src":"16089:190:164","text":" @dev Returns the threshold number of validators required for a valid signature.\n @return threshold The threshold number of validators required for a valid signature."},"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"16293:19:164","parameters":{"id":82426,"nodeType":"ParameterList","parameters":[],"src":"16312:2:164"},"returnParameters":{"id":82429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82455,"src":"16336:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82427,"name":"uint256","nodeType":"ElementaryTypeName","src":"16336:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16335:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82469,"nodeType":"FunctionDefinition","src":"16804:122:164","nodes":[],"body":{"id":82468,"nodeType":"Block","src":"16888:38:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82464,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"16905:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$84665_$","typeString":"type(contract super Router)"}},"id":82465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16911:6:164","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":20663,"src":"16905:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":82466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16905:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":82463,"id":82467,"nodeType":"Return","src":"16898:21:164"}]},"baseFunctions":[20663,76721],"documentation":{"id":82456,"nodeType":"StructuredDocumentation","src":"16638:161:164","text":" @dev Returns true if the contract is paused, and false otherwise.\n @return isPaused `true` if the contract is paused, `false` otherwise."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"16813:6:164","overrides":{"id":82460,"nodeType":"OverrideSpecifier","overrides":[{"id":82458,"name":"IRouter","nameLocations":["16843:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76958,"src":"16843:7:164"},{"id":82459,"name":"PausableUpgradeable","nameLocations":["16852:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":20737,"src":"16852:19:164"}],"src":"16834:38:164"},"parameters":{"id":82457,"nodeType":"ParameterList","parameters":[],"src":"16819:2:164"},"returnParameters":{"id":82463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82469,"src":"16882:4:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82461,"name":"bool","nodeType":"ElementaryTypeName","src":"16882:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16881:6:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82481,"nodeType":"FunctionDefinition","src":"17051:130:164","nodes":[],"body":{"id":82480,"nodeType":"Block","src":"17132:49:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82476,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"17149:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17149:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17159:15:164","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":76449,"src":"17149:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":82475,"id":82479,"nodeType":"Return","src":"17142:32:164"}]},"baseFunctions":[76728],"documentation":{"id":82470,"nodeType":"StructuredDocumentation","src":"16932:114:164","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17060:15:164","parameters":{"id":82471,"nodeType":"ParameterList","parameters":[],"src":"17075:2:164"},"returnParameters":{"id":82475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82481,"src":"17099:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":82473,"nodeType":"UserDefinedTypeName","pathNode":{"id":82472,"name":"Gear.ComputationSettings","nameLocations":["17099:4:164","17104:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":85750,"src":"17099:24:164"},"referencedDeclaration":85750,"src":"17099:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$85750_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17098:33:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82498,"nodeType":"FunctionDefinition","src":"17290:134:164","nodes":[],"body":{"id":82497,"nodeType":"Block","src":"17363:61:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82490,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"17380:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17380:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17390:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"17380:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17403:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"17380:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":82495,"indexExpression":{"id":82494,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82484,"src":"17409:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17380:37:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"functionReturnParameters":82489,"id":82496,"nodeType":"Return","src":"17373:44:164"}]},"baseFunctions":[76737],"documentation":{"id":82482,"nodeType":"StructuredDocumentation","src":"17187:98:164","text":" @dev Returns the state of code.\n @return codeState The state of the code."},"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"17299:9:164","parameters":{"id":82485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82484,"mutability":"mutable","name":"_codeId","nameLocation":"17317:7:164","nodeType":"VariableDeclaration","scope":82498,"src":"17309:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82483,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17309:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17308:17:164"},"returnParameters":{"id":82489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82498,"src":"17347:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"},"typeName":{"id":82487,"nodeType":"UserDefinedTypeName","pathNode":{"id":82486,"name":"Gear.CodeState","nameLocations":["17347:4:164","17352:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":85738,"src":"17347:14:164"},"referencedDeclaration":85738,"src":"17347:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"17346:16:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82557,"nodeType":"FunctionDefinition","src":"17548:378:164","nodes":[],"body":{"id":82556,"nodeType":"Block","src":"17645:281:164","nodes":[],"statements":[{"assignments":[82511],"declarations":[{"constant":false,"id":82511,"mutability":"mutable","name":"router","nameLocation":"17671:6:164","nodeType":"VariableDeclaration","scope":82556,"src":"17655:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82510,"nodeType":"UserDefinedTypeName","pathNode":{"id":82509,"name":"Storage","nameLocations":["17655:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"17655:7:164"},"referencedDeclaration":76458,"src":"17655:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82514,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82512,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"17680:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17680:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17655:34:164"},{"assignments":[82520],"declarations":[{"constant":false,"id":82520,"mutability":"mutable","name":"res","nameLocation":"17724:3:164","nodeType":"VariableDeclaration","scope":82556,"src":"17700:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$85738_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":82518,"nodeType":"UserDefinedTypeName","pathNode":{"id":82517,"name":"Gear.CodeState","nameLocations":["17700:4:164","17705:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":85738,"src":"17700:14:164"},"referencedDeclaration":85738,"src":"17700:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"id":82519,"nodeType":"ArrayTypeName","src":"17700:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$85738_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":82528,"initialValue":{"arguments":[{"expression":{"id":82525,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82502,"src":"17751:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":82526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17761:6:164","memberName":"length","nodeType":"MemberAccess","src":"17751:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17730:20:164","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$85738_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":82522,"nodeType":"UserDefinedTypeName","pathNode":{"id":82521,"name":"Gear.CodeState","nameLocations":["17734:4:164","17739:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":85738,"src":"17734:14:164"},"referencedDeclaration":85738,"src":"17734:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"id":82523,"nodeType":"ArrayTypeName","src":"17734:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$85738_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":82527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17730:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$85738_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17700:68:164"},{"body":{"id":82552,"nodeType":"Block","src":"17826:73:164","statements":[{"expression":{"id":82550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":82540,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82520,"src":"17840:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$85738_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":82542,"indexExpression":{"id":82541,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82530,"src":"17844:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17840:6:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":82543,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82511,"src":"17849:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17856:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"17849:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17869:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"17849:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":82549,"indexExpression":{"baseExpression":{"id":82546,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82502,"src":"17875:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":82548,"indexExpression":{"id":82547,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82530,"src":"17885:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17875:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17849:39:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"src":"17840:48:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"id":82551,"nodeType":"ExpressionStatement","src":"17840:48:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82533,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82530,"src":"17799:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82534,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82502,"src":"17803:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":82535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17813:6:164","memberName":"length","nodeType":"MemberAccess","src":"17803:16:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17799:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82553,"initializationExpression":{"assignments":[82530],"declarations":[{"constant":false,"id":82530,"mutability":"mutable","name":"i","nameLocation":"17792:1:164","nodeType":"VariableDeclaration","scope":82553,"src":"17784:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82529,"name":"uint256","nodeType":"ElementaryTypeName","src":"17784:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82532,"initialValue":{"hexValue":"30","id":82531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17796:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17784:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17821:3:164","subExpression":{"id":82537,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82530,"src":"17821:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82539,"nodeType":"ExpressionStatement","src":"17821:3:164"},"nodeType":"ForStatement","src":"17779:120:164"},{"expression":{"id":82554,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82520,"src":"17916:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$85738_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":82508,"id":82555,"nodeType":"Return","src":"17909:10:164"}]},"baseFunctions":[76748],"documentation":{"id":82499,"nodeType":"StructuredDocumentation","src":"17430:113:164","text":" @dev Returns the states of multiple codes.\n @return codesStates The states of the codes."},"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"17557:11:164","parameters":{"id":82503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82502,"mutability":"mutable","name":"_codesIds","nameLocation":"17588:9:164","nodeType":"VariableDeclaration","scope":82557,"src":"17569:28:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":82500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17569:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82501,"nodeType":"ArrayTypeName","src":"17569:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17568:30:164"},"returnParameters":{"id":82508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82557,"src":"17620:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$85738_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":82505,"nodeType":"UserDefinedTypeName","pathNode":{"id":82504,"name":"Gear.CodeState","nameLocations":["17620:4:164","17625:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":85738,"src":"17620:14:164"},"referencedDeclaration":85738,"src":"17620:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"id":82506,"nodeType":"ArrayTypeName","src":"17620:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$85738_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"17619:25:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82573,"nodeType":"FunctionDefinition","src":"18052:140:164","nodes":[],"body":{"id":82572,"nodeType":"Block","src":"18125:67:164","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82565,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"18142:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18142:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18152:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"18142:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18165:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85791,"src":"18142:31:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82570,"indexExpression":{"id":82569,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82560,"src":"18174:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18142:43:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82564,"id":82571,"nodeType":"Return","src":"18135:50:164"}]},"baseFunctions":[76756],"documentation":{"id":82558,"nodeType":"StructuredDocumentation","src":"17932:115:164","text":" @dev Returns the code ID of the given program.\n @return codeId The code ID of the program."},"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"18061:13:164","parameters":{"id":82561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82560,"mutability":"mutable","name":"_programId","nameLocation":"18083:10:164","nodeType":"VariableDeclaration","scope":82573,"src":"18075:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82559,"name":"address","nodeType":"ElementaryTypeName","src":"18075:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18074:20:164"},"returnParameters":{"id":82564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82573,"src":"18116:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18116:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18115:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82629,"nodeType":"FunctionDefinition","src":"18324:376:164","nodes":[],"body":{"id":82628,"nodeType":"Block","src":"18421:279:164","nodes":[],"statements":[{"assignments":[82585],"declarations":[{"constant":false,"id":82585,"mutability":"mutable","name":"router","nameLocation":"18447:6:164","nodeType":"VariableDeclaration","scope":82628,"src":"18431:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82584,"nodeType":"UserDefinedTypeName","pathNode":{"id":82583,"name":"Storage","nameLocations":["18431:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"18431:7:164"},"referencedDeclaration":76458,"src":"18431:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82588,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82586,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"18456:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18456:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18431:34:164"},{"assignments":[82593],"declarations":[{"constant":false,"id":82593,"mutability":"mutable","name":"res","nameLocation":"18493:3:164","nodeType":"VariableDeclaration","scope":82628,"src":"18476:20:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":82591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18476:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82592,"nodeType":"ArrayTypeName","src":"18476:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":82600,"initialValue":{"arguments":[{"expression":{"id":82597,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82577,"src":"18513:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18526:6:164","memberName":"length","nodeType":"MemberAccess","src":"18513:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18499:13:164","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":82594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18503:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82595,"nodeType":"ArrayTypeName","src":"18503:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":82599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18499:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18476:57:164"},{"body":{"id":82624,"nodeType":"Block","src":"18594:79:164","statements":[{"expression":{"id":82622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":82612,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82593,"src":"18608:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":82614,"indexExpression":{"id":82613,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82602,"src":"18612:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18608:6:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":82615,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82585,"src":"18617:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18624:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"18617:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18637:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85791,"src":"18617:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82621,"indexExpression":{"baseExpression":{"id":82618,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82577,"src":"18646:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82620,"indexExpression":{"id":82619,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82602,"src":"18659:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18646:15:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18617:45:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18608:54:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82623,"nodeType":"ExpressionStatement","src":"18608:54:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82602,"src":"18564:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82606,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82577,"src":"18568:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18581:6:164","memberName":"length","nodeType":"MemberAccess","src":"18568:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18564:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82625,"initializationExpression":{"assignments":[82602],"declarations":[{"constant":false,"id":82602,"mutability":"mutable","name":"i","nameLocation":"18557:1:164","nodeType":"VariableDeclaration","scope":82625,"src":"18549:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82601,"name":"uint256","nodeType":"ElementaryTypeName","src":"18549:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82604,"initialValue":{"hexValue":"30","id":82603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18561:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18549:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18589:3:164","subExpression":{"id":82609,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82602,"src":"18589:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82611,"nodeType":"ExpressionStatement","src":"18589:3:164"},"nodeType":"ForStatement","src":"18544:129:164"},{"expression":{"id":82626,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82593,"src":"18690:3:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":82582,"id":82627,"nodeType":"Return","src":"18683:10:164"}]},"baseFunctions":[76766],"documentation":{"id":82574,"nodeType":"StructuredDocumentation","src":"18198:121:164","text":" @dev Returns the code IDs of the given programs.\n @return codesIds The code IDs of the programs."},"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"18333:15:164","parameters":{"id":82578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82577,"mutability":"mutable","name":"_programsIds","nameLocation":"18368:12:164","nodeType":"VariableDeclaration","scope":82629,"src":"18349:31:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82575,"name":"address","nodeType":"ElementaryTypeName","src":"18349:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82576,"nodeType":"ArrayTypeName","src":"18349:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18348:33:164"},"returnParameters":{"id":82582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82629,"src":"18403:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":82579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18403:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82580,"nodeType":"ArrayTypeName","src":"18403:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18402:18:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82641,"nodeType":"FunctionDefinition","src":"18817:115:164","nodes":[],"body":{"id":82640,"nodeType":"Block","src":"18872:60:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82635,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"18889:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18889:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18899:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"18889:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18912:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85794,"src":"18889:36:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82634,"id":82639,"nodeType":"Return","src":"18882:43:164"}]},"baseFunctions":[76772],"documentation":{"id":82630,"nodeType":"StructuredDocumentation","src":"18706:106:164","text":" @dev Returns the count of programs.\n @return programsCount The count of programs."},"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"18826:13:164","parameters":{"id":82631,"nodeType":"ParameterList","parameters":[],"src":"18839:2:164"},"returnParameters":{"id":82634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82641,"src":"18863:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82632,"name":"uint256","nodeType":"ElementaryTypeName","src":"18863:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18862:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82653,"nodeType":"FunctionDefinition","src":"19069:127:164","nodes":[],"body":{"id":82652,"nodeType":"Block","src":"19130:66:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82647,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"19147:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19147:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19157:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"19147:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19170:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85797,"src":"19147:42:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82646,"id":82651,"nodeType":"Return","src":"19140:49:164"}]},"baseFunctions":[76778],"documentation":{"id":82642,"nodeType":"StructuredDocumentation","src":"18938:126:164","text":" @dev Returns the count of validated codes.\n @return validatedCodesCount The count of validated codes."},"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"19078:19:164","parameters":{"id":82643,"nodeType":"ParameterList","parameters":[],"src":"19097:2:164"},"returnParameters":{"id":82646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82653,"src":"19121:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82644,"name":"uint256","nodeType":"ElementaryTypeName","src":"19121:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19120:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82665,"nodeType":"FunctionDefinition","src":"19393:147:164","nodes":[],"body":{"id":82664,"nodeType":"Block","src":"19465:75:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82659,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"19482:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19482:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19492:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"19482:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19505:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":85803,"src":"19482:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82658,"id":82663,"nodeType":"Return","src":"19475:58:164"}]},"baseFunctions":[76784],"documentation":{"id":82654,"nodeType":"StructuredDocumentation","src":"19202:186:164","text":" @dev Returns the base fee for requesting code validation in WVARA ERC20 token.\n @return requestCodeValidationBaseFee The base fee for requesting code validation."},"functionSelector":"188509e9","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationBaseFee","nameLocation":"19402:28:164","parameters":{"id":82655,"nodeType":"ParameterList","parameters":[],"src":"19430:2:164"},"returnParameters":{"id":82658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82665,"src":"19456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82656,"name":"uint256","nodeType":"ElementaryTypeName","src":"19456:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19455:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":82677,"nodeType":"FunctionDefinition","src":"19792:149:164","nodes":[],"body":{"id":82676,"nodeType":"Block","src":"19865:76:164","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82671,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"19882:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19882:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19892:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"19882:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19905:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":85806,"src":"19882:52:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82670,"id":82675,"nodeType":"Return","src":"19875:59:164"}]},"baseFunctions":[76790],"documentation":{"id":82666,"nodeType":"StructuredDocumentation","src":"19546:241:164","text":" @dev Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @return requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."},"functionSelector":"f1ef31ec","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationExtraFee","nameLocation":"19801:29:164","parameters":{"id":82667,"nodeType":"ParameterList","parameters":[],"src":"19830:2:164"},"returnParameters":{"id":82670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82677,"src":"19856:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82668,"name":"uint256","nodeType":"ElementaryTypeName","src":"19856:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19855:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":82689,"nodeType":"FunctionDefinition","src":"20038:108:164","nodes":[],"body":{"id":82688,"nodeType":"Block","src":"20103:43:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82684,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"20120:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20120:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20130:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"20120:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":82683,"id":82687,"nodeType":"Return","src":"20113:26:164"}]},"baseFunctions":[76797],"documentation":{"id":82678,"nodeType":"StructuredDocumentation","src":"19947:86:164","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"20047:9:164","parameters":{"id":82679,"nodeType":"ParameterList","parameters":[],"src":"20056:2:164"},"returnParameters":{"id":82683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82689,"src":"20080:21:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":82681,"nodeType":"UserDefinedTypeName","pathNode":{"id":82680,"name":"Gear.Timelines","nameLocations":["20080:4:164","20085:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":85851,"src":"20080:14:164"},"referencedDeclaration":85851,"src":"20080:14:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"20079:23:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82699,"nodeType":"FunctionDefinition","src":"20320:104:164","nodes":[],"body":{"id":82698,"nodeType":"Block","src":"20380:44:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82695,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20830,"src":"20397:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20397:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82694,"id":82697,"nodeType":"Return","src":"20390:27:164"}]},"baseFunctions":[76803],"documentation":{"id":82690,"nodeType":"StructuredDocumentation","src":"20152:163:164","text":" @dev Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\n @return domainSeparator The domain separator."},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"20329:16:164","parameters":{"id":82691,"nodeType":"ParameterList","parameters":[],"src":"20345:2:164"},"returnParameters":{"id":82694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82693,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82699,"src":"20371:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20371:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20370:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":82715,"nodeType":"FunctionDefinition","src":"20588:116:164","nodes":[],"body":{"id":82714,"nodeType":"Block","src":"20645:59:164","nodes":[],"statements":[{"expression":{"id":82712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82707,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"20655:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20655:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20665:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"20655:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20679:6:164","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":85622,"src":"20655:30:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82711,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82702,"src":"20688:9:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20655:42:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82713,"nodeType":"ExpressionStatement","src":"20655:42:164"}]},"baseFunctions":[76809],"documentation":{"id":82700,"nodeType":"StructuredDocumentation","src":"20455:128:164","text":" @dev Sets the `Mirror` implementation address.\n @param newMirror The new mirror implementation address."},"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":82705,"kind":"modifierInvocation","modifierName":{"id":82704,"name":"onlyOwner","nameLocations":["20635:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"20635:9:164"},"nodeType":"ModifierInvocation","src":"20635:9:164"}],"name":"setMirror","nameLocation":"20597:9:164","parameters":{"id":82703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82702,"mutability":"mutable","name":"newMirror","nameLocation":"20615:9:164","nodeType":"VariableDeclaration","scope":82715,"src":"20607:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82701,"name":"address","nodeType":"ElementaryTypeName","src":"20607:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20606:19:164"},"returnParameters":{"id":82706,"nodeType":"ParameterList","parameters":[],"src":"20645:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":82731,"nodeType":"FunctionDefinition","src":"20883:161:164","nodes":[],"body":{"id":82730,"nodeType":"Block","src":"20963:81:164","nodes":[],"statements":[{"expression":{"id":82728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82723,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"20973:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20973:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20983:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"20973:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20996:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":85803,"src":"20973:51:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82727,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82718,"src":"21027:10:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20973:64:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82729,"nodeType":"ExpressionStatement","src":"20973:64:164"}]},"baseFunctions":[76815],"documentation":{"id":82716,"nodeType":"StructuredDocumentation","src":"20710:168:164","text":" @dev Sets the base fee for requesting code validation in WVARA ERC20 token.\n @param newBaseFee The new base fee for requesting code validation."},"functionSelector":"11bec80d","implemented":true,"kind":"function","modifiers":[{"id":82721,"kind":"modifierInvocation","modifierName":{"id":82720,"name":"onlyOwner","nameLocations":["20953:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"20953:9:164"},"nodeType":"ModifierInvocation","src":"20953:9:164"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"20892:31:164","parameters":{"id":82719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82718,"mutability":"mutable","name":"newBaseFee","nameLocation":"20932:10:164","nodeType":"VariableDeclaration","scope":82731,"src":"20924:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82717,"name":"uint256","nodeType":"ElementaryTypeName","src":"20924:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20923:20:164"},"returnParameters":{"id":82722,"nodeType":"ParameterList","parameters":[],"src":"20963:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":82747,"nodeType":"FunctionDefinition","src":"21278:165:164","nodes":[],"body":{"id":82746,"nodeType":"Block","src":"21360:83:164","nodes":[],"statements":[{"expression":{"id":82744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82739,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"21370:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21370:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21380:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"21370:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21393:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":85806,"src":"21370:52:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82743,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82734,"src":"21425:11:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21370:66:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82745,"nodeType":"ExpressionStatement","src":"21370:66:164"}]},"baseFunctions":[76821],"documentation":{"id":82732,"nodeType":"StructuredDocumentation","src":"21050:223:164","text":" @dev Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @param newExtraFee The new extra fee for requesting code validation on behalf of someone else."},"functionSelector":"0b9737ce","implemented":true,"kind":"function","modifiers":[{"id":82737,"kind":"modifierInvocation","modifierName":{"id":82736,"name":"onlyOwner","nameLocations":["21350:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"21350:9:164"},"nodeType":"ModifierInvocation","src":"21350:9:164"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"21287:32:164","parameters":{"id":82735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82734,"mutability":"mutable","name":"newExtraFee","nameLocation":"21328:11:164","nodeType":"VariableDeclaration","scope":82747,"src":"21320:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82733,"name":"uint256","nodeType":"ElementaryTypeName","src":"21320:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21319:21:164"},"returnParameters":{"id":82738,"nodeType":"ParameterList","parameters":[],"src":"21360:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":82757,"nodeType":"FunctionDefinition","src":"21498:59:164","nodes":[],"body":{"id":82756,"nodeType":"Block","src":"21532:25:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82753,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20712,"src":"21542:6:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21542:8:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82755,"nodeType":"ExpressionStatement","src":"21542:8:164"}]},"baseFunctions":[76825],"documentation":{"id":82748,"nodeType":"StructuredDocumentation","src":"21449:44:164","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":82751,"kind":"modifierInvocation","modifierName":{"id":82750,"name":"onlyOwner","nameLocations":["21522:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"21522:9:164"},"nodeType":"ModifierInvocation","src":"21522:9:164"}],"name":"pause","nameLocation":"21507:5:164","parameters":{"id":82749,"nodeType":"ParameterList","parameters":[],"src":"21512:2:164"},"returnParameters":{"id":82752,"nodeType":"ParameterList","parameters":[],"src":"21532:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82767,"nodeType":"FunctionDefinition","src":"21614:63:164","nodes":[],"body":{"id":82766,"nodeType":"Block","src":"21650:27:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82763,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20736,"src":"21660:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21660:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82765,"nodeType":"ExpressionStatement","src":"21660:10:164"}]},"baseFunctions":[76829],"documentation":{"id":82758,"nodeType":"StructuredDocumentation","src":"21563:46:164","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":82761,"kind":"modifierInvocation","modifierName":{"id":82760,"name":"onlyOwner","nameLocations":["21640:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"21640:9:164"},"nodeType":"ModifierInvocation","src":"21640:9:164"}],"name":"unpause","nameLocation":"21623:7:164","parameters":{"id":82759,"nodeType":"ParameterList","parameters":[],"src":"21630:2:164"},"returnParameters":{"id":82762,"nodeType":"ParameterList","parameters":[],"src":"21650:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82822,"nodeType":"FunctionDefinition","src":"21778:385:164","nodes":[],"body":{"id":82821,"nodeType":"Block","src":"21816:347:164","nodes":[],"statements":[{"assignments":[82773],"declarations":[{"constant":false,"id":82773,"mutability":"mutable","name":"router","nameLocation":"21842:6:164","nodeType":"VariableDeclaration","scope":82821,"src":"21826:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82772,"nodeType":"UserDefinedTypeName","pathNode":{"id":82771,"name":"Storage","nameLocations":["21826:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"21826:7:164"},"referencedDeclaration":76458,"src":"21826:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82776,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82774,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"21851:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21851:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21826:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82778,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82773,"src":"21879:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21886:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"21879:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21899:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85753,"src":"21879:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":82783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21915:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":82782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21907:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21907:7:164","typeDescriptions":{}}},"id":82784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21907:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21879:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82786,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76526,"src":"21919:21:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21919:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82777,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21871:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21871:72:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82789,"nodeType":"ExpressionStatement","src":"21871:72:164"},{"assignments":[82791],"declarations":[{"constant":false,"id":82791,"mutability":"mutable","name":"genesisHash","nameLocation":"21962:11:164","nodeType":"VariableDeclaration","scope":82821,"src":"21954:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21954:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82797,"initialValue":{"arguments":[{"expression":{"expression":{"id":82793,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82773,"src":"21986:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21993:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"21986:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22006:6:164","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":85755,"src":"21986:26:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":82792,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"21976:9:164","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":82796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21976:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21954:59:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82799,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82791,"src":"22032:11:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22055:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":82801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22047:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82800,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22047:7:164","typeDescriptions":{}}},"id":82803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22047:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22032:25:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82805,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76529,"src":"22059:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22059:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82798,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22024:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22024:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82808,"nodeType":"ExpressionStatement","src":"22024:57:164"},{"expression":{"id":82819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82809,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82773,"src":"22092:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22099:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"22092:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22112:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85753,"src":"22092:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":82815,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82773,"src":"22129:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22136:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"22129:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22149:6:164","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":85755,"src":"22129:26:164","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":82814,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22119:9:164","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":82818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22119:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22092:64:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82820,"nodeType":"ExpressionStatement","src":"22092:64:164"}]},"baseFunctions":[76833],"documentation":{"id":82768,"nodeType":"StructuredDocumentation","src":"21702:71:164","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"21787:17:164","parameters":{"id":82769,"nodeType":"ParameterList","parameters":[],"src":"21804:2:164"},"returnParameters":{"id":82770,"nodeType":"ParameterList","parameters":[],"src":"21816:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":82951,"nodeType":"FunctionDefinition","src":"23025:986:164","nodes":[],"body":{"id":82950,"nodeType":"Block","src":"23169:842:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":82840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23196:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":82839,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"23187:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":82841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23187:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23202:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23187:16:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82844,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76532,"src":"23205:12:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23205:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23179:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23179:41:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82847,"nodeType":"ExpressionStatement","src":"23179:41:164"},{"assignments":[82850],"declarations":[{"constant":false,"id":82850,"mutability":"mutable","name":"router","nameLocation":"23247:6:164","nodeType":"VariableDeclaration","scope":82950,"src":"23231:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82849,"nodeType":"UserDefinedTypeName","pathNode":{"id":82848,"name":"Storage","nameLocations":["23231:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"23231:7:164"},"referencedDeclaration":76458,"src":"23231:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82853,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82851,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"23256:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23256:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23231:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82855,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82850,"src":"23283:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23290:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"23283:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23303:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85753,"src":"23283:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23319:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":82859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23311:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23311:7:164","typeDescriptions":{}}},"id":82861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23311:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23283:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82863,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"23323:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23323:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23275:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23275:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82866,"nodeType":"ExpressionStatement","src":"23275:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"},"id":82876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82868,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82850,"src":"23376:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23383:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"23376:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23396:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"23376:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":82872,"indexExpression":{"id":82871,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82825,"src":"23402:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23376:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":82873,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"23414:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23419:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":85738,"src":"23414:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$85738_$","typeString":"type(enum Gear.CodeState)"}},"id":82875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23429:7:164","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":85733,"src":"23414:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"src":"23376:60:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82877,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"23438:34:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23438:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82867,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23368:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23368:107:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82880,"nodeType":"ExpressionStatement","src":"23368:107:164"},{"assignments":[82883],"declarations":[{"constant":false,"id":82883,"mutability":"mutable","name":"_wrappedVara","nameLocation":"23499:12:164","nodeType":"VariableDeclaration","scope":82950,"src":"23486:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"},"typeName":{"id":82882,"nodeType":"UserDefinedTypeName","pathNode":{"id":82881,"name":"IWrappedVara","nameLocations":["23486:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":76974,"src":"23486:12:164"},"referencedDeclaration":76974,"src":"23486:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":82889,"initialValue":{"arguments":[{"expression":{"expression":{"id":82885,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82850,"src":"23527:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23534:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"23527:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23548:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85625,"src":"23527:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82884,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"23514:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":82888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23514:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"23486:74:164"},{"assignments":[82891],"declarations":[{"constant":false,"id":82891,"mutability":"mutable","name":"baseFee","nameLocation":"23579:7:164","nodeType":"VariableDeclaration","scope":82950,"src":"23571:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82890,"name":"uint256","nodeType":"ElementaryTypeName","src":"23571:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82895,"initialValue":{"expression":{"expression":{"id":82892,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82850,"src":"23589:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23596:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"23589:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23609:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":85803,"src":"23589:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23571:66:164"},{"clauses":[{"block":{"id":82910,"nodeType":"Block","src":"23730:2:164","statements":[]},"errorName":"","id":82911,"nodeType":"TryCatchClause","src":"23730:2:164"},{"block":{"id":82912,"nodeType":"Block","src":"23739:2:164","statements":[]},"errorName":"","id":82913,"nodeType":"TryCatchClause","src":"23733:8:164"}],"externalCall":{"arguments":[{"expression":{"id":82898,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23671:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23675:6:164","memberName":"sender","nodeType":"MemberAccess","src":"23671:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":82902,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23691:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":82901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23683:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":82900,"name":"address","nodeType":"ElementaryTypeName","src":"23683:7:164","typeDescriptions":{}}},"id":82903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23683:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82904,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82891,"src":"23698:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82905,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82827,"src":"23707:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82906,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82829,"src":"23718:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":82907,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82831,"src":"23722:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":82908,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82833,"src":"23726:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82896,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82883,"src":"23651:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":82897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23664:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"23651:19:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":82909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23651:78:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82914,"nodeType":"TryStatement","src":"23647:94:164"},{"assignments":[82916],"declarations":[{"constant":false,"id":82916,"mutability":"mutable","name":"success","nameLocation":"23755:7:164","nodeType":"VariableDeclaration","scope":82950,"src":"23750:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82915,"name":"bool","nodeType":"ElementaryTypeName","src":"23750:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":82927,"initialValue":{"arguments":[{"expression":{"id":82919,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23791:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23795:6:164","memberName":"sender","nodeType":"MemberAccess","src":"23791:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":82923,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23811:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":82922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23803:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":82921,"name":"address","nodeType":"ElementaryTypeName","src":"23803:7:164","typeDescriptions":{}}},"id":82924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23803:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82925,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82891,"src":"23818:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82917,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82883,"src":"23765:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":82918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23778:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"23765:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":82926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23765:61:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"23750:76:164"},{"expression":{"arguments":[{"id":82929,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82916,"src":"23844:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82930,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"23853:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23853:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82928,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23836:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23836:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82933,"nodeType":"ExpressionStatement","src":"23836:38:164"},{"expression":{"id":82944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":82934,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82850,"src":"23885:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23892:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"23885:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23905:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"23885:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":82940,"indexExpression":{"id":82937,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82825,"src":"23911:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23885:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":82941,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"23922:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":82942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23927:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":85738,"src":"23922:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$85738_$","typeString":"type(enum Gear.CodeState)"}},"id":82943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23937:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":85735,"src":"23922:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"src":"23885:71:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"id":82945,"nodeType":"ExpressionStatement","src":"23885:71:164"},{"eventCall":{"arguments":[{"id":82947,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82825,"src":"23996:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82946,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76485,"src":"23972:23:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23972:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82949,"nodeType":"EmitStatement","src":"23967:37:164"}]},"baseFunctions":[76847],"documentation":{"id":82823,"nodeType":"StructuredDocumentation","src":"22169:851:164","text":" @dev Requests code validation for the given code ID.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()`\n in the WVARA ERC20 token.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"8c4ace6a","implemented":true,"kind":"function","modifiers":[{"id":82836,"kind":"modifierInvocation","modifierName":{"id":82835,"name":"whenNotPaused","nameLocations":["23151:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"23151:13:164"},"nodeType":"ModifierInvocation","src":"23151:13:164"}],"name":"requestCodeValidation","nameLocation":"23034:21:164","parameters":{"id":82834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82825,"mutability":"mutable","name":"_codeId","nameLocation":"23064:7:164","nodeType":"VariableDeclaration","scope":82951,"src":"23056:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23056:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82827,"mutability":"mutable","name":"_deadline","nameLocation":"23081:9:164","nodeType":"VariableDeclaration","scope":82951,"src":"23073:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82826,"name":"uint256","nodeType":"ElementaryTypeName","src":"23073:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82829,"mutability":"mutable","name":"_v","nameLocation":"23098:2:164","nodeType":"VariableDeclaration","scope":82951,"src":"23092:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82828,"name":"uint8","nodeType":"ElementaryTypeName","src":"23092:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":82831,"mutability":"mutable","name":"_r","nameLocation":"23110:2:164","nodeType":"VariableDeclaration","scope":82951,"src":"23102:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82830,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23102:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82833,"mutability":"mutable","name":"_s","nameLocation":"23122:2:164","nodeType":"VariableDeclaration","scope":82951,"src":"23114:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23114:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23055:70:164"},"returnParameters":{"id":82837,"nodeType":"ParameterList","parameters":[],"src":"23169:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83217,"nodeType":"FunctionDefinition","src":"25518:2418:164","nodes":[],"body":{"id":83216,"nodeType":"Block","src":"25828:2108:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":82980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25855:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":82979,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"25846:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":82981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25846:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25861:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25846:16:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82984,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76532,"src":"25864:12:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25864:14:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82978,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25838:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25838:41:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82987,"nodeType":"ExpressionStatement","src":"25838:41:164"},{"assignments":[82990],"declarations":[{"constant":false,"id":82990,"mutability":"mutable","name":"router","nameLocation":"25906:6:164","nodeType":"VariableDeclaration","scope":83216,"src":"25890:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82989,"nodeType":"UserDefinedTypeName","pathNode":{"id":82988,"name":"Storage","nameLocations":["25890:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"25890:7:164"},"referencedDeclaration":76458,"src":"25890:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82993,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82991,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"25915:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25915:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25890:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82995,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82990,"src":"25942:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25949:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"25942:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25962:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85753,"src":"25942:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25978:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":82999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25970:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25970:7:164","typeDescriptions":{}}},"id":83001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25970:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25942:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83003,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"25982:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25982:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82994,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25934:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25934:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83006,"nodeType":"ExpressionStatement","src":"25934:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"},"id":83016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83008,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82990,"src":"26035:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26042:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"26035:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26055:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"26035:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83012,"indexExpression":{"id":83011,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82956,"src":"26061:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26035:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83013,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"26073:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26078:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":85738,"src":"26073:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$85738_$","typeString":"type(enum Gear.CodeState)"}},"id":83015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26088:7:164","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":85733,"src":"26073:22:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"src":"26035:60:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83017,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"26097:34:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26097:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83007,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26027:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26027:107:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83020,"nodeType":"ExpressionStatement","src":"26027:107:164"},{"assignments":[83022],"declarations":[{"constant":false,"id":83022,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"26153:17:164","nodeType":"VariableDeclaration","scope":83216,"src":"26145:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83021,"name":"uint256","nodeType":"ElementaryTypeName","src":"26145:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83024,"initialValue":{"hexValue":"30","id":83023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26173:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26145:29:164"},{"body":{"id":83040,"nodeType":"Block","src":"26197:142:164","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":83027,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83022,"src":"26224:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83026,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26215:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26215:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26254:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26246:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26246:7:164","typeDescriptions":{}}},"id":83032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26246:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26215:41:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83036,"nodeType":"IfStatement","src":"26211:85:164","trueBody":{"id":83035,"nodeType":"Block","src":"26258:38:164","statements":[{"id":83034,"nodeType":"Break","src":"26276:5:164"}]}},{"expression":{"id":83038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26309:19:164","subExpression":{"id":83037,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83022,"src":"26309:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83039,"nodeType":"ExpressionStatement","src":"26309:19:164"}]},"condition":{"hexValue":"74727565","id":83025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26191:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":83041,"nodeType":"WhileStatement","src":"26184:155:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83043,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82959,"src":"26357:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26369:6:164","memberName":"length","nodeType":"MemberAccess","src":"26357:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83045,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83022,"src":"26379:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26357:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":83048,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82959,"src":"26422:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26434:6:164","memberName":"length","nodeType":"MemberAccess","src":"26422:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83050,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83022,"src":"26442:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83047,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76545,"src":"26398:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":83051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26398:62:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83042,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26349:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26349:112:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83053,"nodeType":"ExpressionStatement","src":"26349:112:164"},{"body":{"id":83086,"nodeType":"Block","src":"26521:174:164","statements":[{"assignments":[83066],"declarations":[{"constant":false,"id":83066,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"26543:16:164","nodeType":"VariableDeclaration","scope":83086,"src":"26535:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26535:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83070,"initialValue":{"arguments":[{"id":83068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83055,"src":"26571:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83067,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26562:8:164","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26562:11:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26535:38:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":83072,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82959,"src":"26595:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83074,"indexExpression":{"id":83073,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83055,"src":"26607:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26595:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83075,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83066,"src":"26613:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26595:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":83078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83055,"src":"26647:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":83079,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82959,"src":"26650:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83081,"indexExpression":{"id":83080,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83055,"src":"26662:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26650:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83082,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83066,"src":"26666:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83077,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76554,"src":"26631:15:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_error_$","typeString":"function (uint256,bytes32,bytes32) pure returns (error)"}},"id":83083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26631:52:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83071,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26587:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26587:97:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83085,"nodeType":"ExpressionStatement","src":"26587:97:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83058,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83055,"src":"26492:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83059,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82959,"src":"26496:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":83060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26508:6:164","memberName":"length","nodeType":"MemberAccess","src":"26496:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26492:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83087,"initializationExpression":{"assignments":[83055],"declarations":[{"constant":false,"id":83055,"mutability":"mutable","name":"i","nameLocation":"26485:1:164","nodeType":"VariableDeclaration","scope":83087,"src":"26477:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83054,"name":"uint256","nodeType":"ElementaryTypeName","src":"26477:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83057,"initialValue":{"hexValue":"30","id":83056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26489:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26477:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26516:3:164","subExpression":{"id":83062,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83055,"src":"26516:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83064,"nodeType":"ExpressionStatement","src":"26516:3:164"},"nodeType":"ForStatement","src":"26472:223:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83089,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26771:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26777:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"26771:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83091,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82961,"src":"26790:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26771:28:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":83094,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82961,"src":"26818:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83093,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"26801:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":83095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26801:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83088,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26763:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26763:66:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83097,"nodeType":"ExpressionStatement","src":"26763:66:164"},{"assignments":[83099],"declarations":[{"constant":false,"id":83099,"mutability":"mutable","name":"structHash","nameLocation":"26848:10:164","nodeType":"VariableDeclaration","scope":83216,"src":"26840:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26840:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83118,"initialValue":{"arguments":[{"arguments":[{"id":83103,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81819,"src":"26912:42:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83104,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82954,"src":"26972:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83105,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82956,"src":"27000:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":83109,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82959,"src":"27052:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"expression":{"id":83107,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27035:3:164","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27039:12:164","memberName":"encodePacked","nodeType":"MemberAccess","src":"27035:16:164","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27035:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83106,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27025:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27025:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":83113,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82954,"src":"27093:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83112,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20551,"src":"27083:9:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":83114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27083:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83115,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82961,"src":"27122:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26884:3:164","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26888:6:164","memberName":"encode","nodeType":"MemberAccess","src":"26884:10:164","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26884:261:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83100,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26861:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26861:294:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26840:315:164"},{"assignments":[83120],"declarations":[{"constant":false,"id":83120,"mutability":"mutable","name":"hash","nameLocation":"27174:4:164","nodeType":"VariableDeclaration","scope":83216,"src":"27166:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27166:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83124,"initialValue":{"arguments":[{"id":83122,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83099,"src":"27198:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83121,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20869,"src":"27181:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":83123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27181:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27166:43:164"},{"assignments":[83126],"declarations":[{"constant":false,"id":83126,"mutability":"mutable","name":"signer","nameLocation":"27228:6:164","nodeType":"VariableDeclaration","scope":83216,"src":"27220:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83125,"name":"address","nodeType":"ElementaryTypeName","src":"27220:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83134,"initialValue":{"arguments":[{"id":83129,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83120,"src":"27251:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83130,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82963,"src":"27257:3:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83131,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82965,"src":"27262:3:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83132,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82967,"src":"27267:3:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83127,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9016,"src":"27237:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$9016_$","typeString":"type(library ECDSA)"}},"id":83128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27243:7:164","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":8938,"src":"27237:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":83133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27237:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27220:51:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83136,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83126,"src":"27289:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83137,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82954,"src":"27299:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27289:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":83140,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83126,"src":"27325:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83141,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82954,"src":"27333:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":83139,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76566,"src":"27311:13:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":83142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27311:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83135,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27281:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27281:64:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83144,"nodeType":"ExpressionStatement","src":"27281:64:164"},{"assignments":[83147],"declarations":[{"constant":false,"id":83147,"mutability":"mutable","name":"_wrappedVara","nameLocation":"27369:12:164","nodeType":"VariableDeclaration","scope":83216,"src":"27356:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"},"typeName":{"id":83146,"nodeType":"UserDefinedTypeName","pathNode":{"id":83145,"name":"IWrappedVara","nameLocations":["27356:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":76974,"src":"27356:12:164"},"referencedDeclaration":76974,"src":"27356:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":83153,"initialValue":{"arguments":[{"expression":{"expression":{"id":83149,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82990,"src":"27397:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27404:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"27397:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27418:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85625,"src":"27397:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83148,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"27384:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":83152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27384:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"27356:74:164"},{"assignments":[83155],"declarations":[{"constant":false,"id":83155,"mutability":"mutable","name":"fee","nameLocation":"27449:3:164","nodeType":"VariableDeclaration","scope":83216,"src":"27441:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83154,"name":"uint256","nodeType":"ElementaryTypeName","src":"27441:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83163,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83156,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82990,"src":"27467:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27474:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"27467:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27487:28:164","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":85803,"src":"27467:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83159,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82990,"src":"27518:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27525:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"27518:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27538:29:164","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":85806,"src":"27518:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27467:100:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27441:126:164"},{"clauses":[{"block":{"id":83177,"nodeType":"Block","src":"27659:2:164","statements":[]},"errorName":"","id":83178,"nodeType":"TryCatchClause","src":"27659:2:164"},{"block":{"id":83179,"nodeType":"Block","src":"27668:2:164","statements":[]},"errorName":"","id":83180,"nodeType":"TryCatchClause","src":"27662:8:164"}],"externalCall":{"arguments":[{"id":83166,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82954,"src":"27601:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83169,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27621:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":83168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27613:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83167,"name":"address","nodeType":"ElementaryTypeName","src":"27613:7:164","typeDescriptions":{}}},"id":83170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27613:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83171,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83155,"src":"27628:3:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83172,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82961,"src":"27633:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83173,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82969,"src":"27644:3:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83174,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82971,"src":"27649:3:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83175,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82973,"src":"27654:3:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83164,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83147,"src":"27581:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":83165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27594:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"27581:19:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":83176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27581:77:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83181,"nodeType":"TryStatement","src":"27577:93:164"},{"assignments":[83183],"declarations":[{"constant":false,"id":83183,"mutability":"mutable","name":"success","nameLocation":"27684:7:164","nodeType":"VariableDeclaration","scope":83216,"src":"27679:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83182,"name":"bool","nodeType":"ElementaryTypeName","src":"27679:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83193,"initialValue":{"arguments":[{"id":83186,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82954,"src":"27720:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83189,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27740:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":83188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27732:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83187,"name":"address","nodeType":"ElementaryTypeName","src":"27732:7:164","typeDescriptions":{}}},"id":83190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27732:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83191,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83155,"src":"27747:3:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83184,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83147,"src":"27694:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":83185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27707:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"27694:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":83192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27694:57:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27679:72:164"},{"expression":{"arguments":[{"id":83195,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83183,"src":"27769:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83196,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"27778:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27778:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83194,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27761:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27761:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83199,"nodeType":"ExpressionStatement","src":"27761:38:164"},{"expression":{"id":83210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83200,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82990,"src":"27810:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27817:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"27810:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27830:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"27810:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83206,"indexExpression":{"id":83203,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82956,"src":"27836:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27810:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":83207,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"27847:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27852:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":85738,"src":"27847:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$85738_$","typeString":"type(enum Gear.CodeState)"}},"id":83209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27862:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":85735,"src":"27847:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"src":"27810:71:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"id":83211,"nodeType":"ExpressionStatement","src":"27810:71:164"},{"eventCall":{"arguments":[{"id":83213,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82956,"src":"27921:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83212,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76485,"src":"27897:23:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27897:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83215,"nodeType":"EmitStatement","src":"27892:37:164"}]},"baseFunctions":[76872],"documentation":{"id":82952,"nodeType":"StructuredDocumentation","src":"24017:1496:164","text":" @dev Requests code validation for the given code ID on behalf of someone else.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()`\n in the WVARA ERC20 token.\n @param _requester The address of the requester on behalf of whom the code validation is requested.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _blobHashes The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`.\n This is needed to verify that the transaction has expected blobs attached.\n @param _deadline Deadline for the transaction to be executed.\n @param _v1 ECDSA signature parameter (for requestCodeValidation).\n @param _r1 ECDSA signature parameter (for requestCodeValidation).\n @param _s1 ECDSA signature parameter (for requestCodeValidation).\n @param _v2 ECDSA signature parameter (for permit).\n @param _r2 ECDSA signature parameter (for permit).\n @param _s2 ECDSA signature parameter (for permit)."},"functionSelector":"f0fd702a","implemented":true,"kind":"function","modifiers":[{"id":82976,"kind":"modifierInvocation","modifierName":{"id":82975,"name":"whenNotPaused","nameLocations":["25814:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"25814:13:164"},"nodeType":"ModifierInvocation","src":"25814:13:164"}],"name":"requestCodeValidationOnBehalf","nameLocation":"25527:29:164","parameters":{"id":82974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82954,"mutability":"mutable","name":"_requester","nameLocation":"25574:10:164","nodeType":"VariableDeclaration","scope":83217,"src":"25566:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82953,"name":"address","nodeType":"ElementaryTypeName","src":"25566:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82956,"mutability":"mutable","name":"_codeId","nameLocation":"25602:7:164","nodeType":"VariableDeclaration","scope":83217,"src":"25594:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25594:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82959,"mutability":"mutable","name":"_blobHashes","nameLocation":"25638:11:164","nodeType":"VariableDeclaration","scope":83217,"src":"25619:30:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":82957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25619:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82958,"nodeType":"ArrayTypeName","src":"25619:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":82961,"mutability":"mutable","name":"_deadline","nameLocation":"25667:9:164","nodeType":"VariableDeclaration","scope":83217,"src":"25659:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82960,"name":"uint256","nodeType":"ElementaryTypeName","src":"25659:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82963,"mutability":"mutable","name":"_v1","nameLocation":"25692:3:164","nodeType":"VariableDeclaration","scope":83217,"src":"25686:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82962,"name":"uint8","nodeType":"ElementaryTypeName","src":"25686:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":82965,"mutability":"mutable","name":"_r1","nameLocation":"25713:3:164","nodeType":"VariableDeclaration","scope":83217,"src":"25705:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25705:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82967,"mutability":"mutable","name":"_s1","nameLocation":"25734:3:164","nodeType":"VariableDeclaration","scope":83217,"src":"25726:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25726:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82969,"mutability":"mutable","name":"_v2","nameLocation":"25753:3:164","nodeType":"VariableDeclaration","scope":83217,"src":"25747:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82968,"name":"uint8","nodeType":"ElementaryTypeName","src":"25747:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":82971,"mutability":"mutable","name":"_r2","nameLocation":"25774:3:164","nodeType":"VariableDeclaration","scope":83217,"src":"25766:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25766:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82973,"mutability":"mutable","name":"_s2","nameLocation":"25795:3:164","nodeType":"VariableDeclaration","scope":83217,"src":"25787:11:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25787:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25556:248:164"},"returnParameters":{"id":82977,"nodeType":"ParameterList","parameters":[],"src":"25828:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83262,"nodeType":"FunctionDefinition","src":"29016:396:164","nodes":[],"body":{"id":83261,"nodeType":"Block","src":"29170:242:164","nodes":[],"statements":[{"assignments":[83232,null],"declarations":[{"constant":false,"id":83232,"mutability":"mutable","name":"mirror","nameLocation":"29189:6:164","nodeType":"VariableDeclaration","scope":83261,"src":"29181:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83231,"name":"address","nodeType":"ElementaryTypeName","src":"29181:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":83238,"initialValue":{"arguments":[{"id":83234,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83220,"src":"29215:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83235,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83222,"src":"29224:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":83236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29231:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83233,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83789,"src":"29200:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":83237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29200:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"29180:56:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83243,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83224,"src":"29287:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29319:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29311:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83244,"name":"address","nodeType":"ElementaryTypeName","src":"29311:7:164","typeDescriptions":{}}},"id":83247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29311:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"29287:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83251,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83224,"src":"29337:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"29287:70:164","trueExpression":{"expression":{"id":83249,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29324:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29328:6:164","memberName":"sender","nodeType":"MemberAccess","src":"29324:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83253,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"29359:10:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":83254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29359:12:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":83255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29373:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":83256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29379:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":83240,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83232,"src":"29255:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83239,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"29247:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$76363_$","typeString":"type(contract IMirror)"}},"id":83241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29247:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":83242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29276:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76353,"src":"29247:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":83257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29247:134:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83258,"nodeType":"ExpressionStatement","src":"29247:134:164"},{"expression":{"id":83259,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83232,"src":"29399:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83230,"id":83260,"nodeType":"Return","src":"29392:13:164"}]},"baseFunctions":[76884],"documentation":{"id":83218,"nodeType":"StructuredDocumentation","src":"27942:1069:164","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, and initializer.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":83227,"kind":"modifierInvocation","modifierName":{"id":83226,"name":"whenNotPaused","nameLocations":["29126:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"29126:13:164"},"nodeType":"ModifierInvocation","src":"29126:13:164"}],"name":"createProgram","nameLocation":"29025:13:164","parameters":{"id":83225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83220,"mutability":"mutable","name":"_codeId","nameLocation":"29047:7:164","nodeType":"VariableDeclaration","scope":83262,"src":"29039:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29039:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83222,"mutability":"mutable","name":"_salt","nameLocation":"29064:5:164","nodeType":"VariableDeclaration","scope":83262,"src":"29056:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83221,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29056:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83224,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"29079:20:164","nodeType":"VariableDeclaration","scope":83262,"src":"29071:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83223,"name":"address","nodeType":"ElementaryTypeName","src":"29071:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29038:62:164"},"returnParameters":{"id":83230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83262,"src":"29157:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83228,"name":"address","nodeType":"ElementaryTypeName","src":"29157:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29156:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83367,"nodeType":"FunctionDefinition","src":"30885:1031:164","nodes":[],"body":{"id":83366,"nodeType":"Block","src":"31190:726:164","nodes":[],"statements":[{"assignments":[83287,83290],"declarations":[{"constant":false,"id":83287,"mutability":"mutable","name":"mirror","nameLocation":"31209:6:164","nodeType":"VariableDeclaration","scope":83366,"src":"31201:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83286,"name":"address","nodeType":"ElementaryTypeName","src":"31201:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83290,"mutability":"mutable","name":"router","nameLocation":"31233:6:164","nodeType":"VariableDeclaration","scope":83366,"src":"31217:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83289,"nodeType":"UserDefinedTypeName","pathNode":{"id":83288,"name":"Storage","nameLocations":["31217:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"31217:7:164"},"referencedDeclaration":76458,"src":"31217:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83296,"initialValue":{"arguments":[{"id":83292,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83265,"src":"31258:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83293,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83267,"src":"31267:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":83294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31274:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83291,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83789,"src":"31243:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":83295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31243:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"31200:79:164"},{"assignments":[83299],"declarations":[{"constant":false,"id":83299,"mutability":"mutable","name":"_wrappedVara","nameLocation":"31303:12:164","nodeType":"VariableDeclaration","scope":83366,"src":"31290:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"},"typeName":{"id":83298,"nodeType":"UserDefinedTypeName","pathNode":{"id":83297,"name":"IWrappedVara","nameLocations":["31290:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":76974,"src":"31290:12:164"},"referencedDeclaration":76974,"src":"31290:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":83305,"initialValue":{"arguments":[{"expression":{"expression":{"id":83301,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83290,"src":"31331:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31338:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"31331:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31352:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85625,"src":"31331:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83300,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"31318:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":83304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31318:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"31290:74:164"},{"clauses":[{"block":{"id":83320,"nodeType":"Block","src":"31476:2:164","statements":[]},"errorName":"","id":83321,"nodeType":"TryCatchClause","src":"31476:2:164"},{"block":{"id":83322,"nodeType":"Block","src":"31485:2:164","statements":[]},"errorName":"","id":83323,"nodeType":"TryCatchClause","src":"31479:8:164"}],"externalCall":{"arguments":[{"expression":{"id":83308,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31399:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31403:6:164","memberName":"sender","nodeType":"MemberAccess","src":"31399:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83312,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31419:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":83311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31411:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83310,"name":"address","nodeType":"ElementaryTypeName","src":"31411:7:164","typeDescriptions":{}}},"id":83313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31411:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83314,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83271,"src":"31426:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83315,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83273,"src":"31453:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83316,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83275,"src":"31464:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83317,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83277,"src":"31468:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83318,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83279,"src":"31472:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83306,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83299,"src":"31379:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":83307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31392:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"31379:19:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":83319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31379:96:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83324,"nodeType":"TryStatement","src":"31375:112:164"},{"assignments":[83326],"declarations":[{"constant":false,"id":83326,"mutability":"mutable","name":"success","nameLocation":"31501:7:164","nodeType":"VariableDeclaration","scope":83366,"src":"31496:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83325,"name":"bool","nodeType":"ElementaryTypeName","src":"31496:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83337,"initialValue":{"arguments":[{"expression":{"id":83329,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31537:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31541:6:164","memberName":"sender","nodeType":"MemberAccess","src":"31537:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83333,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31557:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":83332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31549:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83331,"name":"address","nodeType":"ElementaryTypeName","src":"31549:7:164","typeDescriptions":{}}},"id":83334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31549:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83335,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83271,"src":"31564:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":83327,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83299,"src":"31511:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":83328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31524:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"31511:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":83336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31511:79:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31496:94:164"},{"expression":{"arguments":[{"id":83339,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83326,"src":"31608:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83340,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"31617:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31617:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83338,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31600:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31600:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83343,"nodeType":"ExpressionStatement","src":"31600:38:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83348,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83269,"src":"31706:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31738:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31730:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83349,"name":"address","nodeType":"ElementaryTypeName","src":"31730:7:164","typeDescriptions":{}}},"id":83352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31730:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31706:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83356,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83269,"src":"31756:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31706:70:164","trueExpression":{"expression":{"id":83354,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31743:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31747:6:164","memberName":"sender","nodeType":"MemberAccess","src":"31743:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83358,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"31794:10:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":83359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31794:12:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":83360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31824:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":83361,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83271,"src":"31846:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":83345,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83287,"src":"31657:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83344,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"31649:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$76363_$","typeString":"type(contract IMirror)"}},"id":83346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31649:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":83347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31678:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76353,"src":"31649:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":83362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31649:236:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83363,"nodeType":"ExpressionStatement","src":"31649:236:164"},{"expression":{"id":83364,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83287,"src":"31903:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83285,"id":83365,"nodeType":"Return","src":"31896:13:164"}]},"baseFunctions":[76906],"documentation":{"id":83263,"nodeType":"StructuredDocumentation","src":"29418:1462:164","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0d91bf2a","implemented":true,"kind":"function","modifiers":[{"id":83282,"kind":"modifierInvocation","modifierName":{"id":83281,"name":"whenNotPaused","nameLocations":["31158:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"31158:13:164"},"nodeType":"ModifierInvocation","src":"31158:13:164"}],"name":"createProgramWithExecutableBalance","nameLocation":"30894:34:164","parameters":{"id":83280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83265,"mutability":"mutable","name":"_codeId","nameLocation":"30946:7:164","nodeType":"VariableDeclaration","scope":83367,"src":"30938:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30938:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83267,"mutability":"mutable","name":"_salt","nameLocation":"30971:5:164","nodeType":"VariableDeclaration","scope":83367,"src":"30963:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83266,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30963:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83269,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"30994:20:164","nodeType":"VariableDeclaration","scope":83367,"src":"30986:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83268,"name":"address","nodeType":"ElementaryTypeName","src":"30986:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83271,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"31032:25:164","nodeType":"VariableDeclaration","scope":83367,"src":"31024:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83270,"name":"uint128","nodeType":"ElementaryTypeName","src":"31024:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83273,"mutability":"mutable","name":"_deadline","nameLocation":"31075:9:164","nodeType":"VariableDeclaration","scope":83367,"src":"31067:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83272,"name":"uint256","nodeType":"ElementaryTypeName","src":"31067:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83275,"mutability":"mutable","name":"_v","nameLocation":"31100:2:164","nodeType":"VariableDeclaration","scope":83367,"src":"31094:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83274,"name":"uint8","nodeType":"ElementaryTypeName","src":"31094:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83277,"mutability":"mutable","name":"_r","nameLocation":"31120:2:164","nodeType":"VariableDeclaration","scope":83367,"src":"31112:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31112:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83279,"mutability":"mutable","name":"_s","nameLocation":"31140:2:164","nodeType":"VariableDeclaration","scope":83367,"src":"31132:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31132:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30928:220:164"},"returnParameters":{"id":83285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83367,"src":"31181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83283,"name":"address","nodeType":"ElementaryTypeName","src":"31181:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31180:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83413,"nodeType":"FunctionDefinition","src":"33078:448:164","nodes":[],"body":{"id":83412,"nodeType":"Block","src":"33281:245:164","nodes":[],"statements":[{"assignments":[83384,null],"declarations":[{"constant":false,"id":83384,"mutability":"mutable","name":"mirror","nameLocation":"33300:6:164","nodeType":"VariableDeclaration","scope":83412,"src":"33292:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83383,"name":"address","nodeType":"ElementaryTypeName","src":"33292:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":83390,"initialValue":{"arguments":[{"id":83386,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83370,"src":"33326:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83387,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83372,"src":"33335:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":83388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33342:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83385,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83789,"src":"33311:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":83389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33311:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"33291:57:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83395,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83374,"src":"33399:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33431:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33423:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83396,"name":"address","nodeType":"ElementaryTypeName","src":"33423:7:164","typeDescriptions":{}}},"id":83399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33423:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"33399:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83403,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83374,"src":"33449:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33399:70:164","trueExpression":{"expression":{"id":83401,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33436:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33440:6:164","memberName":"sender","nodeType":"MemberAccess","src":"33436:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83405,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83376,"src":"33471:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":83406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33486:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":83407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33493:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":83392,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83384,"src":"33367:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83391,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"33359:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$76363_$","typeString":"type(contract IMirror)"}},"id":83393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33359:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":83394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33388:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76353,"src":"33359:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":83408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33359:136:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83409,"nodeType":"ExpressionStatement","src":"33359:136:164"},{"expression":{"id":83410,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83384,"src":"33513:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83382,"id":83411,"nodeType":"Return","src":"33506:13:164"}]},"baseFunctions":[76920],"documentation":{"id":83368,"nodeType":"StructuredDocumentation","src":"31922:1151:164","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":83379,"kind":"modifierInvocation","modifierName":{"id":83378,"name":"whenNotPaused","nameLocations":["33249:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"33249:13:164"},"nodeType":"ModifierInvocation","src":"33249:13:164"}],"name":"createProgramWithAbiInterface","nameLocation":"33087:29:164","parameters":{"id":83377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83370,"mutability":"mutable","name":"_codeId","nameLocation":"33134:7:164","nodeType":"VariableDeclaration","scope":83413,"src":"33126:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33126:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83372,"mutability":"mutable","name":"_salt","nameLocation":"33159:5:164","nodeType":"VariableDeclaration","scope":83413,"src":"33151:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33151:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83374,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"33182:20:164","nodeType":"VariableDeclaration","scope":83413,"src":"33174:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83373,"name":"address","nodeType":"ElementaryTypeName","src":"33174:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83376,"mutability":"mutable","name":"_abiInterface","nameLocation":"33220:13:164","nodeType":"VariableDeclaration","scope":83413,"src":"33212:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83375,"name":"address","nodeType":"ElementaryTypeName","src":"33212:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33116:123:164"},"returnParameters":{"id":83382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83413,"src":"33272:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83380,"name":"address","nodeType":"ElementaryTypeName","src":"33272:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33271:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83519,"nodeType":"FunctionDefinition","src":"35082:1080:164","nodes":[],"body":{"id":83518,"nodeType":"Block","src":"35433:729:164","nodes":[],"statements":[{"assignments":[83440,83443],"declarations":[{"constant":false,"id":83440,"mutability":"mutable","name":"mirror","nameLocation":"35452:6:164","nodeType":"VariableDeclaration","scope":83518,"src":"35444:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83439,"name":"address","nodeType":"ElementaryTypeName","src":"35444:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83443,"mutability":"mutable","name":"router","nameLocation":"35476:6:164","nodeType":"VariableDeclaration","scope":83518,"src":"35460:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83442,"nodeType":"UserDefinedTypeName","pathNode":{"id":83441,"name":"Storage","nameLocations":["35460:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"35460:7:164"},"referencedDeclaration":76458,"src":"35460:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83449,"initialValue":{"arguments":[{"id":83445,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83416,"src":"35501:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83446,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83418,"src":"35510:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":83447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35517:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83444,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83789,"src":"35486:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":83448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35486:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"35443:80:164"},{"assignments":[83452],"declarations":[{"constant":false,"id":83452,"mutability":"mutable","name":"_wrappedVara","nameLocation":"35547:12:164","nodeType":"VariableDeclaration","scope":83518,"src":"35534:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"},"typeName":{"id":83451,"nodeType":"UserDefinedTypeName","pathNode":{"id":83450,"name":"IWrappedVara","nameLocations":["35534:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":76974,"src":"35534:12:164"},"referencedDeclaration":76974,"src":"35534:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":83458,"initialValue":{"arguments":[{"expression":{"expression":{"id":83454,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83443,"src":"35575:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35582:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"35575:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35596:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85625,"src":"35575:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83453,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"35562:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":83457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35562:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"35534:74:164"},{"clauses":[{"block":{"id":83473,"nodeType":"Block","src":"35720:2:164","statements":[]},"errorName":"","id":83474,"nodeType":"TryCatchClause","src":"35720:2:164"},{"block":{"id":83475,"nodeType":"Block","src":"35729:2:164","statements":[]},"errorName":"","id":83476,"nodeType":"TryCatchClause","src":"35723:8:164"}],"externalCall":{"arguments":[{"expression":{"id":83461,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35643:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35647:6:164","memberName":"sender","nodeType":"MemberAccess","src":"35643:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83465,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35663:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":83464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35655:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83463,"name":"address","nodeType":"ElementaryTypeName","src":"35655:7:164","typeDescriptions":{}}},"id":83466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35655:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83467,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83424,"src":"35670:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83468,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83426,"src":"35697:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83469,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83428,"src":"35708:2:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83470,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83430,"src":"35712:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83471,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83432,"src":"35716:2:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83459,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83452,"src":"35623:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":83460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35636:6:164","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":2719,"src":"35623:19:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":83472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35623:96:164","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83477,"nodeType":"TryStatement","src":"35619:112:164"},{"assignments":[83479],"declarations":[{"constant":false,"id":83479,"mutability":"mutable","name":"success","nameLocation":"35745:7:164","nodeType":"VariableDeclaration","scope":83518,"src":"35740:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83478,"name":"bool","nodeType":"ElementaryTypeName","src":"35740:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83490,"initialValue":{"arguments":[{"expression":{"id":83482,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35781:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35785:6:164","memberName":"sender","nodeType":"MemberAccess","src":"35781:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83486,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35801:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":83485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35793:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83484,"name":"address","nodeType":"ElementaryTypeName","src":"35793:7:164","typeDescriptions":{}}},"id":83487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35793:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83488,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83424,"src":"35808:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":83480,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83452,"src":"35755:12:164","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":83481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35768:12:164","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":2671,"src":"35755:25:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":83489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35755:79:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"35740:94:164"},{"expression":{"arguments":[{"id":83492,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83479,"src":"35852:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83493,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"35861:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35861:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"35844:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35844:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83496,"nodeType":"ExpressionStatement","src":"35844:38:164"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83501,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83420,"src":"35950:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35982:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35974:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83502,"name":"address","nodeType":"ElementaryTypeName","src":"35974:7:164","typeDescriptions":{}}},"id":83505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35974:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"35950:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83509,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83420,"src":"36000:20:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35950:70:164","trueExpression":{"expression":{"id":83507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35987:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35991:6:164","memberName":"sender","nodeType":"MemberAccess","src":"35987:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83511,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83422,"src":"36038:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":83512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36069:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":83513,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83424,"src":"36092:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":83498,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83440,"src":"35901:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83497,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"35893:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$76363_$","typeString":"type(contract IMirror)"}},"id":83499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35893:15:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":83500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35922:10:164","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76353,"src":"35893:39:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":83514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35893:238:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83515,"nodeType":"ExpressionStatement","src":"35893:238:164"},{"expression":{"id":83516,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83440,"src":"36149:6:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83438,"id":83517,"nodeType":"Return","src":"36142:13:164"}]},"baseFunctions":[76944],"documentation":{"id":83414,"nodeType":"StructuredDocumentation","src":"33532:1545:164","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"ee32004f","implemented":true,"kind":"function","modifiers":[{"id":83435,"kind":"modifierInvocation","modifierName":{"id":83434,"name":"whenNotPaused","nameLocations":["35401:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"35401:13:164"},"nodeType":"ModifierInvocation","src":"35401:13:164"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"35091:49:164","parameters":{"id":83433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83416,"mutability":"mutable","name":"_codeId","nameLocation":"35158:7:164","nodeType":"VariableDeclaration","scope":83519,"src":"35150:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35150:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83418,"mutability":"mutable","name":"_salt","nameLocation":"35183:5:164","nodeType":"VariableDeclaration","scope":83519,"src":"35175:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35175:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83420,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"35206:20:164","nodeType":"VariableDeclaration","scope":83519,"src":"35198:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83419,"name":"address","nodeType":"ElementaryTypeName","src":"35198:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83422,"mutability":"mutable","name":"_abiInterface","nameLocation":"35244:13:164","nodeType":"VariableDeclaration","scope":83519,"src":"35236:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83421,"name":"address","nodeType":"ElementaryTypeName","src":"35236:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83424,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"35275:25:164","nodeType":"VariableDeclaration","scope":83519,"src":"35267:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83423,"name":"uint128","nodeType":"ElementaryTypeName","src":"35267:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83426,"mutability":"mutable","name":"_deadline","nameLocation":"35318:9:164","nodeType":"VariableDeclaration","scope":83519,"src":"35310:17:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83425,"name":"uint256","nodeType":"ElementaryTypeName","src":"35310:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83428,"mutability":"mutable","name":"_v","nameLocation":"35343:2:164","nodeType":"VariableDeclaration","scope":83519,"src":"35337:8:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83427,"name":"uint8","nodeType":"ElementaryTypeName","src":"35337:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83430,"mutability":"mutable","name":"_r","nameLocation":"35363:2:164","nodeType":"VariableDeclaration","scope":83519,"src":"35355:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35355:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83432,"mutability":"mutable","name":"_s","nameLocation":"35383:2:164","nodeType":"VariableDeclaration","scope":83519,"src":"35375:10:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35375:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35140:251:164"},"returnParameters":{"id":83438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83519,"src":"35424:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83436,"name":"address","nodeType":"ElementaryTypeName","src":"35424:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35423:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83686,"nodeType":"FunctionDefinition","src":"36623:2151:164","nodes":[],"body":{"id":83685,"nodeType":"Block","src":"36799:1975:164","nodes":[],"statements":[{"assignments":[83536],"declarations":[{"constant":false,"id":83536,"mutability":"mutable","name":"router","nameLocation":"36825:6:164","nodeType":"VariableDeclaration","scope":83685,"src":"36809:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83535,"nodeType":"UserDefinedTypeName","pathNode":{"id":83534,"name":"Storage","nameLocations":["36809:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"36809:7:164"},"referencedDeclaration":76458,"src":"36809:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83539,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83537,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"36834:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36834:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36809:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83541,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"36862:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36869:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"36862:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36882:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85753,"src":"36862:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36898:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36890:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36890:7:164","typeDescriptions":{}}},"id":83547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36890:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"36862:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83549,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"36902:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36902:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83540,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"36854:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36854:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83552,"nodeType":"ExpressionStatement","src":"36854:82:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83553,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"37100:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37107:8:164","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":76429,"src":"37100:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37119:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37100:20:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83580,"nodeType":"IfStatement","src":"37096:295:164","trueBody":{"id":83579,"nodeType":"Block","src":"37122:269:164","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83560,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"37168:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37175:9:164","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":85668,"src":"37168:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83562,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"37186:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37193:6:164","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":85677,"src":"37186:13:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":83558,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"37144:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37149:18:164","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":86250,"src":"37144:23:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":83564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37144:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83565,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"37202:24:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37202:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37136:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37136:93:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83568,"nodeType":"ExpressionStatement","src":"37136:93:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83570,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37313:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37319:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"37313:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":83572,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"37331:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37338:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":85671,"src":"37331:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37313:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83575,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76575,"src":"37354:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37354:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37305:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37305:75:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83578,"nodeType":"ExpressionStatement","src":"37305:75:164"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83582,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"37504:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37511:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":76437,"src":"37504:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":83584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37532:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85741,"src":"37504:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83585,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"37540:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37547:26:164","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":85674,"src":"37540:33:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37504:69:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83588,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76577,"src":"37575:33:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37575:35:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37483:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37483:137:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83591,"nodeType":"ExpressionStatement","src":"37483:137:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":83598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83593,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"37639:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37646:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":76437,"src":"37639:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":83595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37667:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85743,"src":"37639:37:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83596,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"37680:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37687:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":85671,"src":"37680:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37639:62:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83599,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"37703:22:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37703:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37631:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37631:97:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83602,"nodeType":"ExpressionStatement","src":"37631:97:164"},{"assignments":[83604],"declarations":[{"constant":false,"id":83604,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"37747:20:164","nodeType":"VariableDeclaration","scope":83685,"src":"37739:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37739:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83609,"initialValue":{"arguments":[{"id":83606,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"37783:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83607,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"37791:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":83605,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83868,"src":"37770:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$76458_storage_ptr_$_t_struct$_BatchCommitment_$85698_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":83608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37770:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37739:59:164"},{"assignments":[83611],"declarations":[{"constant":false,"id":83611,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"37816:20:164","nodeType":"VariableDeclaration","scope":83685,"src":"37808:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37808:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83616,"initialValue":{"arguments":[{"id":83613,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"37852:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83614,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"37860:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":83612,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84010,"src":"37839:12:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$76458_storage_ptr_$_t_struct$_BatchCommitment_$85698_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":83615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37839:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37808:59:164"},{"assignments":[83618],"declarations":[{"constant":false,"id":83618,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"37885:22:164","nodeType":"VariableDeclaration","scope":83685,"src":"37877:30:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37877:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83623,"initialValue":{"arguments":[{"id":83620,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"37925:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83621,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"37933:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":83619,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84167,"src":"37910:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$76458_storage_ptr_$_t_struct$_BatchCommitment_$85698_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":83622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37910:30:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37877:63:164"},{"assignments":[83625],"declarations":[{"constant":false,"id":83625,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"37958:25:164","nodeType":"VariableDeclaration","scope":83685,"src":"37950:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37950:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83630,"initialValue":{"arguments":[{"id":83627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"38004:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83628,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"38012:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":83626,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84315,"src":"37986:17:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$76458_storage_ptr_$_t_struct$_BatchCommitment_$85698_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":83629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37986:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37950:69:164"},{"assignments":[83632],"declarations":[{"constant":false,"id":83632,"mutability":"mutable","name":"_batchHash","nameLocation":"38038:10:164","nodeType":"VariableDeclaration","scope":83685,"src":"38030:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38030:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83648,"initialValue":{"arguments":[{"expression":{"id":83635,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"38089:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38096:9:164","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":85668,"src":"38089:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83637,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"38119:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38126:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":85671,"src":"38119:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":83639,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"38154:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38161:26:164","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":85674,"src":"38154:33:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83641,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"38201:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38208:6:164","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":85677,"src":"38201:13:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83643,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83604,"src":"38228:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83644,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83611,"src":"38262:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83645,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83618,"src":"38296:22:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83646,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83625,"src":"38332:25:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83633,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"38051:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38056:19:164","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":86035,"src":"38051:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":83647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38051:316:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38030:337:164"},{"expression":{"id":83655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":83649,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"38378:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38385:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":76437,"src":"38378:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":83653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38406:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85741,"src":"38378:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83654,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83632,"src":"38413:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38378:45:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83656,"nodeType":"ExpressionStatement","src":"38378:45:164"},{"expression":{"id":83664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":83657,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"38433:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38440:20:164","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":76437,"src":"38433:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$85744_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":83661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38461:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85743,"src":"38433:37:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":83662,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"38473:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38480:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":85671,"src":"38473:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38433:61:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":83665,"nodeType":"ExpressionStatement","src":"38433:61:164"},{"eventCall":{"arguments":[{"id":83667,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83632,"src":"38525:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83666,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"38510:14:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38510:26:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83669,"nodeType":"EmitStatement","src":"38505:31:164"},{"expression":{"arguments":[{"arguments":[{"id":83673,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83536,"src":"38611:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83674,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81804,"src":"38619:17:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83675,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83632,"src":"38638:10:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83676,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83526,"src":"38650:14:164","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"}},{"id":83677,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83529,"src":"38666:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":83678,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83523,"src":"38679:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38686:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":85671,"src":"38679:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83671,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"38568:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38573:20:164","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":86536,"src":"38568:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$76458_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$85909_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":83680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38568:146:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83681,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76607,"src":"38728:27:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38728:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83670,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38547:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38547:220:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83684,"nodeType":"ExpressionStatement","src":"38547:220:164"}]},"baseFunctions":[76957],"documentation":{"id":83520,"nodeType":"StructuredDocumentation","src":"36168:450:164","text":" @dev Commits new batch of changes to `Router` state.\n `CodeGotValidated` event is emitted for each code in commitment.\n `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\n @param _batch The batch commitment data.\n @param _signatureType The type of signature to validate.\n @param _signatures The signatures for the batch commitment."},"functionSelector":"a90fbdd7","implemented":true,"kind":"function","modifiers":[{"id":83532,"kind":"modifierInvocation","modifierName":{"id":83531,"name":"nonReentrant","nameLocations":["36786:12:164"],"nodeType":"IdentifierPath","referencedDeclaration":6525,"src":"36786:12:164"},"nodeType":"ModifierInvocation","src":"36786:12:164"}],"name":"commitBatch","nameLocation":"36632:11:164","parameters":{"id":83530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83523,"mutability":"mutable","name":"_batch","nameLocation":"36683:6:164","nodeType":"VariableDeclaration","scope":83686,"src":"36653:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":83522,"nodeType":"UserDefinedTypeName","pathNode":{"id":83521,"name":"Gear.BatchCommitment","nameLocations":["36653:4:164","36658:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85698,"src":"36653:20:164"},"referencedDeclaration":85698,"src":"36653:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":83526,"mutability":"mutable","name":"_signatureType","nameLocation":"36718:14:164","nodeType":"VariableDeclaration","scope":83686,"src":"36699:33:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"},"typeName":{"id":83525,"nodeType":"UserDefinedTypeName","pathNode":{"id":83524,"name":"Gear.SignatureType","nameLocations":["36699:4:164","36704:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":85909,"src":"36699:18:164"},"referencedDeclaration":85909,"src":"36699:18:164","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85909","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83529,"mutability":"mutable","name":"_signatures","nameLocation":"36759:11:164","nodeType":"VariableDeclaration","scope":83686,"src":"36742:28:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83527,"name":"bytes","nodeType":"ElementaryTypeName","src":"36742:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83528,"nodeType":"ArrayTypeName","src":"36742:7:164","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"36643:133:164"},"returnParameters":{"id":83533,"nodeType":"ParameterList","parameters":[],"src":"36799:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83789,"nodeType":"FunctionDefinition","src":"38818:934:164","nodes":[],"body":{"id":83788,"nodeType":"Block","src":"38932:820:164","nodes":[],"statements":[{"assignments":[83702],"declarations":[{"constant":false,"id":83702,"mutability":"mutable","name":"router","nameLocation":"38958:6:164","nodeType":"VariableDeclaration","scope":83788,"src":"38942:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83701,"nodeType":"UserDefinedTypeName","pathNode":{"id":83700,"name":"Storage","nameLocations":["38942:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"38942:7:164"},"referencedDeclaration":76458,"src":"38942:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83705,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83703,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"38967:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38967:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"38942:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83707,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83702,"src":"38994:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39001:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"38994:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39014:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85753,"src":"38994:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39030:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39022:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39022:7:164","typeDescriptions":{}}},"id":83713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39022:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38994:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83715,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"39034:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39034:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83706,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38986:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38986:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83718,"nodeType":"ExpressionStatement","src":"38986:82:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"},"id":83728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83720,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83702,"src":"39087:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39094:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"39087:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39107:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"39087:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83724,"indexExpression":{"id":83723,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"39113:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39087:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83725,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"39125:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39130:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":85738,"src":"39125:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$85738_$","typeString":"type(enum Gear.CodeState)"}},"id":83727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39140:9:164","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":85737,"src":"39125:24:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"src":"39087:62:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83729,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76569,"src":"39151:16:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39151:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83719,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39079:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39079:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83732,"nodeType":"ExpressionStatement","src":"39079:91:164"},{"assignments":[83734],"declarations":[{"constant":false,"id":83734,"mutability":"mutable","name":"salt","nameLocation":"39339:4:164","nodeType":"VariableDeclaration","scope":83788,"src":"39331:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39331:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83740,"initialValue":{"arguments":[{"id":83737,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"39381:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83738,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83690,"src":"39390:5:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83735,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62498,"src":"39346:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62498_$","typeString":"type(library Hashes)"}},"id":83736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39353:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62497,"src":"39346:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":83739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39346:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39331:65:164"},{"assignments":[83742],"declarations":[{"constant":false,"id":83742,"mutability":"mutable","name":"actorId","nameLocation":"39414:7:164","nodeType":"VariableDeclaration","scope":83788,"src":"39406:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83741,"name":"address","nodeType":"ElementaryTypeName","src":"39406:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83761,"initialValue":{"condition":{"id":83743,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83692,"src":"39424:8:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":83756,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39547:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":83755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39539:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83754,"name":"address","nodeType":"ElementaryTypeName","src":"39539:7:164","typeDescriptions":{}}},"id":83757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39539:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83758,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83734,"src":"39554:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83752,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85415,"src":"39513:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$85415_$","typeString":"type(library Clones)"}},"id":83753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39520:18:164","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":85120,"src":"39513:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":83759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39513:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39424:135:164","trueExpression":{"arguments":[{"arguments":[{"id":83748,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39486:4:164","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$84665","typeString":"contract Router"}],"id":83747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39478:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83746,"name":"address","nodeType":"ElementaryTypeName","src":"39478:7:164","typeDescriptions":{}}},"id":83749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39478:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83750,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83734,"src":"39493:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83744,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85499,"src":"39447:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$85499_$","typeString":"type(library ClonesSmall)"}},"id":83745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39459:18:164","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":85437,"src":"39447:30:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":83751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39447:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"39406:153:164"},{"expression":{"id":83770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83762,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83702,"src":"39570:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39577:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"39570:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39590:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85791,"src":"39570:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":83768,"indexExpression":{"id":83765,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83742,"src":"39599:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"39570:37:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83769,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"39610:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39570:47:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83771,"nodeType":"ExpressionStatement","src":"39570:47:164"},{"expression":{"id":83777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39627:35:164","subExpression":{"expression":{"expression":{"id":83772,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83702,"src":"39627:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39634:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"39627:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39647:13:164","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85794,"src":"39627:33:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83778,"nodeType":"ExpressionStatement","src":"39627:35:164"},{"eventCall":{"arguments":[{"id":83780,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83742,"src":"39693:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83781,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"39702:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83779,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76504,"src":"39678:14:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":83782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39678:32:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83783,"nodeType":"EmitStatement","src":"39673:37:164"},{"expression":{"components":[{"id":83784,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83742,"src":"39729:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83785,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83702,"src":"39738:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":83786,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39728:17:164","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":83699,"id":83787,"nodeType":"Return","src":"39721:24:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"38827:14:164","parameters":{"id":83693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83688,"mutability":"mutable","name":"_codeId","nameLocation":"38850:7:164","nodeType":"VariableDeclaration","scope":83789,"src":"38842:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38842:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83690,"mutability":"mutable","name":"_salt","nameLocation":"38867:5:164","nodeType":"VariableDeclaration","scope":83789,"src":"38859:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38859:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83692,"mutability":"mutable","name":"_isSmall","nameLocation":"38879:8:164","nodeType":"VariableDeclaration","scope":83789,"src":"38874:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83691,"name":"bool","nodeType":"ElementaryTypeName","src":"38874:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38841:47:164"},"returnParameters":{"id":83699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83789,"src":"38906:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83694,"name":"address","nodeType":"ElementaryTypeName","src":"38906:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83789,"src":"38915:15:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83697,"nodeType":"UserDefinedTypeName","pathNode":{"id":83696,"name":"Storage","nameLocations":["38915:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"38915:7:164"},"referencedDeclaration":76458,"src":"38915:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"38905:26:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":83868,"nodeType":"FunctionDefinition","src":"39758:846:164","nodes":[],"body":{"id":83867,"nodeType":"Block","src":"39868:736:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83801,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83795,"src":"39886:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39893:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":85682,"src":"39886:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85650_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":83803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39909:6:164","memberName":"length","nodeType":"MemberAccess","src":"39886:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":83804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39919:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"39886:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83806,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76581,"src":"39922:23:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39922:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83800,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39878:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39878:70:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83809,"nodeType":"ExpressionStatement","src":"39878:70:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83810,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83795,"src":"39963:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39970:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":85682,"src":"39963:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85650_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":83812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39986:6:164","memberName":"length","nodeType":"MemberAccess","src":"39963:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39996:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"39963:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83820,"nodeType":"IfStatement","src":"39959:177:164","trueBody":{"id":83819,"nodeType":"Block","src":"39999:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":83816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40122:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":83815,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"40112:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40112:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83799,"id":83818,"nodeType":"Return","src":"40105:20:164"}]}},{"assignments":[83825],"declarations":[{"constant":false,"id":83825,"mutability":"mutable","name":"_commitment","nameLocation":"40176:11:164","nodeType":"VariableDeclaration","scope":83867,"src":"40146:41:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":83824,"nodeType":"UserDefinedTypeName","pathNode":{"id":83823,"name":"Gear.ChainCommitment","nameLocations":["40146:4:164","40151:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85650,"src":"40146:20:164"},"referencedDeclaration":85650,"src":"40146:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":83830,"initialValue":{"baseExpression":{"expression":{"id":83826,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83795,"src":"40190:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40197:15:164","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":85682,"src":"40190:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$85650_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":83829,"indexExpression":{"hexValue":"30","id":83828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40213:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40190:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40146:69:164"},{"assignments":[83832],"declarations":[{"constant":false,"id":83832,"mutability":"mutable","name":"_transitionsHash","nameLocation":"40234:16:164","nodeType":"VariableDeclaration","scope":83867,"src":"40226:24:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40226:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83838,"initialValue":{"arguments":[{"id":83834,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83792,"src":"40272:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83835,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83825,"src":"40280:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40292:11:164","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":85643,"src":"40280:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85843_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85843_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":83833,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84435,"src":"40253:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$76458_storage_ptr_$_t_array$_t_struct$_StateTransition_$85843_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":83837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40253:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"40226:78:164"},{"eventCall":{"arguments":[{"expression":{"id":83840,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83825,"src":"40332:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40344:4:164","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":85646,"src":"40332:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83839,"name":"MBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76468,"src":"40320:11:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40320:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83843,"nodeType":"EmitStatement","src":"40315:34:164"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83844,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83825,"src":"40363:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40375:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":85649,"src":"40363:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40407:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40399:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40399:7:164","typeDescriptions":{}}},"id":83849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40399:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40363:46:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83857,"nodeType":"IfStatement","src":"40359:127:164","trueBody":{"id":83856,"nodeType":"Block","src":"40411:75:164","statements":[{"eventCall":{"arguments":[{"expression":{"id":83852,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83825,"src":"40442:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40454:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":85649,"src":"40442:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83851,"name":"EBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"40430:11:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40430:45:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83855,"nodeType":"EmitStatement","src":"40425:50:164"}]}},{"expression":{"arguments":[{"id":83860,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83832,"src":"40528:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83861,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83825,"src":"40546:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40558:4:164","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":85646,"src":"40546:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83863,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83825,"src":"40564:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$85650_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40576:20:164","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":85649,"src":"40564:32:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83858,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"40503:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40508:19:164","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85931,"src":"40503:24:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":83865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40503:94:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83799,"id":83866,"nodeType":"Return","src":"40496:101:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"39767:12:164","parameters":{"id":83796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83792,"mutability":"mutable","name":"router","nameLocation":"39796:6:164","nodeType":"VariableDeclaration","scope":83868,"src":"39780:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83791,"nodeType":"UserDefinedTypeName","pathNode":{"id":83790,"name":"Storage","nameLocations":["39780:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"39780:7:164"},"referencedDeclaration":76458,"src":"39780:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83795,"mutability":"mutable","name":"_batch","nameLocation":"39834:6:164","nodeType":"VariableDeclaration","scope":83868,"src":"39804:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":83794,"nodeType":"UserDefinedTypeName","pathNode":{"id":83793,"name":"Gear.BatchCommitment","nameLocations":["39804:4:164","39809:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85698,"src":"39804:20:164"},"referencedDeclaration":85698,"src":"39804:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"39779:62:164"},"returnParameters":{"id":83799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83868,"src":"39859:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39859:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39858:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84010,"nodeType":"FunctionDefinition","src":"40610:1402:164","nodes":[],"body":{"id":84009,"nodeType":"Block","src":"40720:1292:164","nodes":[],"statements":[{"assignments":[83880],"declarations":[{"constant":false,"id":83880,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"40738:18:164","nodeType":"VariableDeclaration","scope":84009,"src":"40730:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83879,"name":"uint256","nodeType":"ElementaryTypeName","src":"40730:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83884,"initialValue":{"expression":{"expression":{"id":83881,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83874,"src":"40759:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40766:15:164","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":85687,"src":"40759:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$85637_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":83883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40782:6:164","memberName":"length","nodeType":"MemberAccess","src":"40759:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40730:58:164"},{"assignments":[83886],"declarations":[{"constant":false,"id":83886,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"40806:23:164","nodeType":"VariableDeclaration","scope":84009,"src":"40798:31:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83885,"name":"uint256","nodeType":"ElementaryTypeName","src":"40798:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83890,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83887,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83880,"src":"40832:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":83888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40853:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"40832:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40798:57:164"},{"assignments":[83892],"declarations":[{"constant":false,"id":83892,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"40873:18:164","nodeType":"VariableDeclaration","scope":84009,"src":"40865:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83891,"name":"uint256","nodeType":"ElementaryTypeName","src":"40865:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83897,"initialValue":{"arguments":[{"id":83895,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83886,"src":"40910:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83893,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"40894:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62272_$","typeString":"type(library Memory)"}},"id":83894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40901:8:164","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62177,"src":"40894:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":83896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40894:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40865:69:164"},{"assignments":[83899],"declarations":[{"constant":false,"id":83899,"mutability":"mutable","name":"offset","nameLocation":"40952:6:164","nodeType":"VariableDeclaration","scope":84009,"src":"40944:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83898,"name":"uint256","nodeType":"ElementaryTypeName","src":"40944:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83901,"initialValue":{"hexValue":"30","id":83900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40961:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40944:18:164"},{"body":{"id":84000,"nodeType":"Block","src":"41022:884:164","statements":[{"assignments":[83916],"declarations":[{"constant":false,"id":83916,"mutability":"mutable","name":"_commitment","nameLocation":"41065:11:164","nodeType":"VariableDeclaration","scope":84000,"src":"41036:40:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":83915,"nodeType":"UserDefinedTypeName","pathNode":{"id":83914,"name":"Gear.CodeCommitment","nameLocations":["41036:4:164","41041:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":85637,"src":"41036:19:164"},"referencedDeclaration":85637,"src":"41036:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":83921,"initialValue":{"baseExpression":{"expression":{"id":83917,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83874,"src":"41079:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41086:15:164","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":85687,"src":"41079:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$85637_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":83920,"indexExpression":{"id":83919,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"41102:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41079:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"41036:68:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"},"id":83932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83923,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83871,"src":"41144:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41151:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"41144:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41164:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"41144:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83928,"indexExpression":{"expression":{"id":83926,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83916,"src":"41170:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41182:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85633,"src":"41170:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41144:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83929,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"41189:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41194:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":85738,"src":"41189:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$85738_$","typeString":"type(enum Gear.CodeState)"}},"id":83931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41204:19:164","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":85735,"src":"41189:34:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"src":"41144:79:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83933,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76585,"src":"41241:26:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41241:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"41119:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41119:164:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83936,"nodeType":"ExpressionStatement","src":"41119:164:164"},{"condition":{"expression":{"id":83937,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83916,"src":"41302:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41314:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":85636,"src":"41302:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83968,"nodeType":"Block","src":"41487:81:164","statements":[{"expression":{"id":83966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"41505:48:164","subExpression":{"baseExpression":{"expression":{"expression":{"id":83960,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83871,"src":"41512:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41519:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"41512:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41532:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"41512:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83965,"indexExpression":{"expression":{"id":83963,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83916,"src":"41538:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41550:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85633,"src":"41538:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41512:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83967,"nodeType":"ExpressionStatement","src":"41505:48:164"}]},"id":83969,"nodeType":"IfStatement","src":"41298:270:164","trueBody":{"id":83959,"nodeType":"Block","src":"41321:160:164","statements":[{"expression":{"id":83950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83939,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83871,"src":"41339:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41346:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"41339:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41359:5:164","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85786,"src":"41339:25:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$85738_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83946,"indexExpression":{"expression":{"id":83942,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83916,"src":"41365:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41377:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85633,"src":"41365:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41339:41:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":83947,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"41383:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41388:9:164","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":85738,"src":"41383:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$85738_$","typeString":"type(enum Gear.CodeState)"}},"id":83949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41398:9:164","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":85737,"src":"41383:24:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"src":"41339:68:164","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$85738","typeString":"enum Gear.CodeState"}},"id":83951,"nodeType":"ExpressionStatement","src":"41339:68:164"},{"expression":{"id":83957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41425:41:164","subExpression":{"expression":{"expression":{"id":83952,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83871,"src":"41425:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41432:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"41425:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41445:19:164","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85797,"src":"41425:39:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83958,"nodeType":"ExpressionStatement","src":"41425:41:164"}]}},{"eventCall":{"arguments":[{"expression":{"id":83971,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83916,"src":"41604:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41616:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85633,"src":"41604:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83973,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83916,"src":"41620:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41632:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":85636,"src":"41620:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83970,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"41587:16:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":83975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41587:51:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83976,"nodeType":"EmitStatement","src":"41582:56:164"},{"assignments":[83978],"declarations":[{"constant":false,"id":83978,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"41661:18:164","nodeType":"VariableDeclaration","scope":84000,"src":"41653:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41653:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83986,"initialValue":{"arguments":[{"expression":{"id":83981,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83916,"src":"41706:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41718:2:164","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":85633,"src":"41706:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83983,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83916,"src":"41722:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$85637_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41734:5:164","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":85636,"src":"41722:17:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":83979,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"41682:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":83980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41687:18:164","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85948,"src":"41682:23:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":83985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41682:58:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41653:87:164"},{"expression":{"arguments":[{"id":83990,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"41780:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83991,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83899,"src":"41800:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83992,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83978,"src":"41808:18:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83987,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"41754:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62272_$","typeString":"type(library Memory)"}},"id":83989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41761:18:164","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62247,"src":"41754:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":83993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41754:73:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83994,"nodeType":"ExpressionStatement","src":"41754:73:164"},{"id":83999,"nodeType":"UncheckedBlock","src":"41841:55:164","statements":[{"expression":{"id":83997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83995,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83899,"src":"41869:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":83996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41879:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"41869:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83998,"nodeType":"ExpressionStatement","src":"41869:12:164"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83906,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"40993:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83907,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83880,"src":"40997:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40993:22:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84001,"initializationExpression":{"assignments":[83903],"declarations":[{"constant":false,"id":83903,"mutability":"mutable","name":"i","nameLocation":"40986:1:164","nodeType":"VariableDeclaration","scope":84001,"src":"40978:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83902,"name":"uint256","nodeType":"ElementaryTypeName","src":"40978:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83905,"initialValue":{"hexValue":"30","id":83904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40990:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40978:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41017:3:164","subExpression":{"id":83909,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83903,"src":"41017:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83911,"nodeType":"ExpressionStatement","src":"41017:3:164"},"nodeType":"ForStatement","src":"40973:933:164"},{"expression":{"arguments":[{"id":84004,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"41958:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":84005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41978:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":84006,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83886,"src":"41981:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84002,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62498,"src":"41923:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62498_$","typeString":"type(library Hashes)"}},"id":84003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41930:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62453,"src":"41923:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":84007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41923:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83878,"id":84008,"nodeType":"Return","src":"41916:89:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"40619:12:164","parameters":{"id":83875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83871,"mutability":"mutable","name":"router","nameLocation":"40648:6:164","nodeType":"VariableDeclaration","scope":84010,"src":"40632:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83870,"nodeType":"UserDefinedTypeName","pathNode":{"id":83869,"name":"Storage","nameLocations":["40632:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"40632:7:164"},"referencedDeclaration":76458,"src":"40632:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83874,"mutability":"mutable","name":"_batch","nameLocation":"40686:6:164","nodeType":"VariableDeclaration","scope":84010,"src":"40656:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":83873,"nodeType":"UserDefinedTypeName","pathNode":{"id":83872,"name":"Gear.BatchCommitment","nameLocations":["40656:4:164","40661:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85698,"src":"40656:20:164"},"referencedDeclaration":85698,"src":"40656:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"40631:62:164"},"returnParameters":{"id":83878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84010,"src":"40711:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40711:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40710:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84167,"nodeType":"FunctionDefinition","src":"42054:1705:164","nodes":[],"body":{"id":84166,"nodeType":"Block","src":"42166:1593:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84022,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84016,"src":"42184:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42191:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":85692,"src":"42184:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$85708_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42209:6:164","memberName":"length","nodeType":"MemberAccess","src":"42184:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":84025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42219:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"42184:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84027,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76587,"src":"42222:25:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42222:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84021,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42176:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42176:74:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84030,"nodeType":"ExpressionStatement","src":"42176:74:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84031,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84016,"src":"42265:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42272:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":85692,"src":"42265:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$85708_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42290:6:164","memberName":"length","nodeType":"MemberAccess","src":"42265:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42300:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42265:36:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84041,"nodeType":"IfStatement","src":"42261:179:164","trueBody":{"id":84040,"nodeType":"Block","src":"42303:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":84037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42426:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":84036,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42416:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":84038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42416:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84020,"id":84039,"nodeType":"Return","src":"42409:20:164"}]}},{"assignments":[84046],"declarations":[{"constant":false,"id":84046,"mutability":"mutable","name":"_commitment","nameLocation":"42482:11:164","nodeType":"VariableDeclaration","scope":84166,"src":"42450:43:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":84045,"nodeType":"UserDefinedTypeName","pathNode":{"id":84044,"name":"Gear.RewardsCommitment","nameLocations":["42450:4:164","42455:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":85708,"src":"42450:22:164"},"referencedDeclaration":85708,"src":"42450:22:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":84051,"initialValue":{"baseExpression":{"expression":{"id":84047,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84016,"src":"42496:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42503:17:164","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":85692,"src":"42496:24:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$85708_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":84050,"indexExpression":{"hexValue":"30","id":84049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42521:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42496:27:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"42450:73:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":84057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84053,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"42542:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42554:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85707,"src":"42542:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84055,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84016,"src":"42566:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42573:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":85671,"src":"42566:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42542:45:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84058,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"42589:35:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42589:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84052,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42534:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42534:93:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84061,"nodeType":"ExpressionStatement","src":"42534:93:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":84068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84063,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"42645:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42657:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85707,"src":"42645:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":84065,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"42670:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42677:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"42670:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42690:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85757,"src":"42670:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42645:54:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84069,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76591,"src":"42701:32:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42701:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84062,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42637:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42637:99:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84072,"nodeType":"ExpressionStatement","src":"42637:99:164"},{"assignments":[84074],"declarations":[{"constant":false,"id":84074,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"42755:18:164","nodeType":"VariableDeclaration","scope":84166,"src":"42747:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84073,"name":"uint256","nodeType":"ElementaryTypeName","src":"42747:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84081,"initialValue":{"arguments":[{"id":84077,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"42792:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84078,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"42800:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42812:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85707,"src":"42800:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":84075,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"42776:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":84076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42781:10:164","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":86744,"src":"42776:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42776:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42747:75:164"},{"assignments":[84083],"declarations":[{"constant":false,"id":84083,"mutability":"mutable","name":"batchEraIndex","nameLocation":"42840:13:164","nodeType":"VariableDeclaration","scope":84166,"src":"42832:21:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84082,"name":"uint256","nodeType":"ElementaryTypeName","src":"42832:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84090,"initialValue":{"arguments":[{"id":84086,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"42872:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":84087,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84016,"src":"42880:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42887:14:164","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":85671,"src":"42880:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":84084,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"42856:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":84085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42861:10:164","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":86744,"src":"42856:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42856:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42832:70:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84092,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84074,"src":"42921:18:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84093,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84083,"src":"42942:13:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42921:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84095,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76593,"src":"42957:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42957:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84091,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42913:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42913:78:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84098,"nodeType":"ExpressionStatement","src":"42913:78:164"},{"assignments":[84100],"declarations":[{"constant":false,"id":84100,"mutability":"mutable","name":"_middleware","nameLocation":"43010:11:164","nodeType":"VariableDeclaration","scope":84166,"src":"43002:19:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84099,"name":"address","nodeType":"ElementaryTypeName","src":"43002:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84104,"initialValue":{"expression":{"expression":{"id":84101,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"43024:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43031:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"43024:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43045:10:164","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":85628,"src":"43024:31:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43002:53:164"},{"assignments":[84106],"declarations":[{"constant":false,"id":84106,"mutability":"mutable","name":"success","nameLocation":"43070:7:164","nodeType":"VariableDeclaration","scope":84166,"src":"43065:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84105,"name":"bool","nodeType":"ElementaryTypeName","src":"43065:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84122,"initialValue":{"arguments":[{"id":84113,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84100,"src":"43148:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84114,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"43161:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43173:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":85702,"src":"43161:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$85714_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":84116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43183:6:164","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":85711,"src":"43161:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":84117,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"43192:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43204:7:164","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":85705,"src":"43192:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":84119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43212:11:164","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":85721,"src":"43192:31:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43161:62:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":84108,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"43093:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43100:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"43093:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43114:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85625,"src":"43093:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84107,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76974,"src":"43080:12:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$76974_$","typeString":"type(contract IWrappedVara)"}},"id":84111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43080:46:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$76974","typeString":"contract IWrappedVara"}},"id":84112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43140:7:164","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":2659,"src":"43080:67:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":84121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43080:144:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"43065:159:164"},{"expression":{"arguments":[{"id":84124,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84106,"src":"43242:7:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84125,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76595,"src":"43251:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43251:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84123,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43234:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43234:38:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84128,"nodeType":"ExpressionStatement","src":"43234:38:164"},{"assignments":[84130],"declarations":[{"constant":false,"id":84130,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"43291:20:164","nodeType":"VariableDeclaration","scope":84166,"src":"43283:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43283:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84145,"initialValue":{"arguments":[{"expression":{"expression":{"id":84135,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"43395:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43402:13:164","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":76441,"src":"43395:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$85629_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":84137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43416:11:164","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":85625,"src":"43395:32:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":84138,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"43429:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43441:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":85702,"src":"43429:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$85714_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":84140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43451:6:164","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":85711,"src":"43429:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":84141,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"43459:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43471:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":85702,"src":"43459:21:164","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$85714_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":84143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43481:4:164","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":85713,"src":"43459:26:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":84132,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84100,"src":"43326:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84131,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"43314:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$76054_$","typeString":"type(contract IMiddleware)"}},"id":84133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43314:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$76054","typeString":"contract IMiddleware"}},"id":84134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43352:25:164","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":76042,"src":"43314:63:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":84144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43314:185:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43283:216:164"},{"assignments":[84147],"declarations":[{"constant":false,"id":84147,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"43518:18:164","nodeType":"VariableDeclaration","scope":84166,"src":"43510:26:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43510:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84157,"initialValue":{"arguments":[{"expression":{"id":84152,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"43600:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43612:7:164","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":85705,"src":"43600:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":84154,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"43621:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43633:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85707,"src":"43621:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$85724_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":84149,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84100,"src":"43563:11:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84148,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"43551:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$76054_$","typeString":"type(contract IMiddleware)"}},"id":84150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43551:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$76054","typeString":"contract IMiddleware"}},"id":84151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43576:23:164","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":76053,"src":"43551:48:164","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$85724_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":84156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43551:92:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43510:133:164"},{"expression":{"arguments":[{"id":84160,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84130,"src":"43688:20:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":84161,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84147,"src":"43710:18:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":84162,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84046,"src":"43730:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$85708_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":84163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43742:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85707,"src":"43730:21:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":84158,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"43661:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":84159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43666:21:164","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85970,"src":"43661:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":84164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43661:91:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84020,"id":84165,"nodeType":"Return","src":"43654:98:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"42063:14:164","parameters":{"id":84017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84013,"mutability":"mutable","name":"router","nameLocation":"42094:6:164","nodeType":"VariableDeclaration","scope":84167,"src":"42078:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84012,"nodeType":"UserDefinedTypeName","pathNode":{"id":84011,"name":"Storage","nameLocations":["42078:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"42078:7:164"},"referencedDeclaration":76458,"src":"42078:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84016,"mutability":"mutable","name":"_batch","nameLocation":"42132:6:164","nodeType":"VariableDeclaration","scope":84167,"src":"42102:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84015,"nodeType":"UserDefinedTypeName","pathNode":{"id":84014,"name":"Gear.BatchCommitment","nameLocations":["42102:4:164","42107:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85698,"src":"42102:20:164"},"referencedDeclaration":85698,"src":"42102:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"42077:62:164"},"returnParameters":{"id":84020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84167,"src":"42157:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42157:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"42156:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84315,"nodeType":"FunctionDefinition","src":"43826:1705:164","nodes":[],"body":{"id":84314,"nodeType":"Block","src":"43941:1590:164","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84180,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84174,"src":"43959:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43966:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"43959:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$85664_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":84182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43987:6:164","memberName":"length","nodeType":"MemberAccess","src":"43959:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":84183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43997:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43959:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84185,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76597,"src":"44000:28:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44000:30:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84179,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43951:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43951:80:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84188,"nodeType":"ExpressionStatement","src":"43951:80:164"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84189,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84174,"src":"44046:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44053:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"44046:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$85664_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":84191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44074:6:164","memberName":"length","nodeType":"MemberAccess","src":"44046:34:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":84192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44084:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44046:39:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84199,"nodeType":"IfStatement","src":"44042:182:164","trueBody":{"id":84198,"nodeType":"Block","src":"44087:137:164","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":84195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44210:2:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":84194,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44200:9:164","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":84196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44200:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84178,"id":84197,"nodeType":"Return","src":"44193:20:164"}]}},{"assignments":[84204],"declarations":[{"constant":false,"id":84204,"mutability":"mutable","name":"_commitment","nameLocation":"44269:11:164","nodeType":"VariableDeclaration","scope":84314,"src":"44234:46:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":84203,"nodeType":"UserDefinedTypeName","pathNode":{"id":84202,"name":"Gear.ValidatorsCommitment","nameLocations":["44234:4:164","44239:20:164"],"nodeType":"IdentifierPath","referencedDeclaration":85664,"src":"44234:25:164"},"referencedDeclaration":85664,"src":"44234:25:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":84209,"initialValue":{"baseExpression":{"expression":{"id":84205,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84174,"src":"44283:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44290:20:164","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"44283:27:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$85664_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":84208,"indexExpression":{"hexValue":"30","id":84207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44311:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44283:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44234:79:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84211,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"44332:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44344:10:164","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":85661,"src":"44332:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":84213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44355:6:164","memberName":"length","nodeType":"MemberAccess","src":"44332:29:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":84214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44364:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44332:33:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84216,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76599,"src":"44367:19:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44367:21:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84210,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44324:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44324:65:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84219,"nodeType":"ExpressionStatement","src":"44324:65:164"},{"assignments":[84221],"declarations":[{"constant":false,"id":84221,"mutability":"mutable","name":"currentEraIndex","nameLocation":"44462:15:164","nodeType":"VariableDeclaration","scope":84314,"src":"44454:23:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84220,"name":"uint256","nodeType":"ElementaryTypeName","src":"44454:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84233,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84222,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44481:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44487:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"44481:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84224,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84171,"src":"44499:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44506:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"44499:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44519:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85757,"src":"44499:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"44481:47:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84228,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44480:49:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84229,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84171,"src":"44532:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44539:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"44532:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44549:3:164","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85846,"src":"44532:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44480:72:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44454:98:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84235,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"44571:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44583:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":85663,"src":"44571:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84237,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84221,"src":"44595:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":84238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44613:1:164","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44595:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44571:43:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84241,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76601,"src":"44616:20:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44616:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84234,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44563:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44563:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84244,"nodeType":"ExpressionStatement","src":"44563:76:164"},{"assignments":[84246],"declarations":[{"constant":false,"id":84246,"mutability":"mutable","name":"nextEraStart","nameLocation":"44658:12:164","nodeType":"VariableDeclaration","scope":84314,"src":"44650:20:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84245,"name":"uint256","nodeType":"ElementaryTypeName","src":"44650:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84257,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84247,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84171,"src":"44673:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44680:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"44673:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44693:9:164","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":85757,"src":"44673:29:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84250,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84171,"src":"44705:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44712:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"44705:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44722:3:164","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85846,"src":"44705:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":84253,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"44728:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44740:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":85663,"src":"44728:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44705:43:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44673:75:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44650:98:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84259,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44766:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44772:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"44766:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84261,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84246,"src":"44785:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84262,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84171,"src":"44800:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44807:9:164","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":76453,"src":"44800:16:164","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85851_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44817:8:164","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":85848,"src":"44800:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44785:40:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44766:59:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84267,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76603,"src":"44827:18:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44827:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84258,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44758:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44758:90:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84270,"nodeType":"ExpressionStatement","src":"44758:90:164"},{"assignments":[84275],"declarations":[{"constant":false,"id":84275,"mutability":"mutable","name":"_validators","nameLocation":"44930:11:164","nodeType":"VariableDeclaration","scope":84314,"src":"44906:35:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84274,"nodeType":"UserDefinedTypeName","pathNode":{"id":84273,"name":"Gear.Validators","nameLocations":["44906:4:164","44911:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"44906:15:164"},"referencedDeclaration":85606,"src":"44906:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":84280,"initialValue":{"arguments":[{"id":84278,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84171,"src":"44971:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":84276,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"44944:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":84277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44949:21:164","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":86580,"src":"44944:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$76458_storage_ptr_$returns$_t_struct$_Validators_$85606_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":84279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44944:34:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"44906:72:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84282,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84275,"src":"44996:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45008:16:164","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85605,"src":"44996:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84284,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45027:5:164","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45033:9:164","memberName":"timestamp","nodeType":"MemberAccess","src":"45027:15:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44996:46:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84287,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76605,"src":"45044:26:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45044:28:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84281,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44988:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44988:85:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84290,"nodeType":"ExpressionStatement","src":"44988:85:164"},{"expression":{"arguments":[{"id":84292,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84275,"src":"45166:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":84293,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"45191:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45203:22:164","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85653,"src":"45191:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":84295,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"45239:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45251:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85656,"src":"45239:31:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":84297,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"45284:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45296:33:164","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":85658,"src":"45284:45:164","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":84299,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"45343:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45355:10:164","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":85661,"src":"45343:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":84301,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84246,"src":"45379:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84291,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84552,"src":"45136:16:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$85606_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$85585_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":84302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45136:265:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84303,"nodeType":"ExpressionStatement","src":"45136:265:164"},{"eventCall":{"arguments":[{"expression":{"id":84305,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"45443:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45455:8:164","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":85663,"src":"45443:20:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84304,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76490,"src":"45417:25:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":84307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45417:47:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84308,"nodeType":"EmitStatement","src":"45412:52:164"},{"expression":{"arguments":[{"id":84311,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84204,"src":"45512:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$85664_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":84309,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86834,"src":"45482:4:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$86834_$","typeString":"type(library Gear)"}},"id":84310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45487:24:164","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85998,"src":"45482:29:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$85664_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":84312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45482:42:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84178,"id":84313,"nodeType":"Return","src":"45475:49:164"}]},"documentation":{"id":84168,"nodeType":"StructuredDocumentation","src":"43765:56:164","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"43835:17:164","parameters":{"id":84175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84171,"mutability":"mutable","name":"router","nameLocation":"43869:6:164","nodeType":"VariableDeclaration","scope":84315,"src":"43853:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84170,"nodeType":"UserDefinedTypeName","pathNode":{"id":84169,"name":"Storage","nameLocations":["43853:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"43853:7:164"},"referencedDeclaration":76458,"src":"43853:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84174,"mutability":"mutable","name":"_batch","nameLocation":"43907:6:164","nodeType":"VariableDeclaration","scope":84315,"src":"43877:36:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":84173,"nodeType":"UserDefinedTypeName","pathNode":{"id":84172,"name":"Gear.BatchCommitment","nameLocations":["43877:4:164","43882:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85698,"src":"43877:20:164"},"referencedDeclaration":85698,"src":"43877:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$85698_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43852:62:164"},"returnParameters":{"id":84178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84315,"src":"43932:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43932:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43931:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84435,"nodeType":"FunctionDefinition","src":"45537:1168:164","nodes":[],"body":{"id":84434,"nodeType":"Block","src":"45681:1024:164","nodes":[],"statements":[{"assignments":[84328],"declarations":[{"constant":false,"id":84328,"mutability":"mutable","name":"transitionsLen","nameLocation":"45699:14:164","nodeType":"VariableDeclaration","scope":84434,"src":"45691:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84327,"name":"uint256","nodeType":"ElementaryTypeName","src":"45691:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84331,"initialValue":{"expression":{"id":84329,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84322,"src":"45716:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85843_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":84330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45729:6:164","memberName":"length","nodeType":"MemberAccess","src":"45716:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45691:44:164"},{"assignments":[84333],"declarations":[{"constant":false,"id":84333,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"45753:19:164","nodeType":"VariableDeclaration","scope":84434,"src":"45745:27:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84332,"name":"uint256","nodeType":"ElementaryTypeName","src":"45745:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84337,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84334,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84328,"src":"45775:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":84335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45792:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45775:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45745:49:164"},{"assignments":[84339],"declarations":[{"constant":false,"id":84339,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"45812:23:164","nodeType":"VariableDeclaration","scope":84434,"src":"45804:31:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84338,"name":"uint256","nodeType":"ElementaryTypeName","src":"45804:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84344,"initialValue":{"arguments":[{"id":84342,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84333,"src":"45854:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84340,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"45838:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62272_$","typeString":"type(library Memory)"}},"id":84341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45845:8:164","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":62177,"src":"45838:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":84343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45838:36:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45804:70:164"},{"assignments":[84346],"declarations":[{"constant":false,"id":84346,"mutability":"mutable","name":"offset","nameLocation":"45892:6:164","nodeType":"VariableDeclaration","scope":84434,"src":"45884:14:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84345,"name":"uint256","nodeType":"ElementaryTypeName","src":"45884:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84348,"initialValue":{"hexValue":"30","id":84347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45901:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45884:18:164"},{"body":{"id":84425,"nodeType":"Block","src":"45958:640:164","statements":[{"assignments":[84363],"declarations":[{"constant":false,"id":84363,"mutability":"mutable","name":"transition","nameLocation":"46002:10:164","nodeType":"VariableDeclaration","scope":84425,"src":"45972:40:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":84362,"nodeType":"UserDefinedTypeName","pathNode":{"id":84361,"name":"Gear.StateTransition","nameLocations":["45972:4:164","45977:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85843,"src":"45972:20:164"},"referencedDeclaration":85843,"src":"45972:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":84367,"initialValue":{"baseExpression":{"id":84364,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84322,"src":"46015:12:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85843_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":84366,"indexExpression":{"id":84365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84350,"src":"46028:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46015:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"45972:58:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":84369,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84318,"src":"46053:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46060:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"46053:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46073:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85791,"src":"46053:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":84374,"indexExpression":{"expression":{"id":84372,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84363,"src":"46082:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46093:7:164","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85819,"src":"46082:18:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46053:48:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":84375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46105:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46053:53:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84377,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76583,"src":"46108:14:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46108:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84368,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46045:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46045:80:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84380,"nodeType":"ExpressionStatement","src":"46045:80:164"},{"assignments":[84382],"declarations":[{"constant":false,"id":84382,"mutability":"mutable","name":"value","nameLocation":"46148:5:164","nodeType":"VariableDeclaration","scope":84425,"src":"46140:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84381,"name":"uint128","nodeType":"ElementaryTypeName","src":"46140:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":84384,"initialValue":{"hexValue":"30","id":84383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46156:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"46140:17:164"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":84388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84385,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84363,"src":"46176:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46187:14:164","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85831,"src":"46176:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":84387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46205:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46176:30:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":84391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"46210:38:164","subExpression":{"expression":{"id":84389,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84363,"src":"46211:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46222:26:164","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85834,"src":"46211:37:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"46176:72:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84399,"nodeType":"IfStatement","src":"46172:144:164","trueBody":{"id":84398,"nodeType":"Block","src":"46250:66:164","statements":[{"expression":{"id":84396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84393,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84382,"src":"46268:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":84394,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84363,"src":"46276:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46287:14:164","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85831,"src":"46276:25:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"46268:33:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":84397,"nodeType":"ExpressionStatement","src":"46268:33:164"}]}},{"assignments":[84401],"declarations":[{"constant":false,"id":84401,"mutability":"mutable","name":"transitionHash","nameLocation":"46338:14:164","nodeType":"VariableDeclaration","scope":84425,"src":"46330:22:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46330:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84411,"initialValue":{"arguments":[{"id":84409,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84363,"src":"46420:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":84403,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84363,"src":"46363:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46374:7:164","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85819,"src":"46363:18:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84402,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76363,"src":"46355:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$76363_$","typeString":"type(contract IMirror)"}},"id":84405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46355:27:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$76363","typeString":"contract IMirror"}},"id":84406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46383:22:164","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":76362,"src":"46355:50:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$85843_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":84408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":84407,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84382,"src":"46413:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"46355:64:164","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$85843_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":84410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46355:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46330:101:164"},{"expression":{"arguments":[{"id":84415,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84339,"src":"46471:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84416,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84346,"src":"46496:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84417,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84401,"src":"46504:14:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84412,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"46445:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$62272_$","typeString":"type(library Memory)"}},"id":84414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46452:18:164","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":62247,"src":"46445:25:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":84418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46445:74:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84419,"nodeType":"ExpressionStatement","src":"46445:74:164"},{"id":84424,"nodeType":"UncheckedBlock","src":"46533:55:164","statements":[{"expression":{"id":84422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84420,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84346,"src":"46561:6:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":84421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46571:2:164","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"46561:12:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84423,"nodeType":"ExpressionStatement","src":"46561:12:164"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84350,"src":"45933:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84354,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84328,"src":"45937:14:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45933:18:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84426,"initializationExpression":{"assignments":[84350],"declarations":[{"constant":false,"id":84350,"mutability":"mutable","name":"i","nameLocation":"45926:1:164","nodeType":"VariableDeclaration","scope":84426,"src":"45918:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84349,"name":"uint256","nodeType":"ElementaryTypeName","src":"45918:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84352,"initialValue":{"hexValue":"30","id":84351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45930:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45918:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"45953:3:164","subExpression":{"id":84356,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84350,"src":"45953:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84358,"nodeType":"ExpressionStatement","src":"45953:3:164"},"nodeType":"ForStatement","src":"45913:685:164"},{"expression":{"arguments":[{"id":84429,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84339,"src":"46650:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":84430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46675:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":84431,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84333,"src":"46678:19:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84427,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62498,"src":"46615:6:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$62498_$","typeString":"type(library Hashes)"}},"id":84428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46622:27:164","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":62453,"src":"46615:34:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":84432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46615:83:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84326,"id":84433,"nodeType":"Return","src":"46608:90:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"45546:18:164","parameters":{"id":84323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84318,"mutability":"mutable","name":"router","nameLocation":"45581:6:164","nodeType":"VariableDeclaration","scope":84435,"src":"45565:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84317,"nodeType":"UserDefinedTypeName","pathNode":{"id":84316,"name":"Storage","nameLocations":["45565:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"45565:7:164"},"referencedDeclaration":76458,"src":"45565:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84322,"mutability":"mutable","name":"_transitions","nameLocation":"45621:12:164","nodeType":"VariableDeclaration","scope":84435,"src":"45589:44:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85843_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":84320,"nodeType":"UserDefinedTypeName","pathNode":{"id":84319,"name":"Gear.StateTransition","nameLocations":["45589:4:164","45594:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":85843,"src":"45589:20:164"},"referencedDeclaration":85843,"src":"45589:20:164","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85843_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":84321,"nodeType":"ArrayTypeName","src":"45589:22:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85843_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"45564:70:164"},"returnParameters":{"id":84326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84435,"src":"45668:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45668:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45667:9:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84552,"nodeType":"FunctionDefinition","src":"46711:1539:164","nodes":[],"body":{"id":84551,"nodeType":"Block","src":"47032:1218:164","nodes":[],"statements":[{"condition":{"id":84453,"name":"_hasAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84440,"src":"47046:23:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84482,"nodeType":"IfStatement","src":"47042:752:164","trueBody":{"id":84481,"nodeType":"Block","src":"47071:723:164","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":84457,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84443,"src":"47476:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":84458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47500:1:164","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":85582,"src":"47476:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":84459,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84443,"src":"47503:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":84460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47527:1:164","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":85584,"src":"47503:25:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84455,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61980,"src":"47453:5:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$61980_$","typeString":"type(library FROST)"}},"id":84456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47459:16:164","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":61649,"src":"47453:22:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":84461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47453:76:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84462,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76520,"src":"47547:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47547:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84454,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47428:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47428:166:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84465,"nodeType":"ExpressionStatement","src":"47428:166:164"},{"expression":{"id":84470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":84466,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84438,"src":"47608:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47620:19:164","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":85590,"src":"47608:31:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84469,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84443,"src":"47642:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"47608:57:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":84471,"nodeType":"ExpressionStatement","src":"47608:57:164"},{"expression":{"id":84479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":84472,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84438,"src":"47679:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47691:40:164","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":85593,"src":"47679:52:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":84477,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84445,"src":"47748:34:164","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":84475,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87290,"src":"47734:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$87290_$","typeString":"type(library SSTORE2)"}},"id":84476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47742:5:164","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":87146,"src":"47734:13:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":84478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47734:49:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47679:104:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84480,"nodeType":"ExpressionStatement","src":"47679:104:164"}]}},{"body":{"id":84510,"nodeType":"Block","src":"47857:114:164","statements":[{"assignments":[84496],"declarations":[{"constant":false,"id":84496,"mutability":"mutable","name":"_validator","nameLocation":"47879:10:164","nodeType":"VariableDeclaration","scope":84510,"src":"47871:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84495,"name":"address","nodeType":"ElementaryTypeName","src":"47871:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84501,"initialValue":{"baseExpression":{"expression":{"id":84497,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84438,"src":"47892:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47904:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"47892:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":84500,"indexExpression":{"id":84499,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84484,"src":"47909:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47892:19:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47871:40:164"},{"expression":{"id":84508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":84502,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84438,"src":"47925:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47937:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85598,"src":"47925:15:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":84506,"indexExpression":{"id":84504,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84496,"src":"47941:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47925:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":84507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"47955:5:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"47925:35:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84509,"nodeType":"ExpressionStatement","src":"47925:35:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84487,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84484,"src":"47823:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":84488,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84438,"src":"47827:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47839:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"47827:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":84490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47844:6:164","memberName":"length","nodeType":"MemberAccess","src":"47827:23:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47823:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84511,"initializationExpression":{"assignments":[84484],"declarations":[{"constant":false,"id":84484,"mutability":"mutable","name":"i","nameLocation":"47816:1:164","nodeType":"VariableDeclaration","scope":84511,"src":"47808:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84483,"name":"uint256","nodeType":"ElementaryTypeName","src":"47808:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84486,"initialValue":{"hexValue":"30","id":84485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47820:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47808:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47852:3:164","subExpression":{"id":84492,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84484,"src":"47852:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84494,"nodeType":"ExpressionStatement","src":"47852:3:164"},"nodeType":"ForStatement","src":"47803:168:164"},{"body":{"id":84537,"nodeType":"Block","src":"48032:111:164","statements":[{"assignments":[84524],"declarations":[{"constant":false,"id":84524,"mutability":"mutable","name":"_validator","nameLocation":"48054:10:164","nodeType":"VariableDeclaration","scope":84537,"src":"48046:18:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84523,"name":"address","nodeType":"ElementaryTypeName","src":"48046:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84528,"initialValue":{"baseExpression":{"id":84525,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84448,"src":"48067:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":84527,"indexExpression":{"id":84526,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84513,"src":"48082:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"48067:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48046:38:164"},{"expression":{"id":84535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":84529,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84438,"src":"48098:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48110:3:164","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":85598,"src":"48098:15:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":84533,"indexExpression":{"id":84531,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84524,"src":"48114:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"48098:27:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":84534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48128:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"48098:34:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84536,"nodeType":"ExpressionStatement","src":"48098:34:164"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84516,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84513,"src":"48000:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84517,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84448,"src":"48004:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":84518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48019:6:164","memberName":"length","nodeType":"MemberAccess","src":"48004:21:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48000:25:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84538,"initializationExpression":{"assignments":[84513],"declarations":[{"constant":false,"id":84513,"mutability":"mutable","name":"i","nameLocation":"47993:1:164","nodeType":"VariableDeclaration","scope":84538,"src":"47985:9:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84512,"name":"uint256","nodeType":"ElementaryTypeName","src":"47985:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84515,"initialValue":{"hexValue":"30","id":84514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47997:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47985:13:164"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"48027:3:164","subExpression":{"id":84520,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84513,"src":"48027:1:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84522,"nodeType":"ExpressionStatement","src":"48027:3:164"},"nodeType":"ForStatement","src":"47980:163:164"},{"expression":{"id":84543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":84539,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84438,"src":"48152:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48164:4:164","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":85602,"src":"48152:16:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84542,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84448,"src":"48171:14:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"48152:33:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":84544,"nodeType":"ExpressionStatement","src":"48152:33:164"},{"expression":{"id":84549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":84545,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84438,"src":"48195:11:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48207:16:164","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":85605,"src":"48195:28:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84548,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84450,"src":"48226:17:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48195:48:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84550,"nodeType":"ExpressionStatement","src":"48195:48:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"46720:16:164","parameters":{"id":84451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84438,"mutability":"mutable","name":"_validators","nameLocation":"46770:11:164","nodeType":"VariableDeclaration","scope":84552,"src":"46746:35:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84437,"nodeType":"UserDefinedTypeName","pathNode":{"id":84436,"name":"Gear.Validators","nameLocations":["46746:4:164","46751:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":85606,"src":"46746:15:164"},"referencedDeclaration":85606,"src":"46746:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$85606_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":84440,"mutability":"mutable","name":"_hasAggregatedPublicKey","nameLocation":"46796:23:164","nodeType":"VariableDeclaration","scope":84552,"src":"46791:28:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84439,"name":"bool","nodeType":"ElementaryTypeName","src":"46791:4:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":84443,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"46861:23:164","nodeType":"VariableDeclaration","scope":84552,"src":"46829:55:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":84442,"nodeType":"UserDefinedTypeName","pathNode":{"id":84441,"name":"Gear.AggregatedPublicKey","nameLocations":["46829:4:164","46834:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":85585,"src":"46829:24:164"},"referencedDeclaration":85585,"src":"46829:24:164","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$85585_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":84445,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"46907:34:164","nodeType":"VariableDeclaration","scope":84552,"src":"46894:47:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":84444,"name":"bytes","nodeType":"ElementaryTypeName","src":"46894:5:164","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":84448,"mutability":"mutable","name":"_newValidators","nameLocation":"46968:14:164","nodeType":"VariableDeclaration","scope":84552,"src":"46951:31:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":84446,"name":"address","nodeType":"ElementaryTypeName","src":"46951:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84447,"nodeType":"ArrayTypeName","src":"46951:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":84450,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"47000:17:164","nodeType":"VariableDeclaration","scope":84552,"src":"46992:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84449,"name":"uint256","nodeType":"ElementaryTypeName","src":"46992:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46736:287:164"},"returnParameters":{"id":84452,"nodeType":"ParameterList","parameters":[],"src":"47032:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84565,"nodeType":"FunctionDefinition","src":"48256:192:164","nodes":[],"body":{"id":84564,"nodeType":"Block","src":"48321:127:164","nodes":[],"statements":[{"assignments":[84559],"declarations":[{"constant":false,"id":84559,"mutability":"mutable","name":"slot","nameLocation":"48339:4:164","nodeType":"VariableDeclaration","scope":84564,"src":"48331:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48331:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84562,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84560,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84577,"src":"48346:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":84561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48346:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48331:32:164"},{"AST":{"nativeSrc":"48399:43:164","nodeType":"YulBlock","src":"48399:43:164","statements":[{"nativeSrc":"48413:19:164","nodeType":"YulAssignment","src":"48413:19:164","value":{"name":"slot","nativeSrc":"48428:4:164","nodeType":"YulIdentifier","src":"48428:4:164"},"variableNames":[{"name":"router.slot","nativeSrc":"48413:11:164","nodeType":"YulIdentifier","src":"48413:11:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":84556,"isOffset":false,"isSlot":true,"src":"48413:11:164","suffix":"slot","valueSize":1},{"declaration":84559,"isOffset":false,"isSlot":false,"src":"48428:4:164","valueSize":1}],"flags":["memory-safe"],"id":84563,"nodeType":"InlineAssembly","src":"48374:68:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"48265:7:164","parameters":{"id":84553,"nodeType":"ParameterList","parameters":[],"src":"48272:2:164"},"returnParameters":{"id":84557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84556,"mutability":"mutable","name":"router","nameLocation":"48313:6:164","nodeType":"VariableDeclaration","scope":84565,"src":"48297:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84555,"nodeType":"UserDefinedTypeName","pathNode":{"id":84554,"name":"Storage","nameLocations":["48297:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"48297:7:164"},"referencedDeclaration":76458,"src":"48297:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"48296:24:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":84577,"nodeType":"FunctionDefinition","src":"48454:128:164","nodes":[],"body":{"id":84576,"nodeType":"Block","src":"48512:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":84572,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"48556:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84570,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"48529:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":84571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48541:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"48529:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":84573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48529:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":84574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48570:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"48529:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84569,"id":84575,"nodeType":"Return","src":"48522:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"48463:15:164","parameters":{"id":84566,"nodeType":"ParameterList","parameters":[],"src":"48478:2:164"},"returnParameters":{"id":84569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84577,"src":"48503:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48503:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48502:9:164"},"scope":84665,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":84605,"nodeType":"FunctionDefinition","src":"48588:240:164","nodes":[],"body":{"id":84604,"nodeType":"Block","src":"48656:172:164","nodes":[],"statements":[{"assignments":[84585],"declarations":[{"constant":false,"id":84585,"mutability":"mutable","name":"slot","nameLocation":"48674:4:164","nodeType":"VariableDeclaration","scope":84604,"src":"48666:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48666:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84590,"initialValue":{"arguments":[{"id":84588,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84579,"src":"48708:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":84586,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6724,"src":"48681:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$6724_$","typeString":"type(library SlotDerivation)"}},"id":84587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48696:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":6607,"src":"48681:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":84589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48681:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48666:52:164"},{"expression":{"id":84598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":84594,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"48755:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84591,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"48728:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$6848_$","typeString":"type(library StorageSlot)"}},"id":84593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48740:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":6781,"src":"48728:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6736_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":84595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48728:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$6736_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":84596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48769:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"48728:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84597,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84585,"src":"48777:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48728:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84599,"nodeType":"ExpressionStatement","src":"48728:53:164"},{"eventCall":{"arguments":[{"id":84601,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84585,"src":"48816:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84600,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"48797:18:164","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48797:24:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84603,"nodeType":"EmitStatement","src":"48792:29:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":84582,"kind":"modifierInvocation","modifierName":{"id":84581,"name":"onlyOwner","nameLocations":["48646:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"48646:9:164"},"nodeType":"ModifierInvocation","src":"48646:9:164"}],"name":"_setStorageSlot","nameLocation":"48597:15:164","parameters":{"id":84580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84579,"mutability":"mutable","name":"namespace","nameLocation":"48627:9:164","nodeType":"VariableDeclaration","scope":84605,"src":"48613:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":84578,"name":"string","nodeType":"ElementaryTypeName","src":"48613:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48612:25:164"},"returnParameters":{"id":84583,"nodeType":"ParameterList","parameters":[],"src":"48656:0:164"},"scope":84665,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84664,"nodeType":"FunctionDefinition","src":"48976:396:164","nodes":[],"body":{"id":84663,"nodeType":"Block","src":"49017:355:164","nodes":[],"statements":[{"assignments":[84613],"declarations":[{"constant":false,"id":84613,"mutability":"mutable","name":"router","nameLocation":"49043:6:164","nodeType":"VariableDeclaration","scope":84663,"src":"49027:22:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84612,"nodeType":"UserDefinedTypeName","pathNode":{"id":84611,"name":"Storage","nameLocations":["49027:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76458,"src":"49027:7:164"},"referencedDeclaration":76458,"src":"49027:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84616,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84614,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84565,"src":"49052:7:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$76458_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":84615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49052:9:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"49027:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84618,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84613,"src":"49079:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49086:12:164","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":76433,"src":"49079:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$85758_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49099:4:164","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":85753,"src":"49079:24:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":84623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49115:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":84622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49107:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":84621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49107:7:164","typeDescriptions":{}}},"id":84624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49107:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"49079:38:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84626,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"49119:31:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49119:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84617,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49071:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49071:82:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84629,"nodeType":"ExpressionStatement","src":"49071:82:164"},{"assignments":[84631],"declarations":[{"constant":false,"id":84631,"mutability":"mutable","name":"value","nameLocation":"49172:5:164","nodeType":"VariableDeclaration","scope":84663,"src":"49164:13:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84630,"name":"uint128","nodeType":"ElementaryTypeName","src":"49164:7:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":84637,"initialValue":{"arguments":[{"expression":{"id":84634,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49188:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49192:5:164","memberName":"value","nodeType":"MemberAccess","src":"49188:9:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49180:7:164","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":84632,"name":"uint128","nodeType":"ElementaryTypeName","src":"49180:7:164","typeDescriptions":{}}},"id":84636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49180:18:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"49164:34:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":84641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84639,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84631,"src":"49216:5:164","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":84640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49224:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49216:9:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84642,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76609,"src":"49227:17:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49227:19:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84638,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49208:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49208:39:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84645,"nodeType":"ExpressionStatement","src":"49208:39:164"},{"assignments":[84647],"declarations":[{"constant":false,"id":84647,"mutability":"mutable","name":"actorId","nameLocation":"49266:7:164","nodeType":"VariableDeclaration","scope":84663,"src":"49258:15:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84646,"name":"address","nodeType":"ElementaryTypeName","src":"49258:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84650,"initialValue":{"expression":{"id":84648,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49276:3:164","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49280:6:164","memberName":"sender","nodeType":"MemberAccess","src":"49276:10:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"49258:28:164"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":84652,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84613,"src":"49304:6:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$76458_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49311:12:164","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":76457,"src":"49304:19:164","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85807_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49324:8:164","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85791,"src":"49304:28:164","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":84656,"indexExpression":{"id":84655,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84647,"src":"49333:7:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49304:37:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":84657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49345:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49304:42:164","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84659,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76583,"src":"49348:14:164","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49348:16:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84651,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49296:7:164","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49296:69:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84662,"nodeType":"ExpressionStatement","src":"49296:69:164"}]},"documentation":{"id":84606,"nodeType":"StructuredDocumentation","src":"48834:137:164","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":84609,"kind":"modifierInvocation","modifierName":{"id":84608,"name":"whenNotPaused","nameLocations":["49003:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":20627,"src":"49003:13:164"},"nodeType":"ModifierInvocation","src":"49003:13:164"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":84607,"nodeType":"ParameterList","parameters":[],"src":"48983:2:164"},"returnParameters":{"id":84610,"nodeType":"ParameterList","parameters":[],"src":"49017:0:164"},"scope":84665,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":81785,"name":"IRouter","nameLocations":["1576:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":76958,"src":"1576:7:164"},"id":81786,"nodeType":"InheritanceSpecifier","src":"1576:7:164"},{"baseName":{"id":81787,"name":"OwnableUpgradeable","nameLocations":["1589:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"1589:18:164"},"id":81788,"nodeType":"InheritanceSpecifier","src":"1589:18:164"},{"baseName":{"id":81789,"name":"PausableUpgradeable","nameLocations":["1613:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":20737,"src":"1613:19:164"},"id":81790,"nodeType":"InheritanceSpecifier","src":"1613:19:164"},{"baseName":{"id":81791,"name":"EIP712Upgradeable","nameLocations":["1638:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":20974,"src":"1638:17:164"},"id":81792,"nodeType":"InheritanceSpecifier","src":"1638:17:164"},{"baseName":{"id":81793,"name":"NoncesUpgradeable","nameLocations":["1661:17:164"],"nodeType":"IdentifierPath","referencedDeclaration":20577,"src":"1661:17:164"},"id":81794,"nodeType":"InheritanceSpecifier","src":"1661:17:164"},{"baseName":{"id":81795,"name":"ReentrancyGuardTransient","nameLocations":["1684:24:164"],"nodeType":"IdentifierPath","referencedDeclaration":6594,"src":"1684:24:164"},"id":81796,"nodeType":"InheritanceSpecifier","src":"1684:24:164"},{"baseName":{"id":81797,"name":"UUPSUpgradeable","nameLocations":["1714:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"1714:15:164"},"id":81798,"nodeType":"InheritanceSpecifier","src":"1714:15:164"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[84665,2079,376,6594,20577,20974,366,20737,19465,20363,1913,76958],"name":"Router","nameLocation":"1562:6:164","scope":84666,"usedErrors":[995,1008,1662,1665,1936,1941,3201,6168,6514,8568,8573,8578,11979,19301,19306,20480,20616,20619,76512,76515,76518,76520,76523,76526,76529,76532,76535,76538,76545,76554,76559,76566,76569,76571,76573,76575,76577,76579,76581,76583,76585,76587,76589,76591,76593,76595,76597,76599,76601,76603,76605,76607,76609,85561,85564,85567,85570,85573,85576,85579],"usedEvents":[324,346,1670,19312,20608,20613,76463,76468,76473,76480,76485,76490,76497,76504,76509]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":164} \ No newline at end of file diff --git a/ethexe/ethereum/abi/SlasherFactory.json b/ethexe/ethereum/abi/SlasherFactory.json index 5f20ab3fe10..28fd6a15d5e 100644 --- a/ethexe/ethereum/abi/SlasherFactory.json +++ b/ethexe/ethereum/abi/SlasherFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f6109a338819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108d590816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220992c165f90045b811880db0cac96786cefb968fd9dcc9500cd861a9c11267a6a64736f6c63430008190033","sourceMap":"177:120:66:-:0;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;1273:26:32;;1269:95;;3004:6;177:120:66;;-1:-1:-1;;;;;;177:120:66;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;177:120:66;;;;;;;1269:95:32;177:120:66;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;177:120:66;;;1322:31:32;177:120:66;-1:-1:-1;177:120:66;;;;;;-1:-1:-1;177:120:66;;;;;-1:-1:-1;177:120:66","linkReferences":{}},"deployedBytecode":{"object":"0x6080604090808252600480361015610015575f80fd5b5f3560e01c91826314887c5814610698575081635cd8b15e1461067b578163715018a6146106205781638da5cb5b146105f85781639b19251a14610485578163b42ba2a21461041a578163b572a96614610375578163b6caa11914610338578163cd108ef814610194578163f15df2e51461016e578163f2fde38b146100dd575063f9661602146100a4575f80fd5b346100d95760203660031901126100d9576020906100c86100c36106d1565b61073e565b90516001600160a01b039091168152f35b5f80fd5b82346100d95760203660031901126100d9576001600160a01b038235818116939192908490036100d95761010f610799565b8315610158575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b905f6024925191631e4fbdf760e01b8352820152fd5b82346100d9575f3660031901126100d95767ffffffffffffffff60209254169051908152f35b82346100d957806003193601126100d9576101ad6106d1565b906024359167ffffffffffffffff8084116100d957366023850112156100d95783850135918183116100d957602485019460248436920101116100d9576e5af43d82803e903d91602b57fd5bf36102038261073e565b915f54908487519160208301938452168782015260608082015261023d8161022f60808201898c61071e565b03601f1981018352826106e8565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169384156103285761028b85610836565b50835192857fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2853b156100d957836102dd5f93829363439fab9160e01b845260208b850152602484019161071e565b038183885af1801561031e576102f8575b6020848451908152f35b811161030b5760209350815283806102ee565b604184634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b83516330be1a3d60e21b81528690fd5b82346100d95760203660031901126100d95760209067ffffffffffffffff61035e6106d1565b165f526003825260ff815f20541690519015158152f35b82346100d95760203660031901126100d95761038f6106d1565b91610398610799565b67ffffffffffffffff8082541693169283101561040c57825f52600360205260ff825f2054166103fe5750815f5260036020525f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b905163f53de75f60e01b8152fd5b905163b968846160e01b8152fd5b82346100d95760203660031901126100d95781355f54811015610472575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b9050346100d957602091826003193601126100d95781356001600160a01b0381811694918590036100d9576104b8610799565b82516202dd3160ec1b81529082828681895afa9182156105ee575f926105b6575b501630148015919061053a575b5061052d576104f4836107c5565b1561052057827feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b8251635d927f4560e11b815290915081818581885afa91821561031e575f92610577575b505067ffffffffffffffff80845416911614155f6104e6565b90809250813d83116105af575b61058e81836106e8565b810103126100d9575167ffffffffffffffff811681036100d9575f8061055e565b503d610584565b9091508281813d83116105e7575b6105ce81836106e8565b810103126100d9575181811681036100d957905f6104d9565b503d6105c4565b84513d5f823e3d90fd5b82346100d9575f3660031901126100d95760025490516001600160a01b039091168152602090f35b346100d9575f3660031901126100d957610638610799565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346100d9575f3660031901126100d9576020905f549051908152f35b9150346100d95760203660031901126100d957356001600160a01b03811692908390036100d9576020925f52600183525f205415158152f35b6004359067ffffffffffffffff821682036100d957565b90601f8019910116810190811067ffffffffffffffff82111761070a57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156107855760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b6002546001600160a01b031633036107ad57565b60405163118cdaa760e01b8152336004820152602490fd5b805f52600560205260405f2054155f1461083157600454600160401b81101561070a5760018101806004558110156107855781907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0155600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610831575f54600160401b81101561070a5760018101805f558110156107855781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f205560019056fea2646970667358221220992c165f90045b811880db0cac96786cefb968fd9dcc9500cd861a9c11267a6a64736f6c63430008190033","sourceMap":"177:120:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;2627:22;;2623:91;;177:120:66;;3004:6:32;177:120:66;;;;;;;;3004:6:32;177:120:66;;3052:40:32;177:120:66;3052:40:32;;177:120:66;2623:91:32;177:120:66;;;;;2672:31:32;;;;;;;;177:120:66;2672:31:32;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:565:36;2248:21:70;;;:::i;:::-;177:120:66;;;;;;;2299:40:70;177:120:66;2299:40:70;;177:120:66;;;;;;;;;;;;;2299:40:70;177:120:66;;;;;;;;:::i;:::-;2299:40:70;;;;;;;;;:::i;:::-;177:120:66;2289:51:70;;2364:565:36;;;;;;;;177:120:66;2364:565:36;;;;177:120:66;2364:565:36;177:120:66;;;;;2364:565:36;;;177:120:66;2364:565:36;177:120:66;2942:22:36;;;2938:86;;8409:50:61;;;:::i;:::-;;177:120:66;;1077:18:74;;;177:120:66;1077:18:74;;2382:33:70;;;;;177:120:66;;;;;;;;;2382:33:70;;177:120:66;2382:33:70;;;177:120:66;;;;;;:::i;:::-;2382:33:70;;;;;;;;;;;;177:120:66;;;;;;;;;2382:33:70;177:120:66;;;;;;;;;2382:33:70;;;;177:120:66;;;;;;;;;;;;2382:33:70;177:120:66;;;;;;;;;2938:86:36;177:120:66;;-1:-1:-1;;;2987:26:36;;177:120:66;;2987:26:36;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;:::i;:::-;;;;633:54:70;177:120:66;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;177:120:66;;;;;;;822:21:70;;;;818:72;;177:120:66;;;1946:11:70;177:120:66;;;;;;;;1942:76:70;;177:120:66;;;;1946:11:70;177:120:66;;;;2049:4:70;177:120:66;;;;;;;;2069:16:70;177:120:66;2069:16:70;;177:120:66;1942:76:70;177:120:66;;-1:-1:-1;;;1987:20:70;;;818:72;177:120:66;;-1:-1:-1;;;866:13:70;;;177:120:66;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;-1:-1:-1;177:120:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;1500:62:32;;:::i;:::-;177:120:66;;-1:-1:-1;;;1476:34:70;;177:120:66;1476:34:70;177:120:66;1476:34:70;177:120:66;1476:34:70;;;;;;;;177:120:66;1476:34:70;;;177:120:66;-1:-1:-1;177:120:66;1522:4:70;1476:51;;;;;:102;;177:120:66;1472:163:70;;;8409:50:61;;;:::i;:::-;1648:49:70;1644:107;;1766:26;;177:120:66;1766:26:70;;177:120:66;1644:107:70;177:120:66;-1:-1:-1;;;1720:20:70;;;1472:163;177:120:66;-1:-1:-1;;;1601:23:70;;;1476:102;177:120:66;;-1:-1:-1;;;1531:31:70;;177:120:66;;-1:-1:-1;177:120:66;;1531:31:70;177:120:66;1531:31:70;;;;;;;;177:120:66;1531:31:70;;;1476:102;177:120:66;;;;;;;;;1531:47:70;;1476:102;;;1531:31;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:66;;;;;;;;;;;;1531:31:70;;;;;;;;;1476:34;;;;;;;;;;;;;;;;;:::i;:::-;;;177:120:66;;;;;;;;;;;;1476:34:70;;;;;;;;;;177:120:66;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;1710:6:32;177:120:66;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;1500:62:32;;:::i;:::-;3004:6;177:120:66;;-1:-1:-1;;;;;;177:120:66;;;;;;;-1:-1:-1;;;;;177:120:66;3052:40:32;177:120:66;;3052:40:32;177:120:66;;;;;;;;-1:-1:-1;;177:120:66;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;177:120:66;;;;;-1:-1:-1;;;;;177:120:66;;;;;;;;;;;;;4360:14:61;177:120:66;;;;;4360:26:61;;177:120:66;;;;;;;;;;;;;;:::o;:::-;;;2299:40:70;;177:120:66;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:66;;;;;;;;-1:-1:-1;;177:120:66;;;;:::o;1192:143:70:-;177:120:66;;1291:27:70;177:120:66;;;;;;1291:27:70;-1:-1:-1;177:120:66;;;;-1:-1:-1;;;;;177:120:66;;1192:143:70:o;177:120:66:-;;;;-1:-1:-1;177:120:66;;1291:27:70;177:120:66;;-1:-1:-1;177:120:66;1796:162:32;1710:6;177:120:66;-1:-1:-1;;;;;177:120:66;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;177:120:66;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;177:120:66;;;1901:40:32;2241:406:61;177:120:66;-1:-1:-1;177:120:66;4360:14:61;177:120:66;;;-1:-1:-1;177:120:66;;4360:26:61;2320:321;177:120:66;;;;;-1:-1:-1;;;177:120:66;;;;;4360:14:61;177:120:66;;;;;;;;;;;;;;;;;;-1:-1:-1;177:120:66;4360:14:61;177:120:66;;;-1:-1:-1;177:120:66;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;-1:-1:-1;2618:12:61;:::o;2241:406::-;177:120:66;;;4360:14:61;177:120:66;;;;;;4360:26:61;2320:321;177:120:66;;;;;-1:-1:-1;;;177:120:66;;;;;4360:14:61;177:120:66;;;;;;;;;;;;;;;;;;;;4360:14:61;177:120:66;;;;;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"A clone instance deployment failed.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/SlasherFactory.sol\":\"SlasherFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/Clones.sol\":{\"keccak256\":\"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b\",\"dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867\",\"dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9\",\"dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb\",\"dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/SlasherFactory.sol":"SlasherFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Clones.sol":{"keccak256":"0xd18408af8a91bedb3d56343eeb9b30eb852e6dea93a5e2d5c6db9ca4cb905155","urls":["bzz-raw://061475b7302a732dc598907790f407417551c2b13e89daa57b3698489ef5484b","dweb:/ipfs/QmdX5qmk3VSniSErFuD4aVawQxUi2MuUbP7spPcHddPfcX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xbafc96e3d2511eb62942613645b4f5cbf6f603063a711b30e25940aaba08064c","urls":["bzz-raw://489440f1181b1858e3b27a90ec6f514c0c287c602b4779676048213202165867","dweb:/ipfs/QmRG7AQ9m9qHr8ofEvP1Ur8S379fFXTo9rmiWaAtZ9rsUc"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0x41764643e6a2a3d80d694a3efee91f50a2fd084fb2bcd13566259443840e6369","urls":["bzz-raw://fefc1e2a2189275388826f4f82ca421ca79c2866d3ef39dc2c7df46fe7cbf7c9","dweb:/ipfs/QmSJ4VGmgpYUv5ni4ZYoSV4qMuZrk5DLjyB3Vv9NbFgeNZ"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0xe835ebda85d181b70874f6eb53f2a892aa3223d23efe247060da9b51d2b8e969","urls":["bzz-raw://48b3dfb5f0491d90efbc8ed498b45358260ebac6e8f2aa0106b8b8fabdc988cb","dweb:/ipfs/QmWnnCs3xiHeUvYfUWMJTSFZWc34bSYn9Zpm7f7syra3TA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":66} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"type_","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalTypes","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"type_","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"FailedDeployment","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidType","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b757601f61099538819003918201601f19168301916001600160401b0383118484101760bb5780849260209460405283398101031260b757516001600160a01b0381169081900360b757801560a457600280546001600160a01b03198116831790915560405191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36108c590816100d08239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f5f3560e01c806314887c58146106a45780635cd8b15e14610688578063715018a61461062d5780638da5cb5b146106055780639b19251a14610488578063b42ba2a21461041c578063b572a96614610374578063b6caa11914610336578063cd108ef81461018f578063f15df2e514610167578063f2fde38b146100d65763f96616021461009e575f80fd5b346100d35760203660031901126100d35760206100c16100bc6106e2565b61074f565b6040516001600160a01b039091168152f35b80fd5b50346100d35760203660031901126100d3576004356001600160a01b0381169081900361016357610105610796565b801561014f57600280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b50346100d357806003193601126100d357602067ffffffffffffffff60045416604051908152f35b34610323576040366003190112610323576101a86106e2565b60243567ffffffffffffffff811161032357366023820112156103235780600401359167ffffffffffffffff83116103235760248201916024843692010111610323576e5af43d82803e903d91602b57fd5bf36102048261074f565b915f549067ffffffffffffffff60405191602083019384521660408201526060808201526102488161023a60808201898961072f565b03601f1981018352826106f9565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169081156103275761029682610835565b5060405192827fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2823b1561032357836102ea5f93829363439fab9160e01b845260206004850152602484019161072f565b038183855af191821561031857602092610308575b50604051908152f35b5f610312916106f9565b5f6102ff565b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b346103235760203660031901126103235767ffffffffffffffff6103586106e2565b165f526003602052602060ff60405f2054166040519015158152f35b346103235760203660031901126103235761038d6106e2565b610395610796565b67ffffffffffffffff806004541691169081101561040d57805f52600360205260ff60405f2054166103fe57805f52600360205260405f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b63f53de75f60e01b5f5260045ffd5b63b968846160e01b5f5260045ffd5b34610323576020366003190112610323576004355f54811015610474575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b34610323576020366003190112610323576004356001600160a01b03811690819003610323576104b6610796565b6040516202dd3160ec1b8152602081600481855afa908115610318575f916105c3575b506001600160a01b03163014801590610543575b610534576104fa816107d2565b15610525577feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b63b73e95e160e01b5f5260045ffd5b63340aafcd60e11b5f5260045ffd5b50604051635d927f4560e11b8152602081600481855afa908115610318575f91610580575b5067ffffffffffffffff8060045416911614156104ed565b90506020813d6020116105bb575b8161059b602093836106f9565b81010312610323575167ffffffffffffffff811681036103235782610568565b3d915061058e565b90506020813d6020116105fd575b816105de602093836106f9565b8101031261032357516001600160a01b038116810361032357826104d9565b3d91506105d1565b34610323575f366003190112610323576002546040516001600160a01b039091168152602090f35b34610323575f36600319011261032357610645610796565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610323575f3660031901126103235760205f54604051908152f35b34610323576020366003190112610323576004356001600160a01b03811690819003610323575f526001602052602060405f20541515604051908152f35b6004359067ffffffffffffffff8216820361032357565b90601f8019910116810190811067ffffffffffffffff82111761071b57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156104745760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b6002546001600160a01b031633036107aa57565b63118cdaa760e01b5f523360045260245ffd5b8054821015610474575f5260205f2001905f90565b805f52600560205260405f2054155f1461083057600454600160401b81101561071b57806001610807920160045560046107bd565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610830575f54600160401b81101561071b5780600161086792015f555f6107bd565b81549060031b9083821b915f19901b19161790555f54905f52600160205260405f205560019056fea26469706673582212205bf5048fc0eb10a391b5daafe3bc618986fa89e8b0250be1b61de79957a2e6cf64736f6c63430008230033","sourceMap":"178:106:119:-:0;;;;;;;;;;;;;-1:-1:-1;;178:106:119;;;;-1:-1:-1;;;;;178:106:119;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;178:106:119;;;;;;;;1273:26:1;;1269:95;;3004:6;178:106:119;;-1:-1:-1;;;;;;178:106:119;;;;;;;;;;;-1:-1:-1;;;;;178:106:119;3052:40:1;-1:-1:-1;;3052:40:1;178:106:119;;;;;;;1269:95:1;1322:31;;;-1:-1:-1;1322:31:1;-1:-1:-1;1322:31:1;178:106:119;;-1:-1:-1;1322:31:1;178:106:119;-1:-1:-1;178:106:119;;;;;;-1:-1:-1;178:106:119;;;;;-1:-1:-1;178:106:119","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806314887c58146106a45780635cd8b15e14610688578063715018a61461062d5780638da5cb5b146106055780639b19251a14610488578063b42ba2a21461041c578063b572a96614610374578063b6caa11914610336578063cd108ef81461018f578063f15df2e514610167578063f2fde38b146100d65763f96616021461009e575f80fd5b346100d35760203660031901126100d35760206100c16100bc6106e2565b61074f565b6040516001600160a01b039091168152f35b80fd5b50346100d35760203660031901126100d3576004356001600160a01b0381169081900361016357610105610796565b801561014f57600280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b50346100d357806003193601126100d357602067ffffffffffffffff60045416604051908152f35b34610323576040366003190112610323576101a86106e2565b60243567ffffffffffffffff811161032357366023820112156103235780600401359167ffffffffffffffff83116103235760248201916024843692010111610323576e5af43d82803e903d91602b57fd5bf36102048261074f565b915f549067ffffffffffffffff60405191602083019384521660408201526060808201526102488161023a60808201898961072f565b03601f1981018352826106f9565b51902091763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b1760205260018060a01b0390603760095ff5169081156103275761029682610835565b5060405192827fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a2823b1561032357836102ea5f93829363439fab9160e01b845260206004850152602484019161072f565b038183855af191821561031857602092610308575b50604051908152f35b5f610312916106f9565b5f6102ff565b6040513d5f823e3d90fd5b5f80fd5b63b06ebf3d60e01b5f5260045ffd5b346103235760203660031901126103235767ffffffffffffffff6103586106e2565b165f526003602052602060ff60405f2054166040519015158152f35b346103235760203660031901126103235761038d6106e2565b610395610796565b67ffffffffffffffff806004541691169081101561040d57805f52600360205260ff60405f2054166103fe57805f52600360205260405f20600160ff198254161790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4585f80a2005b63f53de75f60e01b5f5260045ffd5b63b968846160e01b5f5260045ffd5b34610323576020366003190112610323576004355f54811015610474575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301546040516001600160a01b039091168152602090f35b634e487b7160e01b5f52603260045260245ffd5b34610323576020366003190112610323576004356001600160a01b03811690819003610323576104b6610796565b6040516202dd3160ec1b8152602081600481855afa908115610318575f916105c3575b506001600160a01b03163014801590610543575b610534576104fa816107d2565b15610525577feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e5f80a2005b63b73e95e160e01b5f5260045ffd5b63340aafcd60e11b5f5260045ffd5b50604051635d927f4560e11b8152602081600481855afa908115610318575f91610580575b5067ffffffffffffffff8060045416911614156104ed565b90506020813d6020116105bb575b8161059b602093836106f9565b81010312610323575167ffffffffffffffff811681036103235782610568565b3d915061058e565b90506020813d6020116105fd575b816105de602093836106f9565b8101031261032357516001600160a01b038116810361032357826104d9565b3d91506105d1565b34610323575f366003190112610323576002546040516001600160a01b039091168152602090f35b34610323575f36600319011261032357610645610796565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610323575f3660031901126103235760205f54604051908152f35b34610323576020366003190112610323576004356001600160a01b03811690819003610323575f526001602052602060405f20541515604051908152f35b6004359067ffffffffffffffff8216820361032357565b90601f8019910116810190811067ffffffffffffffff82111761071b57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b67ffffffffffffffff166004548110156104745760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b6002546001600160a01b031633036107aa57565b63118cdaa760e01b5f523360045260245ffd5b8054821015610474575f5260205f2001905f90565b805f52600560205260405f2054155f1461083057600454600160401b81101561071b57806001610807920160045560046107bd565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f2055600190565b505f90565b805f52600160205260405f2054155f14610830575f54600160401b81101561071b5780600161086792015f555f6107bd565b81549060031b9083821b915f19901b19161790555f54905f52600160205260405f205560019056fea26469706673582212205bf5048fc0eb10a391b5daafe3bc618986fa89e8b0250be1b61de79957a2e6cf64736f6c63430008230033","sourceMap":"178:106:119:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;178:106:119;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;178:106:119;;;;;;;;;;;;;;;;-1:-1:-1;;178:106:119;;;;;;-1:-1:-1;;;;;178:106:119;;;;;;;;1500:62:1;;:::i;:::-;2627:22;;2623:91;;3004:6;178:106:119;;-1:-1:-1;;;;;;178:106:119;;;;;;;-1:-1:-1;;;;;178:106:119;3052:40:1;;;;178:106:119;;2623:91:1;-1:-1:-1;;;2672:31:1;;178:106:119;;;;;2672:31:1;;178:106:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;178:106:119;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5090:581:10;2179:21:123;;;:::i;:::-;178:106:119;;;;;;;2230:40:123;178:106:119;2230:40:123;;178:106:119;;;;;;;;;;;;;2230:40:123;178:106:119;;;;;;;;:::i;:::-;2230:40:123;;;;;;;;;:::i;:::-;178:106:119;2220:51:123;;5090:581:10;;;;;;;;178:106:119;5090:581:10;;;;178:106:119;5090:581:10;178:106:119;;;;;5090:581:10;;;178:106:119;5090:581:10;178:106:119;5684:22:10;;;5680:85;;15182:50:42;;;:::i;:::-;;178:106:119;;1021:18:127;;;178:106:119;1021:18:127;;2313:33:123;;;;;178:106:119;;;;;;;;;2313:33:123;;178:106:119;;2313:33:123;;178:106:119;;;;;;:::i;:::-;2313:33:123;;;;;;;;;;;178:106:119;2313:33:123;;;178:106:119;;;;;;;;2313:33:123;178:106:119;2313:33:123;;;:::i;:::-;178:106:119;2313:33:123;;;178:106:119;;;;;;;;;2313:33:123;178:106:119;;;5680:85:10;5729:25;;;178:106:119;5729:25:10;178:106:119;;5729:25:10;178:106:119;;;;;;-1:-1:-1;;178:106:119;;;;;;;:::i;:::-;;;;634:54:123;178:106:119;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;178:106:119;;;;;;:::i;:::-;1500:62:1;;:::i;:::-;178:106:119;;;;;;;809:21:123;;;;805:72;;178:106:119;;;1877:11:123;178:106:119;;;;;;;;1873:76:123;;178:106:119;;;1877:11:123;178:106:119;;;;;1980:4:123;178:106:119;;;;;;;;2000:16:123;178:106:119;2000:16:123;;178:106:119;1873:76:123;1918:20;;;178:106:119;1918:20:123;178:106:119;;1918:20:123;805:72;853:13;;;178:106:119;853:13:123;178:106:119;;853:13:123;178:106:119;;;;;;-1:-1:-1;;178:106:119;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;178:106:119;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;178:106:119;;;;;;-1:-1:-1;;;;;178:106:119;;;;;;;;1500:62:1;;:::i;:::-;178:106:119;;-1:-1:-1;;;1421:34:123;;178:106:119;;;;1421:34:123;;;;;;;;178:106:119;1421:34:123;;;178:106:119;-1:-1:-1;;;;;;178:106:119;1467:4:123;1421:51;;;;:102;;178:106:119;1417:163:123;;15182:50:42;;;:::i;:::-;1593:49:123;1589:107;;1711:26;178:106:119;1711:26:123;;178:106:119;1589:107:123;1665:20;;;178:106:119;1665:20:123;178:106:119;;1665:20:123;1417:163;1546:23;;;178:106:119;1546:23:123;178:106:119;;1546:23:123;1421:102;-1:-1:-1;178:106:119;;-1:-1:-1;;;1476:31:123;;178:106:119;;;;1476:31:123;;;;;;;;178:106:119;1476:31:123;;;1421:102;178:106:119;;;;;;;;1476:47:123;;1421:102;;1476:31;;;178:106:119;1476:31:123;;178:106:119;1476:31:123;;;;;;178:106:119;1476:31:123;;;:::i;:::-;;;178:106:119;;;;;;;;;;;;1476:31:123;;;;;;-1:-1:-1;1476:31:123;;1421:34;;;178:106:119;1421:34:123;;178:106:119;1421:34:123;;;;;;178:106:119;1421:34:123;;;:::i;:::-;;;178:106:119;;;;;-1:-1:-1;;;;;178:106:119;;;;;;1421:34:123;;;;;;-1:-1:-1;1421:34:123;;178:106:119;;;;;;-1:-1:-1;;178:106:119;;;;1710:6:1;178:106:119;;;-1:-1:-1;;;;;178:106:119;;;;;;;;;;;;;;-1:-1:-1;;178:106:119;;;;1500:62:1;;:::i;:::-;3004:6;178:106:119;;-1:-1:-1;;;;;;178:106:119;;;;;;;-1:-1:-1;;;;;178:106:119;3052:40:1;178:106:119;;3052:40:1;178:106:119;;;;;;;-1:-1:-1;;178:106:119;;;;;;;;;;;;;;;;;;;-1:-1:-1;;178:106:119;;;;;;-1:-1:-1;;;;;178:106:119;;;;;;;;;;5238:14:42;178:106:119;;;;;;;5238:26:42;;178:106:119;;;;;;;;;;;;;;;;;:::o;:::-;;;2230:40:123;;178:106:119;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;178:106:119;;;;;-1:-1:-1;178:106:119;;;;;;;;;;;;;;-1:-1:-1;178:106:119;;;;;;;;-1:-1:-1;;178:106:119;;;;:::o;1165:129:123:-;178:106:119;;1250:27:123;178:106:119;;;;;;1250:27:123;-1:-1:-1;178:106:119;;;;-1:-1:-1;;;;;178:106:119;;1165:129:123:o;1796:162:1:-;1710:6;178:106:119;-1:-1:-1;;;;;178:106:119;735:10:23;1855:23:1;1851:101;;1796:162::o;1851:101::-;1901:40;;;-1:-1:-1;1901:40:1;735:10:23;1901:40:1;178:106:119;;-1:-1:-1;1901:40:1;178:106:119;;;;;;;;-1:-1:-1;178:106:119;;-1:-1:-1;178:106:119;;;-1:-1:-1;178:106:119;:::o;2538:406:42:-;178:106:119;;;5238:14:42;178:106:119;;;;;;5238:26:42;2617:321;2621:22;;;178:106:119;;-1:-1:-1;;;178:106:119;;;;;;5238:14:42;178:106:119;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:42;178:106:119;;;;;;5238:14:42;2873:11;:::o;2617:321::-;2915:12;178:106:119;2915:12:42;:::o;2538:406::-;178:106:119;;;5238:14:42;178:106:119;;;;;;5238:26:42;2617:321;2621:22;;;178:106:119;;-1:-1:-1;;;178:106:119;;;;;;5238:14:42;178:106:119;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:42;178:106:119;;;;;;5238:14:42;2873:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,bytes)":"cd108ef8","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","totalTypes()":"f15df2e5","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"type_\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalTypes\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given type is still deployable.\",\"params\":{\"type_\":\"type that was blacklisted\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given type will still be deployable.\",\"params\":{\"type_\":\"type to blacklist\"}},\"create(uint64,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"type_\":\"type's implementation to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"params\":{\"type_\":\"position to get the implementation at\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"totalTypes()\":{\"returns\":{\"_0\":\"total number of types\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a type is blacklisted (e.g., in case of invalid implementation).\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new type is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a type of entity.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a type is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given type.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"totalTypes()\":{\"notice\":\"Get the total number of whitelisted types.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new type of entity.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/SlasherFactory.sol\":\"SlasherFactory\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/Clones.sol\":{\"keccak256\":\"0x5a1847c0c6b92d60711f04cba9eaff572ae1f657cff1b8ca4ba065bcdbd68d8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://403f015277242179edf64150e044b4a18f6ee2cc5edaf6b067a7791545732ed9\",\"dweb:/ipfs/QmYoLCcvqZDofK8ZcvbQcv3Wj5HHku7nF8Y3pXx2efawJb\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Create2.sol\":{\"keccak256\":\"0xe06ddfff69f3ba154d92102d9a85db2780e045303a587360cf12195216e851ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac19cc390a227758c239c06d3a11d0a2c40c8f58eabb034154b661269d4a0851\",\"dweb:/ipfs/QmdSsfYsPX5RyAXSfHRvR5zdY9MffAgZVa3vdxQUypFBa5\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"src/contracts/SlasherFactory.sol\":{\"keccak256\":\"0xa2fa9e207f47a86c6f59bae0327f7db9b6df6a6fb6d4c0cdfd7f4412cf4bd9fc\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3b62c18938c595e514ed98deb7d7340c12644ebec2b4ddc18189f21701baf849\",\"dweb:/ipfs/QmNXVZPoYAJy4B1ncm2Qi5a9qdmPA95kifcAVGw1sfzTB1\"]},\"src/contracts/common/Factory.sol\":{\"keccak256\":\"0xae5fb573e2f8948397053196d49731b6149c57a9419b056532d5d130bb9581d7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a7cfe6b272398e5790165eebcdfb908edfe19871dccb5bab0d8b2a1134985763\",\"dweb:/ipfs/QmdFkfcNHiC9VwDezXPgQMFmEJHyVS6o3GRrSfhr8Zomx3\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6\",\"dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH\"]},\"src/interfaces/ISlasherFactory.sol\":{\"keccak256\":\"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220\",\"dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8\",\"dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU\"]},\"src/interfaces/common/IFactory.sol\":{\"keccak256\":\"0x8187a08243bdf52ab99f349fdfdc9adf34714a6176e8022a8979687b5bd8a1c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6528ca643908c924129728656b27b7eedf949ab964d5251591aaa2988865b93\",\"dweb:/ipfs/QmenDVpgUMP6aQ97jTK6HYzS82VEM4FhfHBtXNEjbHBiXA\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidType"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"type_","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalTypes","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given type will still be deployable.","params":{"type_":"type to blacklist"}},"create(uint64,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","type_":"type's implementation to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"params":{"type_":"position to get the implementation at"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"totalTypes()":{"returns":{"_0":"total number of types"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a type of entity."},"blacklisted(uint64)":{"notice":"Get if a type is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given type."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"totalEntities()":{"notice":"Get a total number of entities."},"totalTypes()":{"notice":"Get the total number of whitelisted types."},"whitelist(address)":{"notice":"Whitelist a new type of entity."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/","forge-std/=dependencies/forge-std-1.16.1/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/SlasherFactory.sol":"SlasherFactory"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/Clones.sol":{"keccak256":"0x5a1847c0c6b92d60711f04cba9eaff572ae1f657cff1b8ca4ba065bcdbd68d8b","urls":["bzz-raw://403f015277242179edf64150e044b4a18f6ee2cc5edaf6b067a7791545732ed9","dweb:/ipfs/QmYoLCcvqZDofK8ZcvbQcv3Wj5HHku7nF8Y3pXx2efawJb"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Create2.sol":{"keccak256":"0xe06ddfff69f3ba154d92102d9a85db2780e045303a587360cf12195216e851ca","urls":["bzz-raw://ac19cc390a227758c239c06d3a11d0a2c40c8f58eabb034154b661269d4a0851","dweb:/ipfs/QmdSsfYsPX5RyAXSfHRvR5zdY9MffAgZVa3vdxQUypFBa5"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"src/contracts/SlasherFactory.sol":{"keccak256":"0xa2fa9e207f47a86c6f59bae0327f7db9b6df6a6fb6d4c0cdfd7f4412cf4bd9fc","urls":["bzz-raw://3b62c18938c595e514ed98deb7d7340c12644ebec2b4ddc18189f21701baf849","dweb:/ipfs/QmNXVZPoYAJy4B1ncm2Qi5a9qdmPA95kifcAVGw1sfzTB1"],"license":"BUSL-1.1"},"src/contracts/common/Factory.sol":{"keccak256":"0xae5fb573e2f8948397053196d49731b6149c57a9419b056532d5d130bb9581d7","urls":["bzz-raw://a7cfe6b272398e5790165eebcdfb908edfe19871dccb5bab0d8b2a1134985763","dweb:/ipfs/QmdFkfcNHiC9VwDezXPgQMFmEJHyVS6o3GRrSfhr8Zomx3"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907","urls":["bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6","dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH"],"license":"BUSL-1.1"},"src/interfaces/ISlasherFactory.sol":{"keccak256":"0x30018af5c2719d9b5cfacbfc0277017896815b3fcc4dfbea78813e6ae81c1e56","urls":["bzz-raw://5e028fbed23ab973d8d9eb2be4e53a528dd01248e3233f56ab0f8ac9a7c9c220","dweb:/ipfs/Qmd9cHMRSE52ESmxMiu5gTBpRNmDHQK5q18f7UTj8DQke4"],"license":"MIT"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2","urls":["bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8","dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU"],"license":"MIT"},"src/interfaces/common/IFactory.sol":{"keccak256":"0x8187a08243bdf52ab99f349fdfdc9adf34714a6176e8022a8979687b5bd8a1c9","urls":["bzz-raw://a6528ca643908c924129728656b27b7eedf949ab964d5251591aaa2988865b93","dweb:/ipfs/QmenDVpgUMP6aQ97jTK6HYzS82VEM4FhfHBtXNEjbHBiXA"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"}},"version":1},"id":120} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Vault.json b/ethexe/ethereum/abi/Vault.json index d30f65874c0..2525bbb62a0 100644 --- a/ethexe/ethereum/abi/Vault.json +++ b/ethexe/ethereum/abi/Vault.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MathOverflowedMulDiv","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461013c57601f614b8b38819003918201601f1916830192916001600160401b03918285118486101761014057816060928592604097885283398101031261013c5761004c82610154565b916100648461005d60208401610154565b9201610154565b9260805260a0527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff82861c1661012b5780808316036100e7575b50505060c05251614a22908161016982396080518181816111a001526116d5015260a05181818161183e0152611d04015260c05181818161077001526109a30152f35b6001600160401b0319909116811790915582519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80806100a4565b845163f92ee8a960e01b8152600490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361013c5756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201a50e827895a2cd73f911caab81ce70f82197386d81e8f679668f87cbe90c41164736f6c63430008190033","sourceMap":"981:14960:95:-:0;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;3173:36:96;;;3219:32;;8837:64:25;981:14960:95;;;;;;;;;7896:76:25;;981:14960:95;;;;7985:34:25;7981:146;;-1:-1:-1;927:17:71;;;;;981:14960:95;;;;;;;3173:36:96;981:14960:95;;;;;;;;;;3219:32:96;981:14960:95;;;;;;;;;;927:17:71;981:14960:95;;;;;;;;;;;7981:146:25;-1:-1:-1;;;;;;981:14960:95;;;;;;;;;;;;;8087:29:25;;981:14960:95;;8087:29:25;7981:146;;;;;7896:76;981:14960:95;;-1:-1:-1;;;7938:23:25;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;;;;-1:-1:-1;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123a1565b6122fb565b6122ce565b61217f565b612162565b612128565b6120fd565b6120b1565b612089565b61201f565b612005565b611f27565b611f0d565b611ee5565b611ebb565b611dfa565b611c43565b611bfd565b611bb0565b611abd565b611a83565b611a69565b611a45565b61199b565b611961565b611903565b6118cf565b61186d565b611829565b611670565b611657565b6115f1565b6115ca565b61158a565b611570565b61152f565b61125b565b6111f4565b6111cf565b61118b565b611138565b61110e565b6110e7565b610faf565b610f7d565b610ee8565b610ecf565b610e72565b610e52565b610e31565b610b73565b610b4b565b610ab0565b610a6b565b610a20565b6109d2565b61098e565b61091a565b61072b565b61065d565b610635565b6105fc565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612bf5565b6001600160a01b038116156105eb57335f908152600e6020526040902061056790613c8a565b613c8a565b82116105d957610587610578613b9d565b610580613c16565b9084613cd7565b9182156105c4578261059892612c24565b906105af60015f805160206149ad83398151915255565b604080519182526020820192909252f35b0390f35b60405160016245ddc760e11b03198152600490fd5b604051632418411f60e11b8152600490fd5b6040516208978560e71b8152600490fd5b3461048a57602036600319011261048a576004355f525f8051602061498d8339815191526020526020600160405f200154604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761067561291a565b80156106d65760015465ffffffffffff8160a01c16915f1981019081116106d1576106a39160d01c906123fa565b81018091116106d1576106b86105c091612d9e565b60405165ffffffffffff90911681529081906020820190565b6123cb565b604051639fa56a5b60e01b8152600490fd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107446106e8565b6001600160401b0360243581811161048a576107649036906004016106fe565b505061076e612bf5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107ea575f805160206149cd833981519152549060ff8260401c169283156107da575b5050506107c8575f80fd5b60405163f92ee8a960e01b8152600490fd5b81169116101590505f80806107bd565b604051631966391b60e11b8152600490fd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083b57604052565b61080c565b604081019081106001600160401b0382111761083b57604052565b90601f801991011681019081106001600160401b0382111761083b57604052565b6040519061016082018281106001600160401b0382111761083b57604052565b604051906108a982610840565b565b6001600160401b03811161083b57601f01601f191660200190565b9291926108d2826108ab565b916108e0604051938461085b565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a57816020610917933591016108c6565b90565b3461048a57606036600319011261048a5760043561093781610502565b60243590610944826107fc565b604435906001600160401b03821161048a5760209261096a6109869336906004016108fc565b6001600160a01b039092165f908152600e855260409020612f8b565b604051908152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356109f582610502565b805f525f8051602061498d833981519152602052610a19600160405f200154613162565b613462565b005b3461048a57604036600319011261048a57602435610a3d81610502565b336001600160a01b03821603610a5957610a1e90600435613498565b60405163334bd91960e11b8152600490fd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a97575b6020906040519015158152f35b5060035460a01c60ff16610a8a565b8015150361048a57565b3461048a57602036600319011261048a57600435610acd81610aa6565b610ad5612bf5565b610add613057565b5f54901515908160ff8216151514610b395760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f805160206149ad83398151915255005b60405163a741a04560e01b8152600490fd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a5760408060031936011261048a576004803591610b9383610502565b610b9b612bf5565b6001600160a01b0391838316908115610e23575f5460ff811680610e0a575b610dfb5783516370a0823160e01b808252308483019081529096602093909160109190911c82169084908490819083010381845afa928315610dd3575f93610dd8575b50610c0f90602435903090339061352a565b5f5486519788523085890190815290979184918391908290819060200103918b60101c165afa908115610dd357610c4e935f92610da6575b50506123ed565b938415610d975760081c60ff1680610d82575b610d745750906105c091610d12610c76613b9d565b95610cbf610c82613c16565b610caa610c908a838b613cd7565b99610ca48a610c9e42612d9e565b9261241b565b9061367e565b5050610cb989610c9e42612d9e565b9061375e565b50506001600160a01b0381165f908152600e6020526040902090610d0c88610d07610562610cec42612d9e565b6001600160a01b039095165f908152600e6020526040902090565b61241b565b9161383a565b505081518481526020810186905233907fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d790604090a3610d5e60015f805160206149ad83398151915255565b5191825260208201929092529081906040820190565b8251632484557960e01b8152fd5b50610d8f84610d07613b9d565b815410610c61565b50825163070f6eed60e11b8152fd5b610dc59250803d10610dcc575b610dbd818361085b565b810190612449565b5f80610c47565b503d610db3565b612458565b610c0f919350610df490853d8711610dcc57610dbd818361085b565b9290610bfd565b5082516304f63b8560e01b8152fd5b50335f9081526005602052604090205460ff1615610bba565b8251630d534ce360e11b8152fd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eb0816107fc565b91602435906001600160401b03821161048a57610917916004016108fc565b3461048a576020610986610ee236610e97565b90612e01565b3461048a57602036600319011261048a57600435610f0581610aa6565b610f0d612bf5565b610f156130b4565b5f54901515908160ff8260081c16151514610b395761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a1610a1e60015f805160206149ad83398151915255565b3461048a575f36600319011261048a5760206001600160401b035f805160206149cd8339815191525416604051908152f35b3461048a57606036600319011261048a57610fc86106e8565b602435610fd481610502565b6001600160401b039160443583811161048a57610ff59036906004016106fe565b5f805160206149cd8339815191529491855494838616806110d65760ff8760401c169081156110c9575b506107c8577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2966110c49661108c958716906001600160401b0319161790556110875f805160206149cd833981519152600160401b68ff000000000000000019825416179055565b612463565b5f805160206149cd833981519152805468ff0000000000000000191690556040516001600160401b0390911681529081906020820190565b0390a1005b905084861611155f61101f565b60405162dc149f60e41b8152600490fd5b3461048a57602036600319011261048a57602061098660043561110981610502565b612883565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015465ffffffffffff61116e818360a01c169261116461291a565b9060d01c906123fa565b82018092116106d157611182602092612d9e565b60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761120c6139cc565b5f8051602061492d83398151915280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561127b816107fc565b611283612bf5565b6003546112a0906001600160a01b03165b6001600160a01b031690565b330361151d576112ae61291a565b906112b88161294e565b908215158061150c575b8015611503575b6114f1576105c0937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c7926112fb613b9d565b946113166113088261240d565b5f52600660205260405f2090565b549082810361140a575061132a818761241b565b6113348185613a04565b9687806113c3575b50505050505b8361138f575b6040805191825265ffffffffffff929092166020820152908101839052606090a161137f60015f805160206149ad83398151915255565b6040519081529081906020820190565b5f546113be9085906113ac9060101c6001600160a01b0316611294565b6001546001600160a01b031690613ab2565b611348565b6113ff93610c4783610ca46113e96113e2611308986113f99888613a20565b80966123ed565b946113f342612d9e565b926123ed565b9261240d565b555f8080808761133c565b915061141e825f52600660205260405f2090565b549061142e81610d07848a61241b565b906114398286613a04565b978861144a575b5050505050611342565b6114bf93836114729361147f8c61147a6114686114b0998884613a20565b9788958584613a20565b9485926123ed565b6123ed565b938484106114ca575b610c4790610ca461149e9596976113f342612d9e565b6114aa6113088761240d565b556123ed565b915f52600660205260405f2090565b555f80808080611440565b916114e6610c47916114e08661149e97986123ed565b9061241b565b859450929050611488565b604051635e18d2a560e01b8152600490fd5b508282116112c9565b50611516836123df565b82106112c2565b60405163dabc4ad960e01b8152600490fd5b3461048a575f36600319011261048a5760015465ffffffffffff808260a01c169161155861291a565b600181018091116106d15761116e9160d01c906123fa565b3461048a575f36600319011261048a57602061098661291a565b3461048a57602036600319011261048a576004356115a781610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a5760206109866004356115ec816107fc565b61294e565b3461048a57604036600319011261048a5760043561160e81610502565b6024356001600160401b0380821161048a573660238301121561048a57816004013590811161048a573660248260051b8401011161048a576105c092602461137f930190612989565b3461048a57602061098661166a36610e97565b90612ed6565b3461048a5760208060031936011261048a57600480359061169082610502565b611698612bf5565b60025460a01c60ff1661181a576040516302910f8b60e31b81526001600160a01b03838116838301908152909491908290829081906020010381887f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f916117ed575b50156117dd5760405163fbfa77cf60e01b8152838516949082818581895afa928315610dd3575f936117ae575b50503091160361179f5750600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1e60015f805160206149ad83398151915255565b60405163b9f0f17160e01b8152fd5b6117ce929350803d106117d6575b6117c6818361085b565b810190612ae2565b905f80611732565b503d6117bc565b506040516324e5af8d60e21b8152fd5b61180d9150823d8411611813575b611805818361085b565b810190612ac2565b5f611705565b503d6117fb565b604051631380833b60e01b8152fd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a5761188561291a565b61188d613b9d565b90805f52600660205260405f205482018092116106d157600181018091116106d1575f52600660205260405f205481018091116106d157602090604051908152f35b3461048a575f36600319011261048a575f8051602061492d833981519152546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61195560243561192781610502565b6004355f525f8051602061498d833981519152845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561197e81610502565b60018060a01b03165f52600e602052602061098660405f20613c8a565b3461048a57604036600319011261048a576004356119b881610502565b6024356001600160401b03811161048a575f916119da839236906004016106fe565b90816040519283928337810184815203915af4611a3d60806119fa612af7565b9260206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f8019910116810103606081018452018261085b565b805190602001fd5b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611ada81610502565b602435611ae681610aa6565b611aee612bf5565b611af661310b565b6001600160a01b038216918215611b9e575f8381526005602052604090205460ff16151582151514610b39576001600160a01b03165f9081526005602052604090207ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291611b8591611b73908260ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1e60015f805160206149ad83398151915255565b604051630da30f6560e31b8152600490fd5b3461048a57604036600319011261048a576020611bf4602435611bd281610502565b6004355f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611955602435611c2181610502565b6004355f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a5760208060031936011261048a576004803590611c6382610502565b611c6b612bf5565b60035460a01c60ff16611deb576001600160a01b03828116939084611cd9575b6003805460ff60a01b1916600160a01b179055847fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1e60015f805160206149ad83398151915255565b6040516302910f8b60e31b81526001600160a01b0385168482019081528390829081906020010381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610dd3575f91611dce575b5015611dbd5760405163fbfa77cf60e01b815282818581895afa928315610dd3575f93611d9e575b505030911603611d8f5750600380546001600160a01b0319166001600160a01b039092169190911790555f808080611c8b565b604051633f3e089160e21b8152fd5b611db5929350803d106117d6576117c6818361085b565b905f80611d5c565b60405163dabc4ad960e01b81528390fd5b611de59150833d851161181357611805818361085b565b5f611d34565b60405163703fe2e560e01b8152fd5b3461048a57604036600319011261048a57600435611e1781610502565b60243590611e23612bf5565b6001600160a01b0391818316908115611ea957611e546105c094611e4683613b01565b9485915f5460101c16613ab2565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f805160206149ad833981519152556040519081529081906020820190565b604051634e46966960e11b8152600490fd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a576020610986613b9d565b3461048a57602036600319011261048a57600435611f43612bf5565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020547f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792339060ff1615611fe757508060045414610b39576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f805160206149ad83398151915255005b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3461048a575f36600319011261048a576020610986613c16565b3461048a57602036600319011261048a5760043561203c81610502565b61204461291a565b61204d82612883565b916120588183612b97565b83018093116106d157600182018092116106d15761207591612b97565b81018091116106d157602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a1e6024356004356120d482610502565b805f525f8051602061498d8339815191526020526120f8600160405f200154613162565b613498565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a5760043561219c81610502565b602435906121a9826107fc565b6001600160401b039160443583811161048a576121ca9036906004016106fe565b909260409384516121da81610820565b60608152606060208201526060868201529280612239575b6105c08661222a878761222461220b8984845191612428565b928561221b602085015183612ed6565b93015190612e01565b91613cd7565b90519081529081906020820190565b810193925060208185031261048a5780359086821161048a57019260608482031261048a5784519561226a87610820565b843581811161048a578261227f9187016108fc565b8752602085013581811161048a57826122999187016108fc565b60208801528585013590811161048a576105c0966122c26122249361220b9361222a98016108fc565b878201529394506121f2565b3461048a57602036600319011261048a57610a1e6004356122ee81610502565b6122f66139cc565b612b26565b3461048a57604036600319011261048a5760043561231881610502565b602435612323612bf5565b6001600160a01b038216156105eb57801561238f57612352612343613c16565b61234b613b9d565b9083614121565b335f908152600e6020526040902090929061236c90613c8a565b831161237d57610598918391612c24565b6040516321727a3760e11b8152600490fd5b604051636c6c627d60e11b8152600490fd5b3461048a57604036600319011261048a5760206109866024356123c381610502565b600435612b97565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116106d157565b919082039182116106d157565b818102929181159184041417156106d157565b90600182018092116106d157565b919082018092116106d157565b6001600160a01b03165f908152600e60205260409020610917929190612f8b565b9081602091031261048a575190565b6040513d5f823e3d90fd5b916124b5916124a691612474614268565b61247c614268565b60015f805160206149ad833981519152556001600160a01b0394808616612869575b5036916108c6565b60208082518301019101613903565b805182166001600160a01b03161561285757604080820165ffffffffffff6124e3825165ffffffffffff1690565b16156128465760c083018051909290612504906001600160a01b0316611294565b156126f7575b5091612643610140926125e26125bd6126a196612558612530875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125b161258842612d9e565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126026125f26060850151151590565b60ff80195f541691151516175f55565b6126296126126080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61263660a0840151600455565b516001600160a01b031690565b8481166126e7575b5060e08101516001600160a01b03168481166126d7575b506101008101516001600160a01b03168481166126c7575b506101208101516001600160a01b03168481166126b7575b5001516001600160a01b031690565b9081166126ab5750565b6126b4906133f3565b50565b6126c090613384565b505f612692565b6126d090613315565b505f61267a565b6126e09061323f565b505f612662565b6126f09061318e565b505f61264b565b60e084015161270e906001600160a01b0316611294565b156127e3575b61012084015161272c906001600160a01b0316611294565b61250a576080840151156127995760a0840151158061277a575b61276a575091612643610140926125e26125bd6126a1965b9496505050925061250a565b5163183c854560e21b8152600490fd5b50610140840151612793906001600160a01b0316611294565b15612746565b60a0840151158015906127c3575b61276a575091612643610140926125e26125bd6126a19661275e565b506101408401516127dc906001600160a01b0316611294565b15156127a7565b60608401511561281957610100840151612805906001600160a01b0316611294565b612714575163183c854560e21b8152600490fd5b610100840151612831906001600160a01b0316611294565b15612714575163183c854560e21b8152600490fd5b81516368f5f8f160e11b8152600490fd5b6040516368f7a67560e11b8152600490fd5b61287d90612875614268565b6122f6614268565b5f61249e565b6001600160a01b03165f908152600e602052604090206128a290613c8a565b6128aa613b9d565b6128b2613c16565b90600181018091116106d157600182018092116106d15761091792613a20565b65ffffffffffff91821690821603919082116106d157565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff80911691821561291557160490565b6128ea565b61292342612d9e565b61294a60015461294065ffffffffffff93848360a01c16906128d2565b9060d01c906128fe565b1690565b6001549065ffffffffffff91828160a01c169182848216106129775761294a92612940916128d2565b60405163b7d0949760e01b8152600490fd5b90612992612bf5565b5f926001600160a01b038316928315611ea9578115612a4a575f5b828110612a2857505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d2792869290916129fd9184916129f89060101c6001600160a01b0316611294565b613ab2565b612a0e604051928392339684612a85565b0390a3906108a960015f805160206149ad83398151915255565b94612a436001916114e0612a3d898789612a70565b35613b01565b95016129ad565b60405163edf3b93360e01b8152600490fd5b634e487b7160e01b5f52603260045260245ffd5b9190811015612a805760051b0190565b612a5c565b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b51906108a982610aa6565b9081602091031261048a575161091781610aa6565b51906108a982610502565b9081602091031261048a575161091781610502565b3d15612b21573d90612b08826108ab565b91612b16604051938461085b565b82523d5f602084013e565b606090565b6001600160a01b03908116908115612b7f575f8051602061492d83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b604051631e4fbdf760e01b81525f6004820152602490fd5b90612bbd90825f52600860205260405f209060018060a01b03165f5260205260405f2090565b54905f52600660205260405f2054600760205260405f205490600181018091116106d157600182018092116106d15761091792613a20565b5f805160206149ad8339815191526002815414612c125760029055565b604051633ee5aeb560e01b8152600490fd5b335f908152600e6020526040902093929190612c3f42612d9e565b335f908152600e60205260409020612c5690613c8a565b918483039283116106d157612c917febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d1c9961383a565b5050612cab612c9f42612d9e565b610cb98761147a613c16565b5050612cc5612cb942612d9e565b610ca48461147a613b9d565b5050612d6a81612d55612cde612cd961291a565b61240d565b612d34612cf3825f52600660205260405f2090565b54612d06835f52600760205260405f2090565b54612d1282828b613cd7565b9d8e998a9361241b565b612d2e855f52600660205260405f2090565b5561241b565b612d46825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d7583825461241b565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff90818111612db1571690565b604490604051906306dfcc6560e41b8252603060048301526024820152fd5b9081602091031261048a575163ffffffff8116810361048a5790565b90600163ffffffff809316019182116106d157565b90805115612ecc5780602080612e1c93518301019101612dd0565b612e2581613f48565b90612e36825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612e6c575b5050612e63575061091790613cf8565b60209150015190565b909150612e7a600a546123df565b63ffffffff831614918215612e93575b50505f80612e53565b612eb89192506125b1612ea8612ead92612dec565b613f48565b65ffffffffffff1690565b115f80612e8a565b50505060209150015190565b5061091790613cf8565b90805115612f815780602080612ef193518301019101612dd0565b612efa81613fcd565b90612f0b825165ffffffffffff1690565b9065ffffffffffff8085169216828114612ec05782119182612f38575b5050612e63575061091790613dbf565b909150612f46600c546123df565b63ffffffff831614918215612f5f575b50505f80612f28565b612f799192506125b1612f74612ead92612dec565b613fcd565b115f80612f56565b5061091790613dbf565b9180511561304d5780602080612fa693518301019101612dd0565b91612fb18382614048565b92612fc2845165ffffffffffff1690565b9065ffffffffffff80851692168281146130415782119182612ff8575b5050612fef576109179250613e7f565b50506020015190565b90915061300583546123df565b63ffffffff83161491821561301e575b50505f80612fdf565b6130399192506125b1613033612ead92612dec565b85614048565b115f80613015565b50505050506020015190565b5061091791613e7f565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0239060ff905b541615611fe75750565b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac9060ff906130aa565b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e069060ff906130aa565b5f8181525f8051602061498d83398151915260209081526040808320338452909152902060ff906130aa565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020545f8051602061498d8339815191529060ff16613239575f808052602091825260408082206001600160a01b038516835290925220805460ff1916600117905533906001600160a01b03165f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b50505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090207fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c023905f8051602061498d8339815191529060ff905b541661330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916600117905533916001600160a01b0316907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b5050505f90565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090207f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e06905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090207fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac905f8051602061498d8339815191529060ff906132aa565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090207f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb79233905f8051602061498d8339815191529060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b038716855290915290912060ff906132aa565b5f8181525f8051602061498d833981519152602081815260408084206001600160a01b03871685529091529091205460ff161561330e575f828152602091825260408082206001600160a01b038616835290925220805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761083b576108a9926040526140b0565b600b54811015612a8057600b5f525f8051602061496d83398151915201905f90565b600d54811015612a8057600d5f525f8051602061494d83398151915201905f90565b8054821015612a80575f5260205f2001905f90565b600d54600160401b81101561083b576001810180600d55811015612a8057600d5f525f8051602061494d8339815191520155565b600b54600160401b81101561083b576001810180600b55811015612a8057600b5f525f8051602061496d8339815191520155565b90815491600160401b83101561083b57826136669160016108a9950181556135c6565b90919082549060031b91821b915f19901b1916179055565b919091600d9081548015613729575b50613696614185565b509290918154926136a5613b9d565b9481613714575b50156136f157505f1982018281116106d15781541115612a80575f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b613705926001600160d01b0316915061439f565b5050613710836135db565b9190565b65ffffffffffff83811691161490505f6136ac565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061494d83398151915201555f61368d565b919091600b9081548015613805575b506137766141f0565b50929091815492613785613c16565b94816137f0575b50156137d157505f1982018281116106d15781541115612a80575f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b6137e5926001600160d01b0316915061449f565b50506137108361360f565b65ffffffffffff83811691161490505f61378c565b600160401b81101561083b5760018101808455811015612a80575f908382525f8051602061496d83398151915201555f61376d565b909291926001820190815480156138c8575b50846138578461423a565b5094909284549361386783613c8a565b96816138b3575b5015613890575050505f1981019081116106d1576136668591613710936135c6565b6137109492936138ac926001600160d01b039091169190614549565b5050613643565b65ffffffffffff83811691161490505f61386e565b600160401b81101561083b578060016138e492018455836135c6565b8154905f199060031b1b191690555f61384c565b51906108a9826107fc565b908161016091031261048a5761391761087c565b9061392181612ad7565b825261392f60208201612ad7565b6020830152613940604082016138f8565b604083015261395160608201612ab7565b606083015261396260808201612ab7565b608083015260a081015160a083015261397d60c08201612ad7565b60c083015261398e60e08201612ad7565b60e08301526101006139a1818301612ad7565b908301526101206139b3818301612ad7565b908301526139c5610140809201612ad7565b9082015290565b5f8051602061492d833981519152546001600160a01b031633036139ec57565b60405163118cdaa760e01b8152336004820152602490fd5b9080821015613a11575090565b905090565b8115612915570490565b9091828202915f1984820993838086109503948086039514613aa55784831115613a9357829109815f038216809204600280826003021880830282030280830282030280830282030280830282030280830282030280920290030293600183805f03040190848311900302920304170290565b60405163227bc15360e01b8152600490fd5b5050906109179250613a16565b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815260808101916001600160401b0383118284101761083b576108a9926040526140b0565b90613b0a61291a565b821015613b8b575f82815260096020908152604080832033845290915290205460ff16613b7957613b3b3383612b97565b918215613b67575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6040516366c0bcbf60e11b8152600490fd5b604051630c8d9eab60e31b8152600490fd5b60405163d5b25b6360e01b8152600490fd5b600c5480613bdd57505f5b6001600160d01b03811615613bd857600d54811015612a8057600d5f525f8051602061494d833981519152015490565b505f90565b805f198101116106d157600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ba8565b600a5480613c5157505f5b6001600160d01b03811615613bd857600b54811015612a8057600b5f525f8051602061496d833981519152015490565b805f198101116106d157600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613c21565b805480613cb957505f5b6001600160d01b03811615613239576001613caf92016135c6565b90549060031b1c90565b5f199080828101116106d157825f5260205f2001015460301c613c94565b9190600181018091116106d157600182018092116106d15761091792613a20565b600a54905f829160058411613d66575b613d129350614755565b80613d3557505f5b6001600160d01b03811615613bd857613caf61091791613582565b613d5a613d44613d61926123df565b600a5f525f8051602061490d8339815191520190565b5460301c90565b613d1a565b9192613d718161461c565b81039081116106d157613d1293600a5f5265ffffffffffff80835f8051602061490d833981519152015416908516105f14613dad575091613d08565b929150613db99061240d565b90613d08565b600c54905f829160058411613e26575b613dd993506147be565b80613dfc57505f5b6001600160d01b03811615613bd857613caf610917916135a4565b613d5a613e0b613e21926123df565b600c5f525f805160206148ed8339815191520190565b613de1565b9192613e318161461c565b81039081116106d157613dd993600c5f5265ffffffffffff80835f805160206148ed833981519152015416908516105f14613e6d575091613dcf565b929150613e799061240d565b90613dcf565b908154905f829160058411613ee2575b613e9a935084614827565b80613ec257505f905b6001600160d01b0382161561323957610917916001613caf92016135c6565b613d5a613ed1613edc926123df565b835f5260205f200190565b90613ea3565b9192613eed8161461c565b81039081116106d157613e9a93855f5265ffffffffffff808360205f20015416908516105f14613f1e575091613e8f565b929150613f2a9061240d565b90613e8f565b60405190613f3d82610840565b5f6020838281520152565b613f50613f30565b50613f59613f30565b50600a54811015612a8057613f8090600a5f525f8051602061490d83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600b54811015612a8057600b5f525f8051602061496d833981519152015460405191613fc383610840565b8252602082015290565b613fd5613f30565b50613fde613f30565b50600c54811015612a805761400590600c5f525f805160206148ed83398151915201614161565b65ffffffffffff81511690602060018060d01b0391015116600d54811015612a8057600d5f525f8051602061494d833981519152015460405191613fc383610840565b9061407161406b6140929261405b613f30565b50614064613f30565b50846135c6565b50614161565b91600165ffffffffffff845116936020828060d01b039101511691016135c6565b905490604051926140a284610840565b835260031b1c602082015290565b5f806140d89260018060a01b03169360208151910182865af16140d1612af7565b9083614889565b8051908115159182614106575b50506140ee5750565b60249060405190635274afe760e01b82526004820152fd5b6141199250602080918301019101612ac2565b155f806140e5565b9190600181018091116106d157600182018092116106d157614144828285613a20565b92821561291557096141535790565b600181018091116106d15790565b9060405161416e81610840565b915465ffffffffffff8116835260301c6020830152565b600c548061419657505f905f905f90565b805f198101116106d1577fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c66141cf91600c5f5201614161565b9065ffffffffffff82511691602060018060d01b0391015116906001929190565b600a548061420157505f905f905f90565b805f198101116106d1577fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a76141cf91600a5f5201614161565b80548061424b5750505f905f905f90565b5f199080828101116106d1576141cf925f5260205f200101614161565b60ff5f805160206149cd8339815191525460401c161561428457565b604051631afcd79f60e31b8152600490fd5b600c5490600160401b82101561083b576001820180600c55821015612a8057600c5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f805160206148ed83398151915290910155565b600a5490600160401b82101561083b576001820180600a55821015612a8057600a5f52805160209091015160301b65ffffffffffff191665ffffffffffff91909116175f8051602061490d83398151915290910155565b8054600160401b81101561083b57614361916001820181556135c6565b61438c57815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b600c54919291908115614476576143c06143bb613e0b846123df565b614161565b805165ffffffffffff83811694911684106144645785602093613710956143f0612ead865165ffffffffffff1690565b0361442c5750614405613e0b61441e936123df565b9065ffffffffffff82549181199060301b169116179055565b01516001600160d01b031690565b905061445f915061444c61443e61089c565b65ffffffffffff9092168252565b6001600160d01b03871681850152614296565b61441e565b604051632520601d60e01b8152600490fd5b61449a915061448661443e61089c565b6001600160d01b0384166020820152614296565b5f9190565b600a54919291908115614525576144bb6143bb613d44846123df565b805165ffffffffffff83811694911684106144645785602093613710956144eb612ead865165ffffffffffff1690565b036145005750614405613d4461441e936123df565b905061445f915061451261443e61089c565b6001600160d01b038716818501526142ed565b61449a915061453561443e61089c565b6001600160d01b03841660208201526142ed565b8054929392919082156145f8576145656143bb613ed1856123df565b90614576825165ffffffffffff1690565b65ffffffffffff84811691168110614464576137109460209488926145a4612ead875165ffffffffffff1690565b036145c5575061441e926145ba614405926123df565b905f5260205f200190565b91505061445f916145e56145d761089c565b65ffffffffffff9093168352565b6001600160d01b03881682860152614344565b61449a92506146086145d761089c565b6001600160d01b0385166020830152614344565b8015613bd857806146ee6146e76146dd6146d36146c96146bf6146b56146ab60016109179a5f908b60801c80614749575b508060401c8061473c575b508060201c8061472f575b508060101c80614722575b508060081c80614715575b508060041c80614708575b508060021c806146fb575b50821c6146f4575b811c1b6146a4818b613a16565b0160011c90565b6146a4818a613a16565b6146a48189613a16565b6146a48188613a16565b6146a48187613a16565b6146a48186613a16565b6146a48185613a16565b8092613a16565b90613a04565b8101614697565b600291509101905f61468f565b600491509101905f614684565b600891509101905f614679565b601091509101905f61466e565b602091509101905f614663565b604091509101905f614658565b9150506080905f61464d565b905b82811061476357505090565b9091808216906001818418811c83018093116106d157600a5f5265ffffffffffff80845f8051602061490d833981519152015416908616105f146147ab575050915b90614757565b9093925081018091116106d157906147a5565b905b8281106147cc57505090565b9091808216906001818418811c83018093116106d157600c5f5265ffffffffffff80845f805160206148ed833981519152015416908616105f14614814575050915b906147c0565b9093925081018091116106d1579061480e565b91905b8382106148375750505090565b909192808316906001818518811c83018093116106d157855f5265ffffffffffff808460205f20015416908516105f14614876575050925b919061482a565b9094935081018091116106d1579161486f565b906148b0575080511561489e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806148e3575b6148c1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156148b956fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db902dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212201a50e827895a2cd73f911caab81ce70f82197386d81e8f679668f87cbe90c41164736f6c63430008190033","sourceMap":"981:14960:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3551:47:23;;;:87;;;;981:14960:95;;;;;;;;;;3551:87:23;-1:-1:-1;;;1133:40:29;;-1:-1:-1;3551:87:23;;;981:14960:95;-1:-1:-1;981:14960:95;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;966:38:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;821:37:96;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;5525:21;5521:75;;5634:10;981:14960;;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:24::-;:33;:::i;:::-;5610:35:95;;5606:88;;1057:70:87;5173:21:96;;:::i;:::-;4803:22;;:::i;:::-;1057:70:87;;;:::i;:::-;5801:20:95;;;5797:82;;5904:43;;;;:::i;:::-;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;;;;;;5797:82;981:14960;;-1:-1:-1;;;;;;5844:24:95;;981:14960;;5844:24;5606:88;981:14960;;-1:-1:-1;;;5668:15:95;;981:14960;;5668:15;5521:75;981:14960;;-1:-1:-1;;;5569:16:95;;981:14960;;5569:16;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;4919:24:23;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;4084:14:96;;:::i;:::-;4112:10;;4108:65;;4190:17;981:14960:95;;;;;;;;;;;;;;;;4210:27:96;981:14960:95;;;4210:27:96;;:::i;:::-;981:14960:95;;;;;;;4189:60:96;981:14960:95;4189:60:96;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;;;:::i;4108:65:96:-;981:14960:95;;-1:-1:-1;;;4145:17:96;;981:14960:95;;4145:17:96;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;;;:::i;:::-;1673:7:71;-1:-1:-1;;;;;981:14960:95;1659:10:71;:21;1655:71;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;6431:44:25;;;;;981:14960:95;6427:105:25;;;;;-1:-1:-1;15924:8:95;;6427:105:25;981:14960:95;;-1:-1:-1;;;6498:23:25;;981:14960:95;;6498:23:25;6431:44;981:14960:95;;;;6450:25:25;;;-1:-1:-1;6431:44:25;;;;;1655:71:71;981:14960:95;;-1:-1:-1;;;1703:12:71;;981:14960:95;;1703:12:71;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;5383:59:96;981:14960:95;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;-1:-1:-1;981:14960:95;;;5383:15:96;981:14960:95;;;;;5383:59:96;:::i;:::-;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;655:32:71;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;5350:25:23;981:14960:95;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;3202:4:23;4919:24;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;3202:4:23;:::i;:::-;5350:25;:::i;:::-;981:14960:95;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;966:10:27;-1:-1:-1;;;;;981:14960:95;;6441:34:23;6437:102;;6549:37;981:14960:95;;;6549:37:23;:::i;6437:102::-;981:14960:95;;-1:-1:-1;;;6498:30:23;;981:14960:95;;6498:30:23;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;1524:22;981:14960;;;;1524:46;;;981:14960;;;;;;;;;;;1524:46;-1:-1:-1;1550:20:95;981:14960;;;;;1524:46;;981:14960;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;;;;;9542:26;9538:76;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;;;9665:27;;981:14960;;9665:27;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;9538:76;981:14960;;-1:-1:-1;;;9591:12:95;;981:14960;;9591:12;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;1718:31:96;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;3474:24;;3470:81;;-1:-1:-1;981:14960:95;;;;3565:55;;;981:14960;3561:118;;981:14960;;-1:-1:-1;;;3713:43:95;;;3750:4;3713:43;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;3713:43;;;;;;;;;;-1:-1:-1;3713:43:95;;;981:14960;;3829:6;981:14960;;;3750:4;;3802:10;;3829:6;;:::i;:::-;-1:-1:-1;981:14960:95;;;3864:43;;;3750:4;3864:43;;;981:14960;;;;;;;;;;3864:43;981:14960;;;;;;3864:43;981:14960;;;;;3864:43;;;;;;;:59;:43;-1:-1:-1;3864:43:95;;;981:14960;3864:59;;;:::i;:::-;3938:20;;;3934:79;;981:14960;;;;;4027:64;;981:14960;4023:123;;5173:21:96;;981:14960:95;5173:21:96;4502:93:95;5173:21:96;;:::i;:::-;4803:22;4426:66:95;4803:22:96;;:::i;:::-;4349:67:95;390:70:87;;;;;:::i;:::-;837:15:62;4385:30:95;837:15:62;819:34;837:15;819:34;:::i;:::-;4385:30:95;;:::i;:::-;4349:67;;:::i;:::-;837:15:62;;4463:28:95;837:15:62;819:34;837:15;819:34;:::i;4463:28:95:-;4426:66;;:::i;:::-;-1:-1:-1;;;;;;;981:14960:95;;;;;;5606:15:96;981:14960:95;;;;;837:15:62;4553:41:95;837:15:62;5606:33:96;:24;819:34:62;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;5606:15:96;981:14960:95;;;;;;;5606:33:96;4553:41:95;:::i;:::-;4502:93;;:::i;:::-;-1:-1:-1;;981:14960:95;;;;;;;;;;;3802:10;;4611:62;;981:14960;;4611:62;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;;;;;;;4023:123;981:14960;;-1:-1:-1;;;4114:21:95;;;4027:64;5173:21:96;4045:31:95;5173:21:96;;;:::i;4045:31:95:-;981:14960;;-1:-1:-1;4027:64:95;;3934:79;-1:-1:-1;981:14960:95;;-1:-1:-1;;;3981:21:95;;;3864:43;;;;;;-1:-1:-1;3864:43:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;3713:::-;3829:6;3713:43;;;;;;;;;;;;;;;:::i;:::-;;;;;3561:118;-1:-1:-1;981:14960:95;;-1:-1:-1;;;3643:25:95;;;3565:55;-1:-1:-1;3609:10:95;981:14960;;;;3586:22;981:14960;;;;;;;;3585:35;3565:55;;3470:81;981:14960;;-1:-1:-1;;;3521:19:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;1805:27:96;981:14960:95;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;1968:34:96;981:14960:95;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;:::i;:::-;;;;;4622:48:96;981:14960:95;;;:::i;:::-;4622:48:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;;;;;;;10370:24;10366:74;;-1:-1:-1;;981:14960:95;;;;;;;;-1:-1:-1;981:14960:95;;;;;;10489:25;;981:14960;;10489:25;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;;;;;;;;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;8837:64:25;;981:14960:95;;;;;;734:29:71;730:87;;981:14960:95;;;;;6431:44:25;;;;;981:14960:95;6427:105:25;;;6656:20;981:14960:95;6656:20:25;981:14960:95;1167:340:71;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;6575:22:25;-1:-1:-1;;;;;;;;;;;;;;981:14960:95;;;;;;;;;6575:22:25;1167:340:71;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;981:14960:95;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;6656:20:25;;;;981:14960:95;6431:44:25;981:14960:95;;;;;-1:-1:-1;6450:25:25;6431:44;;;730:87:71;981:14960:95;;-1:-1:-1;;;786:20:71;;981:14960:95;;786:20:71;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;2431:59:96;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;3875:17:96;981:14960:95;;3895:30:96;981:14960:95;;;;;3895:14:96;;;:::i;:::-;981:14960:95;;;3895:30:96;;:::i;:::-;981:14960:95;;;;;;;3874:63:96;981:14960:95;3874:63:96;;:::i;:::-;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;1200:42:96;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;2136:32:96;981:14960:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;2303:62:24;;:::i;:::-;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;;-1:-1:-1;;;;;981:14960:95;3975:40:24;981:14960:95;;3975:40:24;981:14960:95;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;7131:7:95;981:14960;7117:21;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;7117:21;:10;:21;7113:71;;7218:14;;:::i;:::-;7265:25;;;;:::i;:::-;7305:17;;;;:53;;;981:14960;7304:87;;;;981:14960;7300:146;;981:14960;5173:21:96;9310:48:95;5173:21:96;;;:::i;:::-;7540:17:95;7528:30;7540:17;;;:::i;:::-;981:14960;;7528:11;981:14960;;;;;;;7528:30;981:14960;;7572:29;;;;;7642:30;;;;;:::i;:::-;7702:32;;;;:::i;:::-;7752:17;;;7748:384;;7568:1615;;;;;;;9197:17;9193:102;;7568:1615;981:14960;;;;;;;;;;;;;;;;;;;;;;;9310:48;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;3282:1;981:14960:95;;;;;;;;;;;;;9193:102;-1:-1:-1;981:14960:95;9270:13;;981:14960;;9230:18;;981:14960;;-1:-1:-1;;;;;981:14960:95;;;9230:18;7556:1;981:14960;-1:-1:-1;;;;;981:14960:95;9270:13;;:::i;:::-;9193:102;;7748:384;8045:29;7813:50;7962:65;7813:50;7998:28;7914:29;7813:50;8057:16;7813:50;8077:40;7813:50;;;:::i;:::-;7914:29;;;:::i;:::-;837:15:62;819:34;837:15;819:34;:::i;:::-;7998:28:95;;:::i;8077:40::-;8057:16;;:::i;8045:29::-;981:14960;7748:384;;;;;;;7568:1615;8185:26;;;;981:14960;;7528:11;981:14960;;;;;;;8185:26;981:14960;8250:27;:45;:27;;;;;:::i;:45::-;8325:32;;;;;:::i;:::-;8375:17;;8371:802;;7568:1615;;;;;;;;8371:802;9096:26;8436:50;;8537:53;8436:50;8637:54;8436:50;8637:29;8436:50;9125:33;8436:50;;;;:::i;:::-;8537:53;;;;;;:::i;:::-;8637:29;;;;:::i;:::-;:54;:::i;:::-;8714:33;;;;8710:194;;8371:802;8922:65;837:15:62;8958:28:95;9038:40;837:15:62;;;819:34;837:15;819:34;:::i;9038:40:95:-;9005:30;9017:17;;;:::i;9005:30::-;981:14960;9125:33;:::i;:::-;9096:26;981:14960;;7528:11;981:14960;;;;;;;9096:26;981:14960;8371:802;;;;;;;8710:194;8797:33;8771:59;8922:65;8797:33;;;9038:40;8797:33;;;:::i;:::-;8771:59;;:::i;:::-;8852:33;;-1:-1:-1;8852:33:95;;-1:-1:-1;8710:194:95;;7300:146;981:14960;;-1:-1:-1;;;7414:21:95;;981:14960;;7414:21;7304:87;7363:28;;;;7304:87;;7305:53;7341:17;;;;:::i;:::-;7326:32;;7305:53;;7113:71;981:14960;;-1:-1:-1;;;7161:12:95;;981:14960;;7161:12;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;4384:17:96;981:14960:95;;;;;;;4405:14:96;;;:::i;:::-;4384:17;981:14960:95;;;;;;;4404:36:96;981:14960:95;;;4404:36:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:95;2307:68:96;981:14960:95;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:14;981:14960;;6491:14;;:::i;981:14960::-;;;;;4994:47:96;981:14960:95;;;:::i;:::-;4994:47:96;;:::i;981:14960:95:-;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;10932:22:95;981:14960;;;;;10928:89;;981:14960;;-1:-1:-1;;;11032:49:95;;-1:-1:-1;;;;;981:14960:95;;;11032:49;;;981:14960;;;;;;;;;;;;;;;11032:49;11042:17;;;981:14960;11032:49;;;;;;;-1:-1:-1;11032:49:95;;;981:14960;11031:50;;11027:102;;981:14960;;-1:-1:-1;;;11143:34:95;;981:14960;;;;;11143:34;981:14960;11143:34;981:14960;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;981:14960;11189:4;;;981:14960;;11143:51;11139:107;;-1:-1:-1;10932:22:95;981:14960;;-1:-1:-1;;;;;981:14960:95;;;;-1:-1:-1;;;;;;981:14960:95;;;;;;;-1:-1:-1;;;981:14960:95;;;11334:24;-1:-1:-1;;11334:24:95;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;11139:107:95;981:14960;;-1:-1:-1;;;11217:18:95;;;11143:34;;;;;;;-1:-1:-1;11143:34:95;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;11027:102;-1:-1:-1;981:14960:95;;-1:-1:-1;;;11104:14:95;;;11032:49;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10928:89;981:14960;;-1:-1:-1;;;10977:29:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;1298:40:96;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;1703:14;;:::i;:::-;5173:21:96;;:::i;:::-;981:14960:95;;;;1750:11;981:14960;;;;;;;;;;;;;1791:1;981:14960;;;;;;;;;1750:11;981:14960;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;3901:31:23;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;3901:31:23;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;981:14960:95;5606:15:96;981:14960:95;;;5606:33:96;981:14960:95;-1:-1:-1;981:14960:95;5606:33:96;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:75;;;;477:31;981:14960:95;416:25:75;;:::i;:::-;981:14960:95;;;;;;;;;477:31:75;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;477:31:75;981:14960:95;477:31:75;;;;;;;:::i;:::-;518:79;;;981:14960:95;518:79:75;;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;1109:35:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;3202:4:23;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;9907:21;;9903:75;;-1:-1:-1;981:14960:95;;;9992:22;981:14960;;;;;;;;;;;;;9992:41;9988:91;;-1:-1:-1;;;;;981:14960:95;;;;;3586:22;981:14960;;;;;10145:44;;;;10089:40;;:31;981:14960;;;;;;;;;;;;;;10089:40;981:14960;;;;;;;;;;;;;;;10145:44;;;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;9903:75:95;981:14960;;-1:-1:-1;;;9951:16:95;;981:14960;;9951:16;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;2666:94:96;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;2666:94:96;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;2666:94:96;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;2816:92:96;981:14960:95;;;;;:::i;:::-;;;-1:-1:-1;981:14960:95;2816:92:96;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3217:103:28;;:::i;:::-;11459:20:95;981:14960;;;;;11455:85;;-1:-1:-1;;;;;981:14960:95;;;;;;11550:312;;981:14960;11459:20;981:14960;;-1:-1:-1;;;;981:14960:95;-1:-1:-1;;;981:14960:95;;;11872:27;11915:20;-1:-1:-1;11915:20:95;;3282:1:28;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;11550:312:95;981:14960;;-1:-1:-1;;;11597:45:95;;-1:-1:-1;;;;;981:14960:95;;11597:45;;;981:14960;;;11597:45;;981:14960;;;;;;11597:45;11607:15;;;981:14960;11597:45;;;;;;;-1:-1:-1;11597:45:95;;;11550:312;11596:46;;11592:104;;981:14960;;-1:-1:-1;;;11714:30:95;;;981:14960;11714:30;981:14960;11714:30;;;;;;;;-1:-1:-1;11714:30:95;;;11550:312;11756:4;;;981:14960;;11714:47;11710:109;;-1:-1:-1;11459:20:95;981:14960;;-1:-1:-1;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;;;;;;11550:312;;;;;;11710:109;981:14960;;-1:-1:-1;;;11788:16:95;;;11714:30;;;;;;;-1:-1:-1;11714:30:95;;;;;;:::i;:::-;;;;;;11592:104;981:14960;;-1:-1:-1;;;11669:12:95;;981:14960;;11669:12;11597:45;;;;;;;;;;;;;;:::i;:::-;;;;11455:85;981:14960;;-1:-1:-1;;;11502:27:95;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;6112:23;;6108:79;;6273:6;981:14960;6206:13;;;;:::i;:::-;981:14960;;;-1:-1:-1;981:14960:95;;;;6273:6;:::i;:::-;981:14960;;;;;;;;;;;;6302:10;;6296:43;;981:14960;6296:43;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;;;;;;;6108:79;981:14960;;-1:-1:-1;;;6158:18:95;;981:14960;;6158:18;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;-1:-1:-1;981:14960:95;2546:64:96;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;2058:22:96;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;5173:21:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;3217:103:28;;:::i;:::-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;;1109:35:96;;981:14960:95;;4468:23:23;4464:108;;981:14960:95;;;;10692:21;10688:71;;981:14960;;10805:22;981:14960;;;;;;;;10805:22;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;;4464:108:23;981:14960:95;;;;4514:47:23;;;;;;966:10:27;981:14960:95;4514:47:23;;981:14960:95;;;;;4514:47:23;981:14960:95;;;;;;-1:-1:-1;;981:14960:95;;;;;4803:22:96;;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;3123:14;;:::i;:::-;3154:24;;;:::i;:::-;3181:29;;;;;:::i;:::-;981:14960;;;;;;;3235:1;981:14960;;;;;;;3213:33;;;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;1888:24:96;981:14960:95;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;5767:26:23;981:14960:95;;;;;;;:::i;:::-;;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;3202:4:23;4919:24;981:14960:95;-1:-1:-1;981:14960:95;4919:24:23;981:14960:95;3202:4:23;:::i;:::-;5767:26;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;675:39:96;981:14960:95;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;1972:48;;981:14960;;;;;;;:::i;:::-;;;;;;;;;;;;;;2034:16;;2030:111;;981:14960;;2233:39;1057:70:87;2233:39:95;;4622:48:96;2196:77:95;2233:39;;;;2196:77;;:::i;:::-;2312:36;;4994:47:96;981:14960:95;2312:36;;;4994:47:96;;:::i;:::-;2389:37:95;;;4622:48:96;;:::i;:::-;1057:70:87;;:::i;:::-;981:14960:95;;;;;;;;;;;;;2030:111;2089:41;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4622:48:96;981:14960:95;2196:77;981:14960;1057:70:87;981:14960:95;;;:::i;:::-;;;;;2030:111;;;;;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;2357:1:24;981:14960:95;;;;;:::i;:::-;2303:62:24;;:::i;:::-;2357:1;:::i;981:14960:95:-;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;:::i;:::-;;;3217:103:28;;:::i;:::-;-1:-1:-1;;;;;981:14960:95;;4890:21;4886:75;;4975:11;;4971:73;;845:69:87;4803:22:96;;:::i;:::-;5173:21;;:::i;:::-;845:69:87;;;:::i;:::-;5180:10:95;981:14960;;;;5606:15:96;981:14960:95;;;;;5180:10;;;5606:33:96;;;:::i;:::-;5150:41:95;;5146:96;;5267:40;;;;;:::i;5146:96::-;981:14960;;-1:-1:-1;;;5214:17:95;;981:14960;;5214:17;4971:73;981:14960;;-1:-1:-1;;;5009:24:95;;981:14960;;5009:24;981:14960;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7556:1;981:14960;;;;;;;:::o;:::-;;;;;;;;;;:::o;5256:193:96:-;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;5383:15:96;981:14960:95;;;;;5383:59:96;;5256:193;;5383:59;:::i;981:14960:95:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;1167:340:71;;13510:30:95;1167:340:71;981:14960:95;1167:340:71;6893:76:25;;:::i;:::-;;;:::i;:::-;1805:1:28;-1:-1:-1;;;;;;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;1376:73:71;;1167:340;981:14960:95;;;;:::i;:::-;13510:30;981:14960;;;13510:30;;;;;;:::i;:::-;981:14960;;;;-1:-1:-1;;;;;981:14960:95;13555:31;13551:88;;13653:20;;;;981:14960;;;;;;;;;;13653:25;13649:85;;13748:29;;;981:14960;;13748:29;;981:14960;13748:43;;-1:-1:-1;;;;;981:14960:95;;;13748:43;;13744:943;;1167:340:71;981:14960:95;;;15647:32;981:14960;14817:36;981:14960;;;14697:30;981:14960;;;;;;;;;;;;1398:1:71;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;14697:30;13510;14747:13;;981:14960;;;;-1:-1:-1;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;;;;;;;14771:36;819:34:62;837:15;819:34;:::i;:::-;1805:1:28;981:14960:95;;-1:-1:-1;;;;981:14960:95;;;;;;-1:-1:-1;;;981:14960:95;;;;;;;;14771:36;981:14960;;;;;;1805:1:28;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;;;;-1:-1:-1;;;;;;981:14960:95;;;;;;;;14817:36;14864:42;981:14960;14883:23;;;981:14960;;;;;;;;;1398:1:71;981:14960:95;;;;;;;1398:1:71;981:14960:95;;14864:42;14917:38;981:14960;14934:21;;;981:14960;;;;;;;1398:1:71;981:14960:95;;;;;;;;;;;;1398:1:71;981:14960:95;;14917:38;14965:34;14980:19;;;981:14960;14965:34;981:14960;;14965:34;981:14960;-1:-1:-1;;;;;981:14960:95;;;;;;;15010:135;;1167:340:71;-1:-1:-1;15158:36:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15154:157;;1167:340:71;-1:-1:-1;15324:35:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15320:153;;1167:340:71;-1:-1:-1;15486:34:95;;;981:14960;-1:-1:-1;;;;;981:14960:95;;;;15482:152;;1167:340:71;-1:-1:-1;15647:32:95;981:14960;-1:-1:-1;;;;;981:14960:95;;;;;;;15643:145;;1167:340:71;:::o;15643:145:95:-;15709:68;;;:::i;:::-;;1167:340:71:o;15482:152:95:-;15550:73;;;:::i;:::-;;15482:152;;;15320:153;15389:73;;;:::i;:::-;;15320:153;;;15154:157;15224:76;;;:::i;:::-;;15154:157;;;15010:135;15073:61;;;:::i;:::-;;15010:135;;;13744:943;13811:36;;;981:14960;13811:50;;-1:-1:-1;;;;;981:14960:95;;;13811:50;;13807:405;;13744:943;14230:34;;;981:14960;14230:48;;-1:-1:-1;;;;;981:14960:95;;;14230:48;13744:943;14226:451;14302:21;;;981:14960;;14302:21;;14351:19;;;981:14960;14351:24;:74;;;14298:365;14347:150;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;14226:451;;;;;;;13744:943;;14347:150;981:14960;-1:-1:-1;;;14460:14:95;;;;;14351:74;-1:-1:-1;14379:32:95;;;981:14960;14379:46;;-1:-1:-1;;;;;981:14960:95;;;14379:46;;14351:74;;14298:365;14525:19;;;981:14960;14525:24;;;:74;;;14298:365;14521:142;;14298:365;;981:14960;15647:32;14298:365;14817:36;981:14960;;14298:365;;;14525:74;-1:-1:-1;14553:32:95;;;981:14960;14553:46;;-1:-1:-1;;;;;981:14960:95;;;14553:46;;;14525:74;;13807:405;13885:23;;;981:14960;;13885:23;;13936:35;;;981:14960;13936:49;;-1:-1:-1;;;;;981:14960:95;;;13936:49;13807:405;13932:125;981:14960;-1:-1:-1;;;14020:14:95;;;;;13881:317;14085:35;;;981:14960;14085:49;;-1:-1:-1;;;;;981:14960:95;;;14085:49;14081:117;13807:405;14081:117;981:14960;-1:-1:-1;;;14165:14:95;;;;;13649:85;981:14960;;-1:-1:-1;;;13701:22:95;;;;;13551:88;981:14960;;-1:-1:-1;;;13609:19:95;;;;;1376:73:71;6961:1:25;6893:76;;;:::i;:::-;;;:::i;6961:1::-;1376:73:71;;;2492:191:95;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;981:14960:95;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:::-;5173:21;;:::i;:::-;4803:22;;:::i;:::-;981:14960:95;1884:1:87;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;981:14960:95:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3612:132:96:-;819:34:62;837:15;819:34;:::i;:::-;3683:54:96;3703:17;981:14960:95;3684:36:96;981:14960:95;;;;;;;3684:36:96;;:::i;:::-;981:14960:95;;;3683:54:96;;:::i;:::-;981:14960:95;3612:132:96;:::o;3313:244::-;3418:17;981:14960:95;;;;;;;;;;;;;;3406:29:96;3402:85;;3503:47;3504:29;;;;:::i;3402:85::-;981:14960:95;;-1:-1:-1;;;3458:18:96;;;;;3217:103:28;;;;:::i;:::-;981:14960:95;;-1:-1:-1;;;;;981:14960:95;;;6521:23;;6517:79;;6650:11;;6646:70;;981:14960;6742:10;;;;;;-1:-1:-1;981:14960:95;;6887:49;;981:14960;;;;6864:6;;981:14960;;6821:18;;981:14960;;-1:-1:-1;;;;;981:14960:95;;;6821:18;6864:6;:::i;:::-;6887:49;981:14960;;6898:10;;;;6887:49;;;:::i;:::-;;;;3282:1:28;;1805;-1:-1:-1;;;;;;;;;;;981:14960:95;3716:283:28;6754:3:95;6790:9;6773:27;981:14960;6790:9;6783:17;6790:9;;;;;:::i;:::-;981:14960;6783:17;:::i;6773:27::-;6754:3;981:14960;6731:9;;6646:70;981:14960;;-1:-1:-1;;;6684:21:95;;;;;981:14960;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;981:14960:95;;;;:::o;:::-;;;:::o;3405:215:24:-;-1:-1:-1;;;;;981:14960:95;;;;3489:22:24;;3485:91;;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;;;;;;981:14960:95;;;;;;;;3975:40:24;-1:-1:-1;;3975:40:24;3405:215::o;3485:91::-;981:14960:95;;-1:-1:-1;;;3534:31:24;;3509:1;3534:31;;;981:14960:95;;;3534:31:24;2731:227:95;;2871:34;2731:227;981:14960;-1:-1:-1;981:14960:95;2871:18;981:14960;;;-1:-1:-1;981:14960:95;;;;;;;;;;;;;;;;;2871:34;981:14960;;-1:-1:-1;981:14960:95;2907:11;981:14960;;;-1:-1:-1;981:14960:95;;2927:16;981:14960;;;-1:-1:-1;981:14960:95;;;1884:1:87;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;3326:384:28:-;-1:-1:-1;;;;;;;;;;;1847:1:28;981:14960:95;;3526:20:28;3522:88;;1847:1;981:14960:95;;3326:384:28:o;3522:88::-;981:14960:95;;-1:-1:-1;;;3569:30:28;;;;;11948:968:95;12135:10;981:14960;;;;5606:15:96;981:14960:95;;;;;;11948:968;;;819:34:62;837:15;819:34;:::i;:::-;12135:10:95;981:14960;;;;5606:15:96;981:14960:95;;;;;5606:33:96;;;:::i;:::-;981:14960:95;;;;;;;;;12119:93;12835:74;12119:93;;;12660:30;12119:93;;:::i;:::-;837:15:62;;12222:67:95;819:34:62;837:15;819:34;:::i;:::-;12259:29:95;4803:22:96;;;:::i;12222:67:95:-;837:15:62;;12299:68:95;819:34:62;837:15;819:34;:::i;:::-;12335:31:95;5173:21:96;;;:::i;12299:68:95:-;12394:14;;12769:34;12394:14;12769:25;12394:18;:14;;:::i;:::-;:18;:::i;:::-;12726:33;12445:18;;981:14960;;7528:11;981:14960;;;;;;;12445:18;981:14960;12502:23;;981:14960;;12502:16;981:14960;;;;;;;12502:23;981:14960;390:70:87;;;;;:::i;:::-;12660:30:95;;;;;;:::i;:::-;12639:18;;981:14960;;7528:11;981:14960;;;;;;;12639:18;981:14960;12726:33;:::i;:::-;12700:23;;981:14960;;12502:16;981:14960;;;;;;;12700:23;981:14960;;;12769:18;981:14960;;;;;;;12769:25;981:14960;;;;;;;;;;;;;;;;12769:34;:50;981:14960;;;12769:50;:::i;:::-;981:14960;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;12135:10;;981:14960;;12835:74;11948:968::o;14291:213:58:-;981:14960:95;14369:24:58;;;;14365:103;;981:14960:95;14291:213:58;:::o;14365:103::-;981:14960:95;;;;14416:41:58;;;;;;14447:2;14416:41;;;981:14960:95;;;;;14416:41:58;981:14960:95;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;7558:604:86:-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;7789:27;8082:17;;;981:14960:95;8075:24:86;:::o;7975:84::-;981:14960:95;;;8009:16:86;4622:13:96;981:14960:95;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:23::-;981:14960:95;;;;8029:29:86;;8001:57;;;;7884:77;7933:17;;;7789:27;7933:17;;;981:14960:95;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;7558:604::-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7975:84::-;981:14960:95;;;8009:16:86;4994:12:96;981:14960:95;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;:::i;:29::-;;8001:57;;;;7682:83;7726:28;;;;:::i;7558:604::-;;981:14960:95;;7686:17:86;7682:83;;981:14960:95;7789:27:86;981:14960:95;7789:27:86;981:14960:95;;7789:27:86;;;;;;:::i;:::-;7860:14;;;;;:::i;:::-;981:14960:95;;;;;;;;;;;;;;;;7888:22:86;;;7884:77;;7975:21;-1:-1:-1;7975:84:86;;;;7558:604;7971:139;;;;8127:28;;;;:::i;7971:139::-;8082:17;;7789:27;8082:17;981:14960:95;8075:24:86;:::o;7975:84::-;981:14960:95;;;8009:16:86;981:14960:95;;8009:16:86;:::i;:::-;981:14960:95;;;8001:24:86;:57;;;;;7975:84;;;;;;;8001:57;8029:29;8038:8;;;8029:18;8038:8;8029:23;8038:8;;:::i;:::-;8029:18;;:::i;:29::-;;8001:57;;;;7884:77;7933:17;;;;;7789:27;7933:17;981:14960:95;7926:24:86;:::o;7682:83::-;7726:28;;;;:::i;4148:103:23:-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;675:39:96;;981:14960:95;;3901:31:23;981:14960:95;;4468:23:23;4464:108;;4148:103;:::o;:::-;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;966:38:96;;981:14960:95;;3901:31:23;981:14960:95;4148:103:23;966:10:27;-1:-1:-1;981:14960:95;;;;;;;;;821:37:96;;981:14960:95;;3901:31:23;981:14960:95;4148:103:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;966:10:27;981:14960:95;;;;;;;;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;1398:1:71;981:14960:95;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;;;1398:1:71;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;7509:4:23;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;-1:-1:-1;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;1398:1:71;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;675:39:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;7509:4:23;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;;7532:40:23;-1:-1:-1;;7532:40:23;7509:4;7586:11;:::o;7432:219::-;7628:12;;;-1:-1:-1;7628:12:23;:::o;7270:387::-;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;821:37:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;966:38:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;981:14960:95;;;;;;;;;1109:35:96;;-1:-1:-1;;;;;;;;;;;2887:71:23;981:14960:95;;3901:31:23;981:14960:95;7270:387:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;3901:31:23;981:14960:95;7892:388:23;-1:-1:-1;981:14960:95;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;966:10:27;;-1:-1:-1;;;;;981:14960:95;;8155:40:23;-1:-1:-1;;8155:40:23;981:14960:95;8209:11:23;:::o;1702:188:45:-;981:14960:95;;-1:-1:-1;;;1829:53:45;;;;-1:-1:-1;;;;;981:14960:95;;;1829:53:45;;;981:14960:95;;;;;;;;;;;;;;;;;1829:53:45;;;981:14960:95;;;;;;;-1:-1:-1;;;;;981:14960:95;;;;;1829:53:45;981:14960:95;;;1829:53:45;:::i;981:14960:95:-;7178:12:86;981:14960:95;;;;;;7178:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;981:14960:95;:::o;:::-;7178:12:86;981:14960:95;;;;;;7178:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;-1:-1:-1;981:14960:95;:::o;:::-;;;;;;;;-1:-1:-1;981:14960:95;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;:::o;:::-;6360:12:86;981:14960:95;-1:-1:-1;;;981:14960:95;;;;;;;;;6360:12:86;981:14960:95;;;;;;6360:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::o;:::-;6360:12:86;981:14960:95;-1:-1:-1;;;981:14960:95;;;;;;;;;6360:12:86;981:14960:95;;;;;;6360:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::o;:::-;;;;;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6246:584:86;;;;6360:12;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;981:14960:95;;;;;;;;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;6798:25:86;981:14960:95;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;:::-;6798:25;6246:584;:::o;6604:24::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;6356:75:86;;;6246:584;;;;6360:12;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;981:14960:95;;;;;;;;;-1:-1:-1;981:14960:95;;;-1:-1:-1;981:14960:95;;;;;;6798:25:86;981:14960:95;6246:584:86:o;6600:188::-;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;-1:-1:-1;8167:38:60;:::i;:::-;6753:24:86;;;;;:::i;6604:::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;;;;-1:-1:-1;981:14960:95;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;6356:75:86;;;6246:584;;;;;6360:12;;;981:14960:95;;;6360:24:86;;6356:75;;6246:584;6474:30;;;;;:::i;:::-;981:14960:95;;;;;;6578:12:86;;;;:::i;:::-;6604:24;;;;6246:584;-1:-1:-1;6600:188:86;;;-1:-1:-1;;;;;981:14960:95;;;;;;;6644:21:86;;;:29;:21;;:::i;6600:188::-;6753:24;;981:14960:95;;8167:38:60;;-1:-1:-1;;;;;981:14960:95;;;;;8167:38:60;:::i;:::-;6753:24:86;;;:::i;6604:::-;981:14960:95;;;;;;6614:14:86;;-1:-1:-1;6604:24:86;;;6356:75;-1:-1:-1;;;981:14960:95;;;;;;6360:12:86;981:14960:95;;;;;;;:::i;:::-;;;;;;;;;;;;;;6356:75:86;;;981:14960:95;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;:::o;2658:162:24:-;-1:-1:-1;;;;;;;;;;;981:14960:95;-1:-1:-1;;;;;981:14960:95;966:10:27;2717:23:24;2713:101;;2658:162::o;2713:101::-;981:14960:95;;-1:-1:-1;;;2763:40:24;;966:10:27;2763:40:24;;;981:14960:95;;;2763:40:24;2557:104:57;;2641:5;;;;;;:13;2557:104;:::o;2641:13::-;;;2557:104;:::o;981:14960:95:-;;;;;;;:::o;3803:4116:57:-;;;981:14960:95;;;;-1:-1:-1;;3803:4116:57;;4383:131;;;;;;;;;;;;4595:10;;4591:368;;5065:20;;;;5061:88;;5435:300;;;981:14960:95;-1:-1:-1;981:14960:95;5954:31:57;;5999:371;;;6813:1;981:14960:95;;6794:1:57;981:14960:95;6793:21:57;981:14960:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5999:371:57;;;;-1:-1:-1;5999:371:57;;;5435:300;;;;;;981:14960:95;5435:300:57;;5999:371;6436:21;981:14960:95;3803:4116:57;:::o;5061:88::-;981:14960:95;;-1:-1:-1;;;5112:22:57;;;;;4591:368;4925:19;;;;;;;:::i;1303:160:45:-;981:14960:95;;-1:-1:-1;;;1412:43:45;;;;-1:-1:-1;;;;;981:14960:95;;;1412:43:45;;;981:14960:95;;;;;;;;;1412:43:45;;;981:14960:95;;;;-1:-1:-1;;;;;981:14960:95;;;;;;;;1412:43:45;981:14960:95;;;1412:43:45;:::i;12922:460:95:-;;13024:14;;:::i;:::-;13015:23;;;13011:75;;-1:-1:-1;981:14960:95;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;;13096:93;;13208:32;13128:10;13208:32;;:::i;:::-;13255:11;;;13251:68;;-1:-1:-1;981:14960:95;;;13100:20;981:14960;;;;;;;;13128:10;981:14960;;;;;;;;;-1:-1:-1;;981:14960:95;13371:4;981:14960;;;12922:460::o;13251:68::-;981:14960;;-1:-1:-1;;;13289:19:95;;;;;13096:93;981:14960;;-1:-1:-1;;;13162:16:95;;;;;13011:75;981:14960;;-1:-1:-1;;;13061:14:95;;;;;10580:184:86;5173:12:96;981:14960:95;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;981:14960:95;;;;;;10736:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;10580:184:86;:::o;10726:31::-;;-1:-1:-1;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;5173:12:96;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;10580:184:86;4803:13:96;981:14960:95;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;981:14960:95;;;;;;10736:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;4803:13:96;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;10580:184:86;981:14960:95;;10303:8:60;;;:63;-1:-1:-1;10303:63:60;-1:-1:-1;;;;;981:14960:95;;10726:7:86;981:14960:95;;10736:12:86;:17;:12;;:17;:::i;:::-;981:14960:95;;;;;;10580:184:86;:::o;10303:63:60:-;981:14960:95;;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;;-1:-1:-1;14249:109:60;;;981:14960:95;;;10303:63:60;;1662:280:87;;;1884:1;981:14960:95;;;;;;;1884:1:87;981:14960:95;;;;;;;8188:25:57;;;:::i;6999:207:86:-;4622:13:96;981:14960:95;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;7178:17:86;981:14960:95;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4622:13:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:41;981:14960:95;;;;;9992:48:60;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;4622:13:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;4994:12:96;981:14960:95;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;7178:17:86;981:14960:95;7178:17:86;;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;4994:12:96;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;14099:265;;9992:48;9977:63;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;4994:12:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;6999:207:86;;981:14960:95;;9594:15:60;-1:-1:-1;9619:18:60;9652:7;9658:1;9652:7;;9648:234;;6999:207:86;9906:53:60;;;;;:::i;:::-;9977:8;;;:63;-1:-1:-1;9977:63:60;;-1:-1:-1;;;;;981:14960:95;;7168:7:86;981:14960:95;;;7178:12:86;;:17;:12;;:17;:::i;9977:63:60:-;9992:41;10025:7;9992:48;10025:7;;:::i;:::-;9992:41;14249:109;;;;;;14099:265;;9992:48;9977:63;;;9648:234;9695:14;;;;;:::i;:::-;981:14960:95;;;;;;;9906:53:60;14249:109;;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;;-1:-1:-1;14249:109:60;;981:14960:95;;;;;9727:48:60;9723:149;981:14960:95;;;9795:10:60;9723:149;9648:234;;9723:149;9850:7;;;;;;:::i;:::-;9723:149;9648:234;;981:14960:95;;;;;;;:::i;:::-;-1:-1:-1;981:14960:95;;;;;;;:::o;11486:272:86:-;981:14960:95;;:::i;:::-;;;;:::i;:::-;;4622:13:96;981:14960:95;;;;;;;;4622:13:96;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::i;:::-;;;;;;;;;;;;11731:17:86;;981:14960:95;;11718:12:86;981:14960:95;;;;;;11718:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;:::i;:::-;;;;11672:79:86;;981:14960:95;11486:272:86;:::o;:::-;981:14960:95;;:::i;:::-;;;;:::i;:::-;;4994:12:96;981:14960:95;;;;;;;;4994:12:96;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;:::i;:::-;;;;;;;;;;;;11731:17:86;;981:14960:95;;11718:12:86;981:14960:95;;;;;;11718:12:86;-1:-1:-1;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;;;;;:::i;11486:272:86:-;;981:14960:95;11308:22:60;11718:31:86;11486:272;981:14960:95;;:::i;:::-;;;;:::i;:::-;;11308:22:60;;:::i;:::-;981:14960:95;;:::i;:::-;;11718:12:86;981:14960:95;;;;;11731:17:86;981:14960:95;;;;;11731:17:86;;981:14960:95;;11718:12:86;;:31;:::i;:::-;981:14960:95;;;;;;;;;:::i;:::-;;;;;;11731:17:86;11672:79;;981:14960:95;11486:272:86;:::o;4059:629:45:-;2847:1:46;4059:629:45;3510:55:46;4059:629:45;981:14960:95;;;;;;3462:31:46;;;;;;;;;;;;:::i;:::-;3510:55;;;:::i;:::-;981:14960:95;;4551:22:45;;;;:57;;;;4059:629;4547:135;;;;4059:629;:::o;4547:135::-;981:14960:95;;;;4631:40:45;;;;;;;;;981:14960:95;4631:40:45;4551:57;4578:30;;;3462:31:46;4578:30:45;;;;;;;;:::i;:::-;4577:31;4551:57;;;;1258:280:87;;;981:14960:95;;;;;;;;;;;;;;;;8188:25:57;;;;;:::i;:::-;8257;;;;;;8223:101;;1258:280:87;:::o;8223:101:57:-;981:14960:95;;;;;;;;1258:280:87;:::o;981:14960:95:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;10552:388:60:-;5173:12:96;981:14960:95;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;14249:109:60;981:14960:95;14249:109:60;5173:12:96;10690:17:60;14249:109;;981:14960:95;:::i;:::-;;;;;;;14249:109:60;981:14960:95;;;;;10911:11:60;;981:14960:95;;10886:37:60;10870:1;10886:37;;;:::o;10552:388::-;4803:13:96;981:14960:95;10728:8:60;;;10752:20;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;14249:109:60;981:14960:95;14249:109:60;4803:13:96;10690:17:60;14249:109;;981:14960:95;:::i;10552:388:60:-;981:14960:95;;10728:8:60;;;10752:20;;10690:17;10752:20;10690:17;10752:20;10690:17;10752:20;:::o;10724:210::-;981:14960:95;;;;;;;;;;;14249:109:60;10690:17;14249:109;;10690:17;14249:109;;;981:14960:95;:::i;7084:141:25:-;981:14960:95;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;7150:18:25;7146:73;;7084:141::o;7146:73::-;981:14960:95;;-1:-1:-1;;;7191:17:25;;;;;981:14960:95;5173:12:96;981:14960:95;;-1:-1:-1;;;981:14960:95;;;;;;;;;5173:12:96;981:14960:95;;;;;;5173:12:96;-1:-1:-1;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;:::o;:::-;4803:13:96;981:14960:95;;-1:-1:-1;;;981:14960:95;;;;;;;;;4803:13:96;981:14960:95;;;;;;4803:13:96;-1:-1:-1;981:14960:95;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;-1:-1:-1;;;;;;;;;;;981:14960:95;;;;:::o;:::-;;;-1:-1:-1;;;981:14960:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;981:14960:95;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;11513:870:60;5173:12:96;981:14960:95;11513:870:60;;;981:14960:95;11672:7:60;;;;981:14960:95;11775:28:60;11795:7;;;:::i;11775:28::-;981:14960:95;:::i;:::-;;;;;;;;;;-1:-1:-1;;11873:91:60;;981:14960:95;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12063:28::-;981:14960:95;;;;;;;;;;;;;;;;;12063:43:60;12233:11;981:14960:95;-1:-1:-1;;;;;981:14960:95;;;12023:189:60;981:14960:95;;12145:52:60;981:14960:95;;12155:41:60;981:14960:95;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;:::-;12023:189;;11873:91;981:14960:95;;-1:-1:-1;;;11919:30:60;;;;;11668:709;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;12283:::-;11678:1;12349:17;;:::o;11513:870::-;4803:13:96;981:14960:95;11513:870:60;;;981:14960:95;11672:7:60;;;;981:14960:95;11775:28:60;11795:7;;;:::i;981:14960:95:-;;;;;;;;;;-1:-1:-1;;11873:91:60;;981:14960:95;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:28;12083:7;12063:43;12083:7;;:::i;12023:189::-;981:14960:95;;12145:52:60;981:14960:95;;12155:41:60;981:14960:95;;:::i;12155:41:60:-;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;11668:709::-;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;11513:870::-;981:14960:95;;11513:870:60;;;981:14960:95;11513:870:60;11672:7;;;;981:14960:95;11775:28:60;11795:7;;;:::i;981:14960:95:-;;;;;;;;;;;;;;;;11877:15:60;-1:-1:-1;11873:91:60;;981:14960:95;;12233:11:60;981:14960:95;;;12027:16:60;981:14960:95;;;;;;;12027:16:60;;;;12083:7;12063:43;12083:7;;12063:28;12083:7;;:::i;:::-;12063:28;14249:109;;;;;;14099:265;;12023:189;981:14960:95;;;12145:52:60;981:14960:95;12155:41:60;981:14960:95;;:::i;:::-;;;;;;;;12155:41:60;-1:-1:-1;;;;;981:14960:95;;12155:41:60;;;981:14960:95;12145:52:60;:::i;11668:709::-;12283:52;981:14960:95;;12293:41:60;981:14960:95;;:::i;12293:41:60:-;-1:-1:-1;;;;;981:14960:95;;12293:41:60;;;981:14960:95;12145:52:60;:::i;8587:1642:57:-;8658:6;;8654:45;;9401:7;10201:10;10142:26;10093;10044;9995;9946;9897;9848;981:14960:95;10189:23:57;9401:7;8663:1;981:14960:95;;;;10826:16:57;10822:99;;8587:1642;981:14960:95;;;;10938:15:57;10934:96;;8587:1642;981:14960:95;;;;11047:15:57;11043:96;;8587:1642;981:14960:95;;;;11156:15:57;11152:96;;8587:1642;981:14960:95;;;;11265:14:57;11261:93;;8587:1642;981:14960:95;;;;11371:14:57;11367:93;;8587:1642;981:14960:95;;;;11477:14:57;11473:93;;8587:1642;981:14960:95;;;11579:64:57;;8587:1642;981:14960:95;;;9858:10:57;;;;:::i;:::-;981:14960:95;;;;;9848:26:57;9907:10;;;;:::i;9897:26::-;9956:10;;;;:::i;9946:26::-;10005:10;;;;:::i;9995:26::-;10054:10;;;;:::i;10044:26::-;10103:10;;;;:::i;10093:26::-;10152:10;;;;:::i;10142:26::-;10201:10;;;:::i;:::-;10189:23;;:::i;11579:64::-;981:14960:95;;11579:64:57;;11473:93;981:14960:95;11511:11:57;;981:14960:95;;11473:93:57;;;;11367;981:14960:95;11405:11:57;;981:14960:95;;11367:93:57;;;;11261;981:14960:95;11299:11:57;;981:14960:95;;11261:93:57;;;;11152:96;981:14960:95;11191:12:57;;981:14960:95;;11152:96:57;;;;11043;981:14960:95;11082:12:57;;981:14960:95;;11043:96:57;;;;10934;981:14960:95;10973:12:57;;981:14960:95;;10934:96:57;;;;10822:99;10862:13;;;981:14960:95;10822:99:57;;;;12736:433:60;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;4622:13:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;12736:433;;12919:10;;;;;;13151:11;;12736:433;:::o;12912:230::-;2900:5:57;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;4994:12:96;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;-1:-1:-1;;;;;;;;;;;14249:109:60;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;12736:433;;;12919:10;;;;;;13151:11;;;12736:433;:::o;12912:230::-;2900:5:57;;;;;;981:14960:95;;2910:5:57;;;981:14960:95;;;;;;;;;14249:109:60;-1:-1:-1;14249:109:60;981:14960:95;14249:109:60;;;-1:-1:-1;14249:109:60;;981:14960:95;;;;;-1:-1:-1;12996:136:60;981:14960:95;;;13055:10:60;;12996:136;;12912:230;;;;12996:136;981:14960:95;;;;;;;;;;;12996:136:60;;;4625:582:46;;4797:8;;-1:-1:-1;981:14960:95;;5874:21:46;:17;;6046:142;;;;;;5870:383;981:14960:95;;-1:-1:-1;;;6225:17:46;;;;;4793:408;981:14960:95;;5045:22:46;:49;;;4793:408;5041:119;;5173:17;;:::o;5041:119::-;981:14960:95;;-1:-1:-1;;;5121:24:46;;-1:-1:-1;;;;;981:14960:95;;;5121:24:46;;;981:14960:95;;;5121:24:46;5045:49;5071:18;;;:23;5045:49;","linkReferences":{},"immutableReferences":{"58075":[{"start":1904,"length":32},{"start":2467,"length":32}],"68715":[{"start":4512,"length":32},{"start":5845,"length":32}],"68718":[{"start":6206,"length":32},{"start":7428,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/Vault.sol\":\"Vault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45\",\"dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b\",\"dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111\",\"dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c\",\"dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609\",\"dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653\",\"dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307\",\"dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173\",\"dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/Vault.sol":"Vault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb44e086e941292cdc7f440de51478493894ef0b1aeccb0c4047445919f667f74","urls":["bzz-raw://942dad22fbdc1669f025540ba63aa3ccfad5f8458fc5d4525b31ebf272e7af45","dweb:/ipfs/Qmdo4X2M82aM3AMoW2kf2jhYkSCyC4T1pHNd6obdsDFnAB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xbdc5e074d7dd6678f67e92b1a51a20226801a407b0e1af3da367c5d1ff4519ad","urls":["bzz-raw://a36cca6b22fff3db16fc789ff6c60eea71d4b156065d4d0c83a0bc5e91a77a8b","dweb:/ipfs/QmYN3exd5AemxjBrN8XMB1p5LbbE16uC3sjbYjwi8AjcGR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0xc7755af115020049e4140f224f9ee88d7e1799ffb0646f37bf0df24bf6213f58","urls":["bzz-raw://7f09bf94d5274334ec021f61a04659db303f31e60460e14b709c9bf187740111","dweb:/ipfs/QmNvgomZYUwFAt4cZbPWAiTeSZQreGehY9BK5xyVJsUttb"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0x2d736f4dacd5d7e7697503bc426c78b8250fe1694ca157965ec178da6807de58","urls":["bzz-raw://f1237acf96b4b9f9b69156e068eddd726a6e15bd8e87a18dc999cd4ba4da069c","dweb:/ipfs/QmS6M8fiFFSeuJ4ZKKq1z8W7w4ybeHQSy5TLASGoc1LVic"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0xba90097c8bfe0a975499428b5f8ac5569483c7d92ccc28c12d70de416aae040c","urls":["bzz-raw://12f5d93ca94cd06d3147db68993165a58e17903ed53682560de61f3085ad4609","dweb:/ipfs/QmePiuAqvXprMLmFZkGZeGjvGPAvsEDHfCDv7BoQhXu9xE"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0x8441160513c1cbeb1c3b9ee077bcc7e7ce20006b52a77c8dd39ff0ef89699939","urls":["bzz-raw://943f8cc3e26ddf649f465f40c909819f5c864717c4baa339e9e403b9374a4653","dweb:/ipfs/QmXPxi1sUDsrGprZdUgCzoPEosaZMv9ZhygWQ1vAi1phAB"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0x2ceff6ed3298c4cad144c99fcc79b51cb9397d6ebef00285b915848b476f8c2e","urls":["bzz-raw://11f2fb3581854f3ab6e82e8d4935d9eb510c903a13c3f022346c2956a58f5307","dweb:/ipfs/QmdUnoXoyYoG9SGWyQZCFyLDRUUX3eXyXetkRvw6jxqqBz"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0x57db25b127d77ea3472de53e3a4af3354399655b9268638b99ca5925fa364a56","urls":["bzz-raw://aa763d9a6ec508ae3abfb8228b72b9fd9525279e5135d4962e79ff059feb1173","dweb:/ipfs/QmcbDR6E9wyEpu6V2FkEC4hnWy47zXA9LSKJde6zSGd33Q"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"}},"version":1},"id":95} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"delegatorFactory","type":"address","internalType":"address"},{"name":"slasherFactory","type":"address","internalType":"address"},{"name":"vaultFactory","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DELEGATOR_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"DEPOSITOR_WHITELIST_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SLASHER_FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeBalanceOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hints","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeShares","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeSharesOfAt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activeStakeAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"},{"name":"hint","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"claimBatch","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"epochs","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"currentEpoch","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"currentEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"onBehalfOf","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"depositedAmount","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"depositWhitelist","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"epochAt","inputs":[{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"epochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"epochDurationInit","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialVersion","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isDelegatorInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositLimit","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDepositorWhitelisted","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isSlasherInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWithdrawalsClaimed","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nextEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"onSlash","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"slashedAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"previousEpochStart","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"withdrawnAssets","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDelegator","inputs":[{"name":"delegator_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositLimit","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositWhitelist","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setIsDepositLimit","inputs":[{"name":"status","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSlasher","inputs":[{"name":"slasher_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slashableBalanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"slasher","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"staticDelegateCall","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"claimer","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"burnedShares","type":"uint256","internalType":"uint256"},{"name":"mintedShares","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawalShares","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalSharesOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawals","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawalsOf","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ClaimBatch","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"epochs","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"onBehalfOf","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OnSlash","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"captureTimestamp","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"slashedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDelegator","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetDepositLimit","inputs":[{"name":"limit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetDepositWhitelist","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetDepositorWhitelistStatus","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetIsDepositLimit","inputs":[{"name":"status","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"SetSlasher","inputs":[{"name":"slasher","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"burnedShares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintedShares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"AlreadyClaimed","inputs":[]},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"AlreadySet","inputs":[]},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"DelegatorAlreadyInitialized","inputs":[]},{"type":"error","name":"DepositLimitReached","inputs":[]},{"type":"error","name":"InsufficientClaim","inputs":[]},{"type":"error","name":"InsufficientDeposit","inputs":[]},{"type":"error","name":"InsufficientRedemption","inputs":[]},{"type":"error","name":"InsufficientWithdrawal","inputs":[]},{"type":"error","name":"InvalidAccount","inputs":[]},{"type":"error","name":"InvalidCaptureEpoch","inputs":[]},{"type":"error","name":"InvalidClaimer","inputs":[]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidDelegator","inputs":[]},{"type":"error","name":"InvalidEpoch","inputs":[]},{"type":"error","name":"InvalidEpochDuration","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidLengthEpochs","inputs":[]},{"type":"error","name":"InvalidOnBehalfOf","inputs":[]},{"type":"error","name":"InvalidRecipient","inputs":[]},{"type":"error","name":"InvalidSlasher","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"MissingRoles","inputs":[]},{"type":"error","name":"NoPreviousEpoch","inputs":[]},{"type":"error","name":"NotDelegator","inputs":[]},{"type":"error","name":"NotFactory","inputs":[]},{"type":"error","name":"NotInitialized","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotSlasher","inputs":[]},{"type":"error","name":"NotWhitelistedDepositor","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlasherAlreadyInitialized","inputs":[]},{"type":"error","name":"TooMuchRedeem","inputs":[]},{"type":"error","name":"TooMuchWithdraw","inputs":[]}],"bytecode":{"object":"0x60e03461016657601f61461b38819003918201601f19168301916001600160401b0383118484101761016a57808492606094604052833981010312610166576100478161017e565b9061006060406100596020840161017e565b920161017e565b9160017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005560805260a0525f5160206145fb5f395f51905f525460ff8160401c16610157576002600160401b03196001600160401b03821601610101575b5060c052604051614468908161019382396080518181816111b101526116d7015260a0518181816118590152611d37015260c05181818161077001526109900152f35b6001600160401b0319166001600160401b039081175f5160206145fb5f395f51905f52556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100be565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101665756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123d4565b612339565b61230c565b6121ab565b61218e565b612154565b612129565b6120dc565b6120b4565b61204a565b612030565b611f5c565b611f42565b611f1a565b611ef0565b611e2c565b611c7e565b611c38565b611beb565b611b06565b611acc565b611ab2565b611a8e565b6119b6565b61197c565b61191e565b6118ea565b611888565b611844565b61167d565b611664565b6115f8565b6115d1565b611591565b611577565b611537565b61126c565b611205565b6111e0565b61119c565b611143565b611119565b6110f2565b610faa565b610f78565b610ee6565b610ecd565b610e70565b610e50565b610e2f565b610b60565b610b38565b610aa0565b610a5b565b610a13565b6109bf565b61097b565b61090f565b61072c565b61066e565b610646565b610607565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612c13565b6001600160a01b038116156105f957335f52600e60205261055f60405f20613dea565b82116105ea5761056d613cdc565b610575613d63565b600182018092116105e557600181018091116105e5576105959184613b68565b9182156105d657826105a692612c4b565b906105bd60015f5160206143f35f395f51905f5255565b60408051918252602082019290925290819081015b0390f35b637fba223960e11b5f5260045ffd5b6123fe565b632418411f60e11b5f5260045ffd5b6208978560e71b5f5260045ffd5b3461048a57602036600319011261048a57602061063e6004355f525f5160206143d35f395f51905f52602052600160405f20015490565b604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761068661296c565b80156106da5760015465ffffffffffff8160a01c16915f1981019081116105e5576106b49160d01c9061242d565b81018091116105e5576106c690612dc5565b60405165ffffffffffff9091168152602090f35b639fa56a5b60e01b5f5260045ffd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107456106e9565b6024356001600160401b03811161048a576107649036906004016106ff565b505061076e612c13565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107f0575f5160206144135f395f51905f525460ff8160401c169081156107d9575b506107ca5761048a90612496565b63f92ee8a960e01b5f5260045ffd5b90506001600160401b03808316911610155f6107bc565b631966391b60e11b5f5260045ffd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083e57604052565b61080f565b604081019081106001600160401b0382111761083e57604052565b90601f801991011681019081106001600160401b0382111761083e57604052565b6040519061088f6101608361085e565b565b6040519061088f60408361085e565b6001600160401b03811161083e57601f01601f191660200190565b9291926108c7826108a0565b916108d5604051938461085e565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a5781602061090c933591016108bb565b90565b3461048a57606036600319011261048a5760043561092c81610502565b60243590610939826107ff565b604435906001600160401b03821161048a5760209261095f61063e9336906004016108f1565b6001600160a01b039092165f908152600e855260409020612fe0565b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a116024356004356109e282610502565b610a0c610a07825f525f5160206143d35f395f51905f52602052600160405f20015490565b613208565b6135ee565b005b3461048a57604036600319011261048a57600435602435610a3381610502565b336001600160a01b03821603610a4c57610a1191613683565b63334bd91960e11b5f5260045ffd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a87575b6020906040519015158152f35b5060035460a01c60ff16610a7a565b8015150361048a57565b3461048a57602036600319011261048a57600435610abd81610a96565b610ac5612c13565b610acd6130bb565b5f54901515908160ff8216151514610b295760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f5160206143f35f395f51905f5255005b63a741a04560e01b5f5260045ffd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a57604036600319011261048a57600435610b7d81610502565b602435610b88612c13565b6001600160a01b0382168015610e20575f5460ff811680610e07575b610df857610bc59060101c6001600160a01b03165b6001600160a01b031690565b6040516370a0823160e01b815230600482015292906020846024816001600160a01b0385165afa938415610dcc575f94610dd1575b5090610c099130903390613723565b5f5491610c23610bb9601085901c6001600160a01b031681565b6040516370a0823160e01b81523060048201529190602090839060249082905afa8015610dcc57610c5b925f91610d9d575b50612420565b918215610d8e5760081c60ff1680610d78575b610d6957610d1e610c7d613cdc565b93610cc6610c89613d63565b610cb1610c97888389613e38565b97610cab88610ca542612dc5565b9261244e565b90613832565b5050610cc087610ca542612dc5565b906138f6565b50506001600160a01b0381165f908152600e6020526040902090610d1886610d13610d0e610cf342612dc5565b6001600160a01b039095165f908152600e6020526040902090565b613dea565b61244e565b916139b6565b5050604080518381526020810185905233917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d791a36105bd60015f5160206143f35f395f51905f5255565b632484557960e01b5f5260045ffd5b50610d8582610d13613cdc565b60045410610c6e565b63070f6eed60e11b5f5260045ffd5b610dbf915060203d602011610dc5575b610db7818361085e565b81019061247c565b5f610c55565b503d610dad565b61248b565b610c0992919450610df09060203d602011610dc557610db7818361085e565b939091610bfa565b6304f63b8560e01b5f5260045ffd5b50335f9081526005602052604090205460ff1615610ba4565b630d534ce360e11b5f5260045ffd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eae816107ff565b91602435906001600160401b03821161048a5761090c916004016108f1565b3461048a57602061063e610ee036610e95565b90612e28565b3461048a57602036600319011261048a57600435610f0381610a96565b610f0b612c13565b610f1361312a565b5f54901515908160ff8260081c16151514610b295761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a160015f5160206143f35f395f51905f5255005b3461048a575f36600319011261048a5760206001600160401b035f5160206144135f395f51905f525416604051908152f35b3461048a57606036600319011261048a57610fc36106e9565b602435610fcf81610502565b6044356001600160401b03811161048a57610fee9036906004016106ff565b9290915f5160206144135f395f51905f52546001600160401b03811690816110e45760401c60ff169081156110d0575b506107ca577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2936110cb936110879261105685612496565b600160401b60ff60401b195f5160206144135f395f51905f525416175f5160206144135f395f51905f5255846124ca565b6110b160ff60401b195f5160206144135f395f51905f5254165f5160206144135f395f51905f5255565b6040516001600160401b0390911681529081906020820190565b0390a1005b90506001600160401b03831611155f61101e565b62dc149f60e41b5f5260045ffd5b3461048a57602036600319011261048a57602061063e60043561111481610502565b6128ca565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015461117865ffffffffffff8260a01c169161116e61296c565b9060d01c9061242d565b81018091116105e55761118c602091612dc5565b65ffffffffffff60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761121d613b2b565b5f5160206143b35f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561128c816107ff565b611294612c13565b6003546112a9906001600160a01b0316610bb9565b3303611528576112b761296c565b906112c1816129a0565b9082151580611517575b801561150e575b6114ff576105d2937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c792611304613cdc565b9461131f61131182612440565b5f52600660205260405f2090565b54908281036114195750611333818761244e565b8381188185100281189687806113cb575b50505050505b83611397575b6040805191825265ffffffffffff929092166020820152908101839052606090a161138760015f5160206143f35f395f51905f5255565b6040519081529081906020820190565b5f546113c69085906113b49060101c6001600160a01b0316610bb9565b6001546001600160a01b031690613bf3565b611350565b61140e9361140183610cab6113f16113ea611311986114089888613b68565b8096612420565b946113fb42612dc5565b92612420565b5050612420565b92612440565b555f80808087611344565b915061142d825f52600660205260405f2090565b549061143d81610d13848a61244e565b908482188286100282189788611458575b505050505061134a565b6114cd93836114809361148d8c6114886114766114be998884613b68565b9788958584613b68565b948592612420565b612420565b938484106114d8575b61140190610cab6114ac9596976113fb42612dc5565b6114b861131187612440565b55612420565b915f52600660205260405f2090565b555f8080808061144e565b916114f4611401916114ee866114ac9798612420565b9061244e565b859450929050611496565b635e18d2a560e01b5f5260045ffd5b508282116112d2565b5061152183612412565b82106112cb565b63dabc4ad960e01b5f5260045ffd5b3461048a575f36600319011261048a5760015465ffffffffffff8160a01c169061155f61296c565b600181018091116105e5576111789160d01c9061242d565b3461048a575f36600319011261048a57602061063e61296c565b3461048a57602036600319011261048a576004356115ae81610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a57602061063e6004356115f3816107ff565b6129a0565b3461048a57604036600319011261048a5760043561161581610502565b6024356001600160401b03811161048a573660238201121561048a5780600401356001600160401b03811161048a573660248260051b8401011161048a576105d29260246113879301906129e2565b3461048a57602061063e61167736610e95565b90612f14565b3461048a57602036600319011261048a5760043561169a81610502565b6116a2612c13565b60025460a01c60ff16611835576040516302910f8b60e31b81526001600160a01b0382166004820152602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610dcc575f91611806575b50156117f75760405163fbfa77cf60e01b81526001600160a01b0382169190602081600481865afa908115610dcc575f916117c8575b50306001600160a01b03909116036117b957600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1160015f5160206143f35f395f51905f5255565b63b9f0f17160e01b5f5260045ffd5b6117ea915060203d6020116117f0575b6117e2818361085e565b810190612b2b565b5f611745565b503d6117d8565b6324e5af8d60e21b5f5260045ffd5b611828915060203d60201161182e575b611820818361085e565b810190612b0b565b5f61170f565b503d611816565b631380833b60e01b5f5260045ffd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a576118a061296c565b6118a8613cdc565b90805f52600660205260405f205482018092116105e557600181018091116105e5575f52600660205260405f205481018091116105e557604051908152602090f35b3461048a575f36600319011261048a575f5160206143b35f395f51905f52546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61197060243560043561194582610502565b5f525f5160206143d35f395f51905f52845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561199981610502565b60018060a01b03165f52600e602052602061063e60405f20613dea565b3461048a57604036600319011261048a576004356119d381610502565b6024356001600160401b03811161048a575f916119f5839236906004016106ff565b90816040519283928337810184815203915af43d15611a8157611a7960803d92611a1e846108a0565b93611a2c604051958661085e565b84523d5f602086013e5b60206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f801991011681010301601f19810183528261085e565b805190602001fd5b611a796080606092611a36565b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611b2381610502565b60243590611b3082610a96565b611b38612c13565b611b40613199565b6001600160a01b0316908115611bdc57815f52600560205260ff60405f20541681151590151514610b2957611bc37ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291835f526005602052611bb18160405f209060ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1160015f5160206143f35f395f51905f5255565b630da30f6560e31b5f5260045ffd5b3461048a57604036600319011261048a576020611c2f602435600435611c1082610502565b5f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611970602435600435611c5f82610502565b5f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a57602036600319011261048a57600435611c9b81610502565b611ca3612c13565b60035460a01c60ff16611e1d576001600160a01b0381169081611d0f575b506003805460ff60a01b1916600160a01b1790557fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1160015f5160206143f35f395f51905f5255565b6040516302910f8b60e31b81526001600160a01b0382166004820152602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610dcc575f91611dfe575b50156115285760405163fbfa77cf60e01b8152602081600481865afa908115610dcc575f91611ddf575b50306001600160a01b0390911603611dd057600380546001600160a01b0319166001600160a01b039092169190911790555f611cc1565b633f3e089160e21b5f5260045ffd5b611df8915060203d6020116117f0576117e2818361085e565b5f611d99565b611e17915060203d60201161182e57611820818361085e565b5f611d6f565b63703fe2e560e01b5f5260045ffd5b3461048a57604036600319011261048a57600435611e4981610502565b60243590611e55612c13565b6001600160a01b0381168015611ee15782611e8c611e756105d295613c49565b5f549094859160101c6001600160a01b0316613bf3565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f5160206143f35f395f51905f52556040519081529081906020820190565b634e46966960e11b5f5260045ffd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a57602061063e613cdc565b3461048a57602036600319011261048a57600435611f78612c13565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090205460ff1615611ff9578060045414610b29576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f5160206143f35f395f51905f5255005b63e2517d3f60e01b5f52336004527f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb7923360245260445ffd5b3461048a575f36600319011261048a57602061063e613d63565b3461048a57602036600319011261048a5760043561206781610502565b61206f61296c565b612078826128ca565b916120838183612bb1565b83018093116105e557600182018092116105e5576120a091612bb1565b81018091116105e557602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a116024356004356120ff82610502565b612124610a07825f525f5160206143d35f395f51905f52602052600160405f20015490565b613683565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a576004356121c881610502565b602435906121d5826107ff565b6044356001600160401b03811161048a576121f49036906004016106ff565b919060405161220281610823565b6060815260606020820152606060408201529280612253575b6105d2611387868661224d612233888484519161245b565b926040612244602085015183612f14565b93015190612e28565b91613e38565b81019391925060208185031261048a578035906001600160401b03821161048a57019160608385031261048a576040519361228d85610823565b83356001600160401b03811161048a57816122a99186016108f1565b855260208401356001600160401b03811161048a57816122ca9186016108f1565b602086015260408401356001600160401b03811161048a576105d2956122fb61224d936122339361138798016108f1565b60408201529450508192945061221b565b3461048a57602036600319011261048a57610a1160043561232c81610502565b612334613b2b565b612b40565b3461048a57604036600319011261048a5760043561235681610502565b602435612361612c13565b6001600160a01b038216156105f95780156123c557612390612381613d63565b612389613cdc565b9083613fa0565b91335f52600e6020526123a560405f20613dea565b83116123b6576105a6918391612c4b565b6321727a3760e11b5f5260045ffd5b636c6c627d60e11b5f5260045ffd5b3461048a57604036600319011261048a57602061063e6024356004356123f982610502565b612bb1565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116105e557565b919082039182116105e557565b818102929181159184041417156105e557565b90600182018092116105e557565b919082018092116105e557565b6001600160a01b03165f908152600e6020526040902061090c929190612fe0565b9081602091031261048a575190565b6040513d5f823e3d90fd5b6001600160401b03166001600160401b03195f5160206144135f395f51905f525416175f5160206144135f395f51905f5255565b506124fa926124eb92916001600160a01b0381166128b0575b5036916108bb565b60208082518301019101613a60565b80516001600160a01b0316156128a1576040810165ffffffffffff612525825165ffffffffffff1690565b16156128925760c082018051909190612546906001600160a01b0316610bb9565b15612740575b91612684610140926126236125fe6126e396612599612571875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125f26125c942612dc5565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126436126336060850151151590565b60ff80195f541691151516175f55565b61266a6126536080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61267760a0840151600455565b516001600160a01b031690565b6001600160a01b038116612730575b5060e08101516001600160a01b031680612720575b506101008101516001600160a01b031680612710575b506101208101516001600160a01b031680612700575b5001516001600160a01b031690565b6001600160a01b0381166126f45750565b6126fd9061352d565b50565b6127099061346c565b505f6126d4565b612719906133ab565b505f6126be565b612729906132ea565b505f6126a8565b6127399061324e565b505f612693565b60e0830151612757906001600160a01b0316610bb9565b15612831575b610120830151612775906001600160a01b0316610bb9565b61254c57916127876080820151151590565b156127e95760a081015115806127ca575b6127bb57612684610140926126236125fe6126e3965b949650505092505061254c565b63183c854560e21b5f5260045ffd5b506101408101516127e3906001600160a01b0316610bb9565b15612798565b60a081015115801590612811575b6127bb57612684610140926126236125fe6126e3966127ae565b5061014081015161282a906001600160a01b0316610bb9565b15156127f7565b60608301511561286657610100830151612853906001600160a01b0316610bb9565b61275d5763183c854560e21b5f5260045ffd5b61010083015161287e906001600160a01b0316610bb9565b1561275d5763183c854560e21b5f5260045ffd5b6368f5f8f160e11b5f5260045ffd5b6368f7a67560e11b5f5260045ffd5b6128c4906128bc613fff565b612334613fff565b5f6124e3565b6001600160a01b03165f908152600e602052604090206128e990613dea565b6128f1613cdc565b6128f9613d63565b90600181018091116105e557600182018092116105e55761090c92613b68565b9065ffffffffffff8091169116039065ffffffffffff82116105e557565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff169081156129675765ffffffffffff160490565b612937565b65ffffffffffff61299c61297f42612dc5565b61299260015491848360a01c1690612919565b9060d01c9061294b565b1690565b60015465ffffffffffff8160a01c16908165ffffffffffff8416106129d35761299261299c9265ffffffffffff94612919565b63b7d0949760e01b5f5260045ffd5b906129eb612c13565b5f926001600160a01b038316928315611ee1578115612aab575f5b828110612a8157505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612a56918491612a519060101c6001600160a01b0316610bb9565b613bf3565b612a67604051928392339684612ace565b0390a39061088f60015f5160206143f35f395f51905f5255565b9482861015612aa657612a9f6001916114ee8860051b870135613c49565b9501612a06565b612aba565b63edf3b93360e01b5f5260045ffd5b634e487b7160e01b5f52603260045260245ffd5b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b519061088f82610a96565b9081602091031261048a575161090c81610a96565b519061088f82610502565b9081602091031261048a575161090c81610502565b6001600160a01b03168015612b9e575f5160206143b35f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b90612bd790825f52600860205260405f209060018060a01b03165f5260205260405f2090565b5490805f52600660205260405f2054905f52600760205260405f205490600181018091116105e557600182018092116105e55761090c92613b68565b60025f5160206143f35f395f51905f525414612c3c5760025f5160206143f35f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b335f908152600e6020526040902093929190612c6642612dc5565b335f908152600e60205260409020612c7d90613dea565b918483039283116105e557612cb87febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d43996139b6565b5050612cd2612cc642612dc5565b610cc087611488613d63565b5050612cec612ce042612dc5565b610cab84611488613cdc565b5050612d9181612d7c612d05612d0061296c565b612440565b612d5b612d1a825f52600660205260405f2090565b54612d2d835f52600760205260405f2090565b54612d3982828b613e38565b9d8e998a9361244e565b612d55855f52600660205260405f2090565b5561244e565b612d6d825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d9c83825461244e565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff8111612ddd5765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9081602091031261048a575163ffffffff8116810361048a5790565b63ffffffff60019116019063ffffffff82116105e557565b90805115612f085780602080612e4393518301019101612df4565b612e4e81600a613f30565b90612e5f825165ffffffffffff1690565b9065ffffffffffff8416918265ffffffffffff821614612efc57829065ffffffffffff16109182612ea6575b5050612e9d575061090c90600a613e5b565b60209150015190565b909150612eb4600a54612412565b63ffffffff831614918215612ecd575b50505f80612e8b565b612ef49192506125f2612ee2612ee992612e10565b600a613f30565b65ffffffffffff1690565b115f80612ec4565b50505060209150015190565b5061090c90600a613e5b565b90805115612fd45780602080612f2f93518301019101612df4565b612f3a81600c613f30565b90612f4b825165ffffffffffff1690565b9065ffffffffffff8416918265ffffffffffff821614612efc57829065ffffffffffff16109182612f89575b5050612e9d575061090c90600c613e5b565b909150612f97600c54612412565b63ffffffff831614918215612fb0575b50505f80612f77565b612fcc9192506125f2612fc5612ee992612e10565b600c613f30565b115f80612fa7565b5061090c90600c613e5b565b918051156130b15780602080612ffb93518301019101612df4565b916130068382613f30565b92613017845165ffffffffffff1690565b9065ffffffffffff8416918265ffffffffffff8216146130a557829065ffffffffffff1610918261305c575b50506130535761090c9250613e5b565b50506020015190565b9091506130698354612412565b63ffffffff831614918215613082575b50505f80613043565b61309d9192506125f2613097612ee992612e10565b85613f30565b115f80613079565b50505050506020015190565b5061090c91613e5b565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090205460ff16156130f357565b63e2517d3f60e01b5f52336004527fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c02360245260445ffd5b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090205460ff161561316257565b63e2517d3f60e01b5f52336004527fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac60245260445ffd5b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090205460ff16156131d157565b63e2517d3f60e01b5f52336004527f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e0660245260445ffd5b5f8181525f5160206143d35f395f51905f526020908152604080832033845290915290205460ff16156132385750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166132e5576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f5160206143935f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090205460ff166132e5576001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed6960205260409020805460ff1916600117905533906001600160a01b03167fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0235f5160206143935f395f51905f525f80a4600190565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090205460ff166132e5576001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e954060205260409020805460ff1916600117905533906001600160a01b03167f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e065f5160206143935f395f51905f525f80a4600190565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090205460ff166132e5576001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a60205260409020805460ff1916600117905533906001600160a01b03167fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac5f5160206143935f395f51905f525f80a4600190565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090205460ff166132e5576001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020805460ff1916600117905533906001600160a01b03167f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792335f5160206143935f395f51905f525f80a4600190565b5f8181525f5160206143d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661367d575f8181525f5160206143d35f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316905f5160206143935f395f51905f525f80a4600190565b50505f90565b5f8181525f5160206143d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561367d575f8181525f5160206143d35f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af160015f5114811615613792575b6040919091525f606052155b6137775750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b60018115166137a8573d15833b15151616613764565b503d5f823e3d90fd5b8054821015612aa6575f5260205f2001905f90565b8054600160401b81101561083e576137e3916001820181556137b1565b81545f1960039290921b9190911b19169055565b90815491600160401b83101561083e578261381a91600161088f950181556137b1565b90919082549060031b91821b915f19901b1916179055565b919091600d54156138e7575b613848600c613fc4565b5091600d5491613858600c613dea565b93816138cd575b50156138ab57505f1981018181116105e557600d541115612aa657600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b9190565b6138c0916001600160d01b031690600c614106565b50506138a783600d6137f7565b65ffffffffffff91501665ffffffffffff8216145f61385f565b6138f1600d6137c6565b61383e565b919091600b54156139a7575b61390c600a613fc4565b5091600b549161391c600a613dea565b938161398d575b501561396b57505f1981018181116105e557600b541115612aa657600b5f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613980916001600160d01b031690600a614106565b50506138a783600b6137f7565b65ffffffffffff91501665ffffffffffff8216145f613923565b6139b1600b6137c6565b613902565b909291926001820190815415613a47575b846139d184613fc4565b509490928454936139e183613dea565b9681613a2d575b5015613a0a575050505f1981019081116105e55761381a85916138a7936137b1565b6138a7949293613a26926001600160d01b039091169190614106565b50506137f7565b65ffffffffffff91501665ffffffffffff8216145f6139e8565b613a50826137c6565b6139c7565b519061088f826107ff565b908161016091031261048a57613b22610140613a7a61087f565b92613a8481612b20565b8452613a9260208201612b20565b6020850152613aa360408201613a55565b6040850152613ab460608201612b00565b6060850152613ac560808201612b00565b608085015260a081015160a0850152613ae060c08201612b20565b60c0850152613af160e08201612b20565b60e0850152613b036101008201612b20565b610100850152613b166101208201612b20565b61012085015201612b20565b61014082015290565b5f5160206143b35f395f51905f52546001600160a01b03163303613b4b57565b63118cdaa760e01b5f523360045260245ffd5b8115612967570490565b91613b73828461402a565b9290938415613be65784831115613bd95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b601160038415021861403d565b50509061090c9250613b5e565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af160015f5114811615613c33575b60409190915215613770565b60018115166137a8573d15833b15151616613c27565b90613c5261296c565b821015613ccd575f82815260096020908152604080832033845290915290205460ff16613cbe57613c833383612bb1565b918215613caf575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6366c0bcbf60e11b5f5260045ffd5b630c8d9eab60e31b5f5260045ffd5b63d5b25b6360e01b5f5260045ffd5b600c5480613d2a57505f5b6001600160d01b038116156132e557600d54811015612aa657600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5015490565b805f198101116105e557600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ce7565b600a5480613db157505f5b6001600160d01b038116156132e557600b54811015612aa657600b5f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9015490565b805f198101116105e557600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613d6e565b805480613e1957505f5b6001600160d01b0381161561367d576001613e0f92016137b1565b90549060031b1c90565b805f198101116105e5575f82815260209020015f19015460301c613df4565b9091600183018093116105e557600181018091116105e55761090c925f9261404d565b908154905f829160058411613ec5575b613e76935084614336565b80613e9e57505f905b6001600160d01b0382161561367d5761090c916001613e0f92016137b1565b613eb8613ead613ebf92612412565b835f5260205f200190565b5460301c90565b90613e7f565b9192613ed0816141d8565b81039081116105e557613e7693855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14613f06575091613e6b565b929150613f1290612440565b90613e6b565b60405190613f2582610843565b5f6020838281520152565b9060206001613f54613f8093613f44613f18565b50613f4d613f18565b50856137b1565b509360405194613f6386610843565b549465ffffffffffff86169586825260301c9384910152016137b1565b90549060031b1c60405191613f9660408461085e565b8252602082015290565b9091600183018093116105e557600181018091116105e55761090c9260019261404d565b80549081613fd65750505f905f905f90565b815f198101116105e5575f525f199060205f2001015460019165ffffffffffff82169160301c90565b60ff5f5160206144135f395f51905f525460401c161561401b57565b631afcd79f60e31b5f5260045ffd5b905f198183099102908180821091030391565b634e487b715f526020526024601cfd5b919061405a828285613b68565b936004811015614097576001809116149283614082575b505050151581018091116105e55790565b909180935015612967570915155f8080614071565b634e487b7160e01b5f52602160045260245ffd5b8054600160401b81101561083e576140c8916001820181556137b1565b6140f357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939280156141ae5761411d61412891612412565b825f5260205f200190565b8054603081901c9365ffffffffffff9182169291811680841161419f5787930361416b57506138a792509065ffffffffffff82549181199060301b169116179055565b9150506138a79161418b61417d610891565b65ffffffffffff9093168352565b6001600160d01b03861660208301526140ab565b632520601d60e01b5f5260045ffd5b50906141d3916141bf61417d610891565b6001600160d01b03851660208301526140ab565b5f9190565b600181111561090c57806001600160801b8210156142f9575b61429f61429561428b61428161427761426d61425c6142a69760048a600160401b6142ab9c10156142ec575b6401000000008110156142df575b620100008110156142d2575b6101008110156142c5575b60108110156142b8575b10156142b0575b60030260011c90565b614266818b613b5e565b0160011c90565b614266818a613b5e565b6142668189613b5e565b6142668188613b5e565b6142668187613b5e565b6142668186613b5e565b8093613b5e565b821190565b900390565b60011b614253565b60041c9160021b9161424c565b60081c9160041b91614242565b60101c9160081b91614237565b60201c9160101b9161422b565b60401c9160201b9161421d565b50506142ab6142a661429f61429561428b61428161427761426d61425c6143208a60801c90565b9850600160401b97506141f19650505050505050565b905b8383106143455750505090565b90919280841860011c8185160190835f5265ffffffffffff8260205f2001541665ffffffffffff8416105f1461437f5750925b9190614338565b93506001810180911115614378576123fe56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dfb2d72951c8ad9df68037446ee7590bfe9ede1b143c37cc539e0685ecaf947a64736f6c63430008230033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"982:14933:148:-:0;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;2365:1:28;;1505:66;2365:1;3174:36:149;;3220:32;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;7894:76:15;;-1:-1:-1;;;;;;;;;;;982:14933:148;;7983:34:15;7979:146;;-1:-1:-1;853:17:124;;;982:14933:148;;;;;;;;3174:36:149;982:14933:148;;;;;;;;;;3220:32:149;982:14933:148;;;;;;;;;;853:17:124;982:14933:148;;;;;;;;;;;7979:146:15;-1:-1:-1;;;;;;982:14933:148;-1:-1:-1;;;;;982:14933:148;;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;8085:29:15;;982:14933:148;;8085:29:15;7979:146;;;7894:76;7936:23;;;-1:-1:-1;7936:23:15;;-1:-1:-1;7936:23:15;982:14933:148;-1:-1:-1;982:14933:148;;;;;;-1:-1:-1;982:14933:148;;;;;-1:-1:-1;982:14933:148;;;;-1:-1:-1;;;;;982:14933:148;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146104345780631415519b1461042f5780631b66c9e11461042a5780631e9a695014610425578063248a9ca31461042057806327810b6e1461041b578063281f5752146104165780632abe3048146104115780632d73c69c1461040c5780632dd31000146104075780632f2ff15d1461040257806336568abe146103fd578063392e53cd146103f85780634105a7dd146103f357806346361671146103ee57806347e7ef24146103e957806348d3b775146103e45780634ff0876a146103df57806350861adc146103da57806350f22068146103d55780635346e34f146103d057806354fd4d50146103cb57806357ec83cc146103c657806359f769a9146103c15780635cc07076146103bc57806361a8c8c4146103b75780636da3e06d146103b25780636ec1e3f8146103ad578063715018a6146103a85780637278e31c146103a357806373790ab31461039e5780637667180814610399578063794b15b7146103945780637953b33b1461038f5780637c04c80a1461038a578063810da75d1461038557806383cd9cc31461038057806387df07881461037b5780638b0e9f3f146103765780638da5cb5b1461037157806391d148541461036c5780639d66201b146103675780639f86fd8514610362578063a1b122021461035d578063a217fddf14610358578063a21a1df914610353578063a28614661461034e578063a3b5417214610349578063a5d0322314610344578063aabc24961461033f578063aad3ec961461033a578063afba70ad14610335578063b134427114610330578063bd49c35f1461032b578063bdc8144b14610326578063bfefcd7b14610321578063c31e8dd71461031c578063ce9b793014610317578063d547741f14610312578063d8dfeb451461030d578063db38871514610308578063ecf7085814610303578063efb559d6146102fe578063f2fde38b146102f9578063f3fef3a3146102f45763f5e7ee0f146102ef575f80fd5b6123d4565b612339565b61230c565b6121ab565b61218e565b612154565b612129565b6120dc565b6120b4565b61204a565b612030565b611f5c565b611f42565b611f1a565b611ef0565b611e2c565b611c7e565b611c38565b611beb565b611b06565b611acc565b611ab2565b611a8e565b6119b6565b61197c565b61191e565b6118ea565b611888565b611844565b61167d565b611664565b6115f8565b6115d1565b611591565b611577565b611537565b61126c565b611205565b6111e0565b61119c565b611143565b611119565b6110f2565b610faa565b610f78565b610ee6565b610ecd565b610e70565b610e50565b610e2f565b610b60565b610b38565b610aa0565b610a5b565b610a13565b6109bf565b61097b565b61090f565b61072c565b61066e565b610646565b610607565b610513565b6104c8565b61048e565b3461048a57602036600319011261048a5760043563ffffffff60e01b811680910361048a57602090637965db0b60e01b8114908115610479575b506040519015158152f35b6301ffc9a760e01b1490505f61046e565b5f80fd5b3461048a575f36600319011261048a5760206040517fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac8152f35b3461048a575f36600319011261048a5760206040517f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e068152f35b6001600160a01b0381160361048a57565b3461048a57604036600319011261048a5760043561053081610502565b6024359061053c612c13565b6001600160a01b038116156105f957335f52600e60205261055f60405f20613dea565b82116105ea5761056d613cdc565b610575613d63565b600182018092116105e557600181018091116105e5576105959184613b68565b9182156105d657826105a692612c4b565b906105bd60015f5160206143f35f395f51905f5255565b60408051918252602082019290925290819081015b0390f35b637fba223960e11b5f5260045ffd5b6123fe565b632418411f60e11b5f5260045ffd5b6208978560e71b5f5260045ffd5b3461048a57602036600319011261048a57602061063e6004355f525f5160206143d35f395f51905f52602052600160405f20015490565b604051908152f35b3461048a575f36600319011261048a576001546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a5761068661296c565b80156106da5760015465ffffffffffff8160a01c16915f1981019081116105e5576106b49160d01c9061242d565b81018091116105e5576106c690612dc5565b60405165ffffffffffff9091168152602090f35b639fa56a5b60e01b5f5260045ffd5b600435906001600160401b038216820361048a57565b9181601f8401121561048a578235916001600160401b03831161048a576020838186019501011161048a57565b3461048a57604036600319011261048a576107456106e9565b6024356001600160401b03811161048a576107649036906004016106ff565b505061076e612c13565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107f0575f5160206144135f395f51905f525460ff8160401c169081156107d9575b506107ca5761048a90612496565b63f92ee8a960e01b5f5260045ffd5b90506001600160401b03808316911610155f6107bc565b631966391b60e11b5f5260045ffd5b65ffffffffffff81160361048a57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761083e57604052565b61080f565b604081019081106001600160401b0382111761083e57604052565b90601f801991011681019081106001600160401b0382111761083e57604052565b6040519061088f6101608361085e565b565b6040519061088f60408361085e565b6001600160401b03811161083e57601f01601f191660200190565b9291926108c7826108a0565b916108d5604051938461085e565b82948184528183011161048a578281602093845f960137010152565b9080601f8301121561048a5781602061090c933591016108bb565b90565b3461048a57606036600319011261048a5760043561092c81610502565b60243590610939826107ff565b604435906001600160401b03821161048a5760209261095f61063e9336906004016108f1565b6001600160a01b039092165f908152600e855260409020612fe0565b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a57604036600319011261048a57610a116024356004356109e282610502565b610a0c610a07825f525f5160206143d35f395f51905f52602052600160405f20015490565b613208565b6135ee565b005b3461048a57604036600319011261048a57600435602435610a3381610502565b336001600160a01b03821603610a4c57610a1191613683565b63334bd91960e11b5f5260045ffd5b3461048a575f36600319011261048a5760ff60025460a01c1680610a87575b6020906040519015158152f35b5060035460a01c60ff16610a7a565b8015150361048a57565b3461048a57602036600319011261048a57600435610abd81610a96565b610ac5612c13565b610acd6130bb565b5f54901515908160ff8216151514610b295760ff191660ff8216175f556040519081527f3e12b7b36c75ac9609a3f58609b331210428e1a85909132638955ba0301eec3390602090a160015f5160206143f35f395f51905f5255005b63a741a04560e01b5f5260045ffd5b3461048a575f36600319011261048a57602065ffffffffffff60015460a01c16604051908152f35b3461048a57604036600319011261048a57600435610b7d81610502565b602435610b88612c13565b6001600160a01b0382168015610e20575f5460ff811680610e07575b610df857610bc59060101c6001600160a01b03165b6001600160a01b031690565b6040516370a0823160e01b815230600482015292906020846024816001600160a01b0385165afa938415610dcc575f94610dd1575b5090610c099130903390613723565b5f5491610c23610bb9601085901c6001600160a01b031681565b6040516370a0823160e01b81523060048201529190602090839060249082905afa8015610dcc57610c5b925f91610d9d575b50612420565b918215610d8e5760081c60ff1680610d78575b610d6957610d1e610c7d613cdc565b93610cc6610c89613d63565b610cb1610c97888389613e38565b97610cab88610ca542612dc5565b9261244e565b90613832565b5050610cc087610ca542612dc5565b906138f6565b50506001600160a01b0381165f908152600e6020526040902090610d1886610d13610d0e610cf342612dc5565b6001600160a01b039095165f908152600e6020526040902090565b613dea565b61244e565b916139b6565b5050604080518381526020810185905233917fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d791a36105bd60015f5160206143f35f395f51905f5255565b632484557960e01b5f5260045ffd5b50610d8582610d13613cdc565b60045410610c6e565b63070f6eed60e11b5f5260045ffd5b610dbf915060203d602011610dc5575b610db7818361085e565b81019061247c565b5f610c55565b503d610dad565b61248b565b610c0992919450610df09060203d602011610dc557610db7818361085e565b939091610bfa565b6304f63b8560e01b5f5260045ffd5b50335f9081526005602052604090205460ff1615610ba4565b630d534ce360e11b5f5260045ffd5b3461048a575f36600319011261048a57602060ff5f54166040519015158152f35b3461048a575f36600319011261048a57602060015460d01c604051908152f35b3461048a575f36600319011261048a57602060ff60025460a01c166040519015158152f35b90604060031983011261048a57600435610eae816107ff565b91602435906001600160401b03821161048a5761090c916004016108f1565b3461048a57602061063e610ee036610e95565b90612e28565b3461048a57602036600319011261048a57600435610f0381610a96565b610f0b612c13565b610f1361312a565b5f54901515908160ff8260081c16151514610b295761ff001916600882901b61ff0016175f556040519081527ffa7a25a0b611d4ba3c0ea990e90dc23d484a5dd7a1be4733fef2946ba74530c690602090a160015f5160206143f35f395f51905f5255005b3461048a575f36600319011261048a5760206001600160401b035f5160206144135f395f51905f525416604051908152f35b3461048a57606036600319011261048a57610fc36106e9565b602435610fcf81610502565b6044356001600160401b03811161048a57610fee9036906004016106ff565b9290915f5160206144135f395f51905f52546001600160401b03811690816110e45760401c60ff169081156110d0575b506107ca577fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2936110cb936110879261105685612496565b600160401b60ff60401b195f5160206144135f395f51905f525416175f5160206144135f395f51905f5255846124ca565b6110b160ff60401b195f5160206144135f395f51905f5254165f5160206144135f395f51905f5255565b6040516001600160401b0390911681529081906020820190565b0390a1005b90506001600160401b03831611155f61101e565b62dc149f60e41b5f5260045ffd5b3461048a57602036600319011261048a57602061063e60043561111481610502565b6128ca565b3461048a57602036600319011261048a576004355f526006602052602060405f2054604051908152f35b3461048a575f36600319011261048a5760015461117865ffffffffffff8260a01c169161116e61296c565b9060d01c9061242d565b81018091116105e55761118c602091612dc5565b65ffffffffffff60405191168152f35b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a57602060ff60035460a01c166040519015158152f35b3461048a575f36600319011261048a5761121d613b2b565b5f5160206143b35f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048a57604036600319011261048a5760043560243561128c816107ff565b611294612c13565b6003546112a9906001600160a01b0316610bb9565b3303611528576112b761296c565b906112c1816129a0565b9082151580611517575b801561150e575b6114ff576105d2937ff9d090c096f71cd1659861a9ce5b6f384bceb4e2fa4e4a19edf6489a9b8d56c792611304613cdc565b9461131f61131182612440565b5f52600660205260405f2090565b54908281036114195750611333818761244e565b8381188185100281189687806113cb575b50505050505b83611397575b6040805191825265ffffffffffff929092166020820152908101839052606090a161138760015f5160206143f35f395f51905f5255565b6040519081529081906020820190565b5f546113c69085906113b49060101c6001600160a01b0316610bb9565b6001546001600160a01b031690613bf3565b611350565b61140e9361140183610cab6113f16113ea611311986114089888613b68565b8096612420565b946113fb42612dc5565b92612420565b5050612420565b92612440565b555f80808087611344565b915061142d825f52600660205260405f2090565b549061143d81610d13848a61244e565b908482188286100282189788611458575b505050505061134a565b6114cd93836114809361148d8c6114886114766114be998884613b68565b9788958584613b68565b948592612420565b612420565b938484106114d8575b61140190610cab6114ac9596976113fb42612dc5565b6114b861131187612440565b55612420565b915f52600660205260405f2090565b555f8080808061144e565b916114f4611401916114ee866114ac9798612420565b9061244e565b859450929050611496565b635e18d2a560e01b5f5260045ffd5b508282116112d2565b5061152183612412565b82106112cb565b63dabc4ad960e01b5f5260045ffd5b3461048a575f36600319011261048a5760015465ffffffffffff8160a01c169061155f61296c565b600181018091116105e5576111789160d01c9061242d565b3461048a575f36600319011261048a57602061063e61296c565b3461048a57602036600319011261048a576004356115ae81610502565b60018060a01b03165f526005602052602060ff60405f2054166040519015158152f35b3461048a57602036600319011261048a57602061063e6004356115f3816107ff565b6129a0565b3461048a57604036600319011261048a5760043561161581610502565b6024356001600160401b03811161048a573660238201121561048a5780600401356001600160401b03811161048a573660248260051b8401011161048a576105d29260246113879301906129e2565b3461048a57602061063e61167736610e95565b90612f14565b3461048a57602036600319011261048a5760043561169a81610502565b6116a2612c13565b60025460a01c60ff16611835576040516302910f8b60e31b81526001600160a01b0382166004820152602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610dcc575f91611806575b50156117f75760405163fbfa77cf60e01b81526001600160a01b0382169190602081600481865afa908115610dcc575f916117c8575b50306001600160a01b03909116036117b957600280546001600160a01b03929092166001600160a81b031990921691909117600160a01b1790557fdb2160616f776a37b24808115554e79439bf26cccbbd4438190cc6d28e80ecd15f80a2610a1160015f5160206143f35f395f51905f5255565b63b9f0f17160e01b5f5260045ffd5b6117ea915060203d6020116117f0575b6117e2818361085e565b810190612b2b565b5f611745565b503d6117d8565b6324e5af8d60e21b5f5260045ffd5b611828915060203d60201161182e575b611820818361085e565b810190612b0b565b5f61170f565b503d611816565b631380833b60e01b5f5260045ffd5b3461048a575f36600319011261048a576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461048a575f36600319011261048a576118a061296c565b6118a8613cdc565b90805f52600660205260405f205482018092116105e557600181018091116105e5575f52600660205260405f205481018091116105e557604051908152602090f35b3461048a575f36600319011261048a575f5160206143b35f395f51905f52546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57602060ff61197060243560043561194582610502565b5f525f5160206143d35f395f51905f52845260405f209060018060a01b03165f5260205260405f2090565b54166040519015158152f35b3461048a57602036600319011261048a5760043561199981610502565b60018060a01b03165f52600e602052602061063e60405f20613dea565b3461048a57604036600319011261048a576004356119d381610502565b6024356001600160401b03811161048a575f916119f5839236906004016106ff565b90816040519283928337810184815203915af43d15611a8157611a7960803d92611a1e846108a0565b93611a2c604051958661085e565b84523d5f602086013e5b60206040519485921515828401526040808401528051918291826060860152018484015e5f838284010152601f801991011681010301601f19810183528261085e565b805190602001fd5b611a796080606092611a36565b3461048a575f36600319011261048a57602060ff5f5460081c166040519015158152f35b3461048a575f36600319011261048a5760206040515f8152f35b3461048a575f36600319011261048a5760206040517f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792338152f35b3461048a57604036600319011261048a57600435611b2381610502565b60243590611b3082610a96565b611b38612c13565b611b40613199565b6001600160a01b0316908115611bdc57815f52600560205260ff60405f20541681151590151514610b2957611bc37ff991b1ecfb5115cbb36a2b2e2240c058406d2acc2fcc6e9e2dc99d845ff70a6291835f526005602052611bb18160405f209060ff801983541691151516179055565b60405190151581529081906020820190565b0390a2610a1160015f5160206143f35f395f51905f5255565b630da30f6560e31b5f5260045ffd5b3461048a57604036600319011261048a576020611c2f602435600435611c1082610502565b5f526008835260405f209060018060a01b03165f5260205260405f2090565b54604051908152f35b3461048a57604036600319011261048a57602060ff611970602435600435611c5f82610502565b5f526009845260405f209060018060a01b03165f5260205260405f2090565b3461048a57602036600319011261048a57600435611c9b81610502565b611ca3612c13565b60035460a01c60ff16611e1d576001600160a01b0381169081611d0f575b506003805460ff60a01b1916600160a01b1790557fe7e4c932e03abddfe20f83af42c33627e816115c7ec2b168441f65dc14bfc3ba5f80a2610a1160015f5160206143f35f395f51905f5255565b6040516302910f8b60e31b81526001600160a01b0382166004820152602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610dcc575f91611dfe575b50156115285760405163fbfa77cf60e01b8152602081600481865afa908115610dcc575f91611ddf575b50306001600160a01b0390911603611dd057600380546001600160a01b0319166001600160a01b039092169190911790555f611cc1565b633f3e089160e21b5f5260045ffd5b611df8915060203d6020116117f0576117e2818361085e565b5f611d99565b611e17915060203d60201161182e57611820818361085e565b5f611d6f565b63703fe2e560e01b5f5260045ffd5b3461048a57604036600319011261048a57600435611e4981610502565b60243590611e55612c13565b6001600160a01b0381168015611ee15782611e8c611e756105d295613c49565b5f549094859160101c6001600160a01b0316613bf3565b604080519182526020820184905233917f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e946459190a360015f5160206143f35f395f51905f52556040519081529081906020820190565b634e46966960e11b5f5260045ffd5b3461048a57602036600319011261048a576004355f526007602052602060405f2054604051908152f35b3461048a575f36600319011261048a576003546040516001600160a01b039091168152602090f35b3461048a575f36600319011261048a57602061063e613cdc565b3461048a57602036600319011261048a57600435611f78612c13565b335f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090205460ff1615611ff9578060045414610b29576020817f854df3eb95564502c8bc871ebdd15310ee26270f955f6c6bd8cea68e75045bc092600455604051908152a160015f5160206143f35f395f51905f5255005b63e2517d3f60e01b5f52336004527f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb7923360245260445ffd5b3461048a575f36600319011261048a57602061063e613d63565b3461048a57602036600319011261048a5760043561206781610502565b61206f61296c565b612078826128ca565b916120838183612bb1565b83018093116105e557600182018092116105e5576120a091612bb1565b81018091116105e557602090604051908152f35b3461048a575f36600319011261048a576002546040516001600160a01b039091168152602090f35b3461048a57604036600319011261048a57610a116024356004356120ff82610502565b612124610a07825f525f5160206143d35f395f51905f52602052600160405f20015490565b613683565b3461048a575f36600319011261048a575f5460405160109190911c6001600160a01b03168152602090f35b3461048a575f36600319011261048a5760206040517fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0238152f35b3461048a575f36600319011261048a576020600454604051908152f35b3461048a57606036600319011261048a576004356121c881610502565b602435906121d5826107ff565b6044356001600160401b03811161048a576121f49036906004016106ff565b919060405161220281610823565b6060815260606020820152606060408201529280612253575b6105d2611387868661224d612233888484519161245b565b926040612244602085015183612f14565b93015190612e28565b91613e38565b81019391925060208185031261048a578035906001600160401b03821161048a57019160608385031261048a576040519361228d85610823565b83356001600160401b03811161048a57816122a99186016108f1565b855260208401356001600160401b03811161048a57816122ca9186016108f1565b602086015260408401356001600160401b03811161048a576105d2956122fb61224d936122339361138798016108f1565b60408201529450508192945061221b565b3461048a57602036600319011261048a57610a1160043561232c81610502565b612334613b2b565b612b40565b3461048a57604036600319011261048a5760043561235681610502565b602435612361612c13565b6001600160a01b038216156105f95780156123c557612390612381613d63565b612389613cdc565b9083613fa0565b91335f52600e6020526123a560405f20613dea565b83116123b6576105a6918391612c4b565b6321727a3760e11b5f5260045ffd5b636c6c627d60e11b5f5260045ffd5b3461048a57604036600319011261048a57602061063e6024356004356123f982610502565b612bb1565b634e487b7160e01b5f52601160045260245ffd5b5f198101919082116105e557565b919082039182116105e557565b818102929181159184041417156105e557565b90600182018092116105e557565b919082018092116105e557565b6001600160a01b03165f908152600e6020526040902061090c929190612fe0565b9081602091031261048a575190565b6040513d5f823e3d90fd5b6001600160401b03166001600160401b03195f5160206144135f395f51905f525416175f5160206144135f395f51905f5255565b506124fa926124eb92916001600160a01b0381166128b0575b5036916108bb565b60208082518301019101613a60565b80516001600160a01b0316156128a1576040810165ffffffffffff612525825165ffffffffffff1690565b16156128925760c082018051909190612546906001600160a01b0316610bb9565b15612740575b91612684610140926126236125fe6126e396612599612571875160018060a01b031690565b5f805462010000600160b01b03191660109290921b62010000600160b01b0316919091179055565b6020860151600180546001600160a01b0319166001600160a01b039092169190911790556125f26125c942612dc5565b6001805465ffffffffffff60a01b191660a09290921b65ffffffffffff60a01b16919091179055565b5165ffffffffffff1690565b600180546001600160d01b031660d09290921b6001600160d01b031916919091179055565b6126436126336060850151151590565b60ff80195f541691151516175f55565b61266a6126536080850151151590565b61ff005f5491151560081b169061ff001916175f55565b61267760a0840151600455565b516001600160a01b031690565b6001600160a01b038116612730575b5060e08101516001600160a01b031680612720575b506101008101516001600160a01b031680612710575b506101208101516001600160a01b031680612700575b5001516001600160a01b031690565b6001600160a01b0381166126f45750565b6126fd9061352d565b50565b6127099061346c565b505f6126d4565b612719906133ab565b505f6126be565b612729906132ea565b505f6126a8565b6127399061324e565b505f612693565b60e0830151612757906001600160a01b0316610bb9565b15612831575b610120830151612775906001600160a01b0316610bb9565b61254c57916127876080820151151590565b156127e95760a081015115806127ca575b6127bb57612684610140926126236125fe6126e3965b949650505092505061254c565b63183c854560e21b5f5260045ffd5b506101408101516127e3906001600160a01b0316610bb9565b15612798565b60a081015115801590612811575b6127bb57612684610140926126236125fe6126e3966127ae565b5061014081015161282a906001600160a01b0316610bb9565b15156127f7565b60608301511561286657610100830151612853906001600160a01b0316610bb9565b61275d5763183c854560e21b5f5260045ffd5b61010083015161287e906001600160a01b0316610bb9565b1561275d5763183c854560e21b5f5260045ffd5b6368f5f8f160e11b5f5260045ffd5b6368f7a67560e11b5f5260045ffd5b6128c4906128bc613fff565b612334613fff565b5f6124e3565b6001600160a01b03165f908152600e602052604090206128e990613dea565b6128f1613cdc565b6128f9613d63565b90600181018091116105e557600182018092116105e55761090c92613b68565b9065ffffffffffff8091169116039065ffffffffffff82116105e557565b634e487b7160e01b5f52601260045260245ffd5b9065ffffffffffff169081156129675765ffffffffffff160490565b612937565b65ffffffffffff61299c61297f42612dc5565b61299260015491848360a01c1690612919565b9060d01c9061294b565b1690565b60015465ffffffffffff8160a01c16908165ffffffffffff8416106129d35761299261299c9265ffffffffffff94612919565b63b7d0949760e01b5f5260045ffd5b906129eb612c13565b5f926001600160a01b038316928315611ee1578115612aab575f5b828110612a8157505f547f326b6aff1cd2fb1c8234de4f9dcfb9047c5c36eb9ef2eb34af5121e969a75d279286929091612a56918491612a519060101c6001600160a01b0316610bb9565b613bf3565b612a67604051928392339684612ace565b0390a39061088f60015f5160206143f35f395f51905f5255565b9482861015612aa657612a9f6001916114ee8860051b870135613c49565b9501612a06565b612aba565b63edf3b93360e01b5f5260045ffd5b634e487b7160e01b5f52603260045260245ffd5b604080825281018390529392916001600160fb1b03811161048a5760209160609160051b809183880137850101930152565b519061088f82610a96565b9081602091031261048a575161090c81610a96565b519061088f82610502565b9081602091031261048a575161090c81610502565b6001600160a01b03168015612b9e575f5160206143b35f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b90612bd790825f52600860205260405f209060018060a01b03165f5260205260405f2090565b5490805f52600660205260405f2054905f52600760205260405f205490600181018091116105e557600182018092116105e55761090c92613b68565b60025f5160206143f35f395f51905f525414612c3c5760025f5160206143f35f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b335f908152600e6020526040902093929190612c6642612dc5565b335f908152600e60205260409020612c7d90613dea565b918483039283116105e557612cb87febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f938593612d43996139b6565b5050612cd2612cc642612dc5565b610cc087611488613d63565b5050612cec612ce042612dc5565b610cab84611488613cdc565b5050612d9181612d7c612d05612d0061296c565b612440565b612d5b612d1a825f52600660205260405f2090565b54612d2d835f52600760205260405f2090565b54612d3982828b613e38565b9d8e998a9361244e565b612d55855f52600660205260405f2090565b5561244e565b612d6d825f52600760205260405f2090565b555f52600860205260405f2090565b9060018060a01b03165f5260205260405f2090565b612d9c83825461244e565b9055604080519485526020850195909552938301526001600160a01b03909216913391606090a3565b65ffffffffffff8111612ddd5765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9081602091031261048a575163ffffffff8116810361048a5790565b63ffffffff60019116019063ffffffff82116105e557565b90805115612f085780602080612e4393518301019101612df4565b612e4e81600a613f30565b90612e5f825165ffffffffffff1690565b9065ffffffffffff8416918265ffffffffffff821614612efc57829065ffffffffffff16109182612ea6575b5050612e9d575061090c90600a613e5b565b60209150015190565b909150612eb4600a54612412565b63ffffffff831614918215612ecd575b50505f80612e8b565b612ef49192506125f2612ee2612ee992612e10565b600a613f30565b65ffffffffffff1690565b115f80612ec4565b50505060209150015190565b5061090c90600a613e5b565b90805115612fd45780602080612f2f93518301019101612df4565b612f3a81600c613f30565b90612f4b825165ffffffffffff1690565b9065ffffffffffff8416918265ffffffffffff821614612efc57829065ffffffffffff16109182612f89575b5050612e9d575061090c90600c613e5b565b909150612f97600c54612412565b63ffffffff831614918215612fb0575b50505f80612f77565b612fcc9192506125f2612fc5612ee992612e10565b600c613f30565b115f80612fa7565b5061090c90600c613e5b565b918051156130b15780602080612ffb93518301019101612df4565b916130068382613f30565b92613017845165ffffffffffff1690565b9065ffffffffffff8416918265ffffffffffff8216146130a557829065ffffffffffff1610918261305c575b50506130535761090c9250613e5b565b50506020015190565b9091506130698354612412565b63ffffffff831614918215613082575b50505f80613043565b61309d9192506125f2613097612ee992612e10565b85613f30565b115f80613079565b50505050506020015190565b5061090c91613e5b565b335f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090205460ff16156130f357565b63e2517d3f60e01b5f52336004527fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c02360245260445ffd5b335f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090205460ff161561316257565b63e2517d3f60e01b5f52336004527fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac60245260445ffd5b335f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090205460ff16156131d157565b63e2517d3f60e01b5f52336004527f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e0660245260445ffd5b5f8181525f5160206143d35f395f51905f526020908152604080832033845290915290205460ff16156132385750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff166132e5576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391905f5160206143935f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed69602052604090205460ff166132e5576001600160a01b0381165f9081527f03b26b53c87faa1058f30bb5d2fee64f717719a0d9b7e4f4df027aa5e9b6ed6960205260409020805460ff1916600117905533906001600160a01b03167fbae4ee3de6c709ff9a002e774c5b78cb381560b219213c88ae0f1e207c03c0235f5160206143935f395f51905f525f80a4600190565b6001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e9540602052604090205460ff166132e5576001600160a01b0381165f9081527f0287ab4cb376ea253d7b2ce0c2cbf458f7deae9458470d74afdfbbee484e954060205260409020805460ff1916600117905533906001600160a01b03167f9c56d972d63cbb4195b3c1484691dfc220fa96a4c47e7b6613bd82a022029e065f5160206143935f395f51905f525f80a4600190565b6001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a602052604090205460ff166132e5576001600160a01b0381165f9081527fe41986b390c4ce6791b87f7423b5fab7a81a0e6d89660b6264f697d008b2243a60205260409020805460ff1916600117905533906001600160a01b03167fc6aaadd7371d5e8f9ed6849dd66a66573a3ba37167d03f4352c9ba5693678fac5f5160206143935f395f51905f525f80a4600190565b6001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d67216602052604090205460ff166132e5576001600160a01b0381165f9081527f2d4ccbfe9f7672a6f2537c1e5bce6adacb73706879154bbab6ce096012d6721660205260409020805460ff1916600117905533906001600160a01b03167f4a634bc14d77baf979756509ef4298c6f6318af357828612545267ee2eb792335f5160206143935f395f51905f525f80a4600190565b5f8181525f5160206143d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661367d575f8181525f5160206143d35f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916600117905533916001600160a01b0316905f5160206143935f395f51905f525f80a4600190565b50505f90565b5f8181525f5160206143d35f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561367d575f8181525f5160206143d35f395f51905f52602090815260408083206001600160a01b03861684529091529020805460ff1916905533916001600160a01b0316907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af160015f5114811615613792575b6040919091525f606052155b6137775750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b60018115166137a8573d15833b15151616613764565b503d5f823e3d90fd5b8054821015612aa6575f5260205f2001905f90565b8054600160401b81101561083e576137e3916001820181556137b1565b81545f1960039290921b9190911b19169055565b90815491600160401b83101561083e578261381a91600161088f950181556137b1565b90919082549060031b91821b915f19901b1916179055565b919091600d54156138e7575b613848600c613fc4565b5091600d5491613858600c613dea565b93816138cd575b50156138ab57505f1981018181116105e557600d541115612aa657600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb4018390559190565b9190565b6138c0916001600160d01b031690600c614106565b50506138a783600d6137f7565b65ffffffffffff91501665ffffffffffff8216145f61385f565b6138f1600d6137c6565b61383e565b919091600b54156139a7575b61390c600a613fc4565b5091600b549161391c600a613dea565b938161398d575b501561396b57505f1981018181116105e557600b541115612aa657600b5f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8018390559190565b613980916001600160d01b031690600a614106565b50506138a783600b6137f7565b65ffffffffffff91501665ffffffffffff8216145f613923565b6139b1600b6137c6565b613902565b909291926001820190815415613a47575b846139d184613fc4565b509490928454936139e183613dea565b9681613a2d575b5015613a0a575050505f1981019081116105e55761381a85916138a7936137b1565b6138a7949293613a26926001600160d01b039091169190614106565b50506137f7565b65ffffffffffff91501665ffffffffffff8216145f6139e8565b613a50826137c6565b6139c7565b519061088f826107ff565b908161016091031261048a57613b22610140613a7a61087f565b92613a8481612b20565b8452613a9260208201612b20565b6020850152613aa360408201613a55565b6040850152613ab460608201612b00565b6060850152613ac560808201612b00565b608085015260a081015160a0850152613ae060c08201612b20565b60c0850152613af160e08201612b20565b60e0850152613b036101008201612b20565b610100850152613b166101208201612b20565b61012085015201612b20565b61014082015290565b5f5160206143b35f395f51905f52546001600160a01b03163303613b4b57565b63118cdaa760e01b5f523360045260245ffd5b8115612967570490565b91613b73828461402a565b9290938415613be65784831115613bd95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b601160038415021861403d565b50509061090c9250613b5e565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af160015f5114811615613c33575b60409190915215613770565b60018115166137a8573d15833b15151616613c27565b90613c5261296c565b821015613ccd575f82815260096020908152604080832033845290915290205460ff16613cbe57613c833383612bb1565b918215613caf575f9081526009602090815260408083203384529091529020805460ff19166001179055565b6366c0bcbf60e11b5f5260045ffd5b630c8d9eab60e31b5f5260045ffd5b63d5b25b6360e01b5f5260045ffd5b600c5480613d2a57505f5b6001600160d01b038116156132e557600d54811015612aa657600d5f527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5015490565b805f198101116105e557600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c6015460301c613ce7565b600a5480613db157505f5b6001600160d01b038116156132e557600b54811015612aa657600b5f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9015490565b805f198101116105e557600a5f527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7015460301c613d6e565b805480613e1957505f5b6001600160d01b0381161561367d576001613e0f92016137b1565b90549060031b1c90565b805f198101116105e5575f82815260209020015f19015460301c613df4565b9091600183018093116105e557600181018091116105e55761090c925f9261404d565b908154905f829160058411613ec5575b613e76935084614336565b80613e9e57505f905b6001600160d01b0382161561367d5761090c916001613e0f92016137b1565b613eb8613ead613ebf92612412565b835f5260205f200190565b5460301c90565b90613e7f565b9192613ed0816141d8565b81039081116105e557613e7693855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14613f06575091613e6b565b929150613f1290612440565b90613e6b565b60405190613f2582610843565b5f6020838281520152565b9060206001613f54613f8093613f44613f18565b50613f4d613f18565b50856137b1565b509360405194613f6386610843565b549465ffffffffffff86169586825260301c9384910152016137b1565b90549060031b1c60405191613f9660408461085e565b8252602082015290565b9091600183018093116105e557600181018091116105e55761090c9260019261404d565b80549081613fd65750505f905f905f90565b815f198101116105e5575f525f199060205f2001015460019165ffffffffffff82169160301c90565b60ff5f5160206144135f395f51905f525460401c161561401b57565b631afcd79f60e31b5f5260045ffd5b905f198183099102908180821091030391565b634e487b715f526020526024601cfd5b919061405a828285613b68565b936004811015614097576001809116149283614082575b505050151581018091116105e55790565b909180935015612967570915155f8080614071565b634e487b7160e01b5f52602160045260245ffd5b8054600160401b81101561083e576140c8916001820181556137b1565b6140f357815160209092015160301b65ffffffffffff191665ffffffffffff92909216919091179055565b634e487b7160e01b5f525f60045260245ffd5b805492939280156141ae5761411d61412891612412565b825f5260205f200190565b8054603081901c9365ffffffffffff9182169291811680841161419f5787930361416b57506138a792509065ffffffffffff82549181199060301b169116179055565b9150506138a79161418b61417d610891565b65ffffffffffff9093168352565b6001600160d01b03861660208301526140ab565b632520601d60e01b5f5260045ffd5b50906141d3916141bf61417d610891565b6001600160d01b03851660208301526140ab565b5f9190565b600181111561090c57806001600160801b8210156142f9575b61429f61429561428b61428161427761426d61425c6142a69760048a600160401b6142ab9c10156142ec575b6401000000008110156142df575b620100008110156142d2575b6101008110156142c5575b60108110156142b8575b10156142b0575b60030260011c90565b614266818b613b5e565b0160011c90565b614266818a613b5e565b6142668189613b5e565b6142668188613b5e565b6142668187613b5e565b6142668186613b5e565b8093613b5e565b821190565b900390565b60011b614253565b60041c9160021b9161424c565b60081c9160041b91614242565b60101c9160081b91614237565b60201c9160101b9161422b565b60401c9160201b9161421d565b50506142ab6142a661429f61429561428b61428161427761426d61425c6143208a60801c90565b9850600160401b97506141f19650505050505050565b905b8383106143455750505090565b90919280841860011c8185160190835f5265ffffffffffff8260205f2001541665ffffffffffff8416105f1461437f5750925b9190614338565b93506001810180911115614378576123fe56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220dfb2d72951c8ad9df68037446ee7590bfe9ede1b143c37cc539e0685ecaf947a64736f6c63430008230033","sourceMap":"982:14933:148:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3549:47:44;;;:87;;;;982:14933:148;;;;;;;;;;3549:87:44;-1:-1:-1;;;1119:40:49;;-1:-1:-1;3549:87:44;;;982:14933:148;-1:-1:-1;982:14933:148;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;967:38:149;982:14933:148;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;822:37:149;982:14933:148;;;;-1:-1:-1;;;;;982:14933:148;;;;;:::o;:::-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;2989:103:28;;;:::i;:::-;-1:-1:-1;;;;;982:14933:148;;5514:21;5510:75;;5623:10;-1:-1:-1;982:14933:148;5579:15:149;982:14933:148;;5579:33:149;982:14933:148;-1:-1:-1;982:14933:148;5579:33:149;:::i;:::-;5599:35:148;;5595:88;;5160:21:149;;:::i;:::-;4790:22;;:::i;:::-;1834:1:140;982:14933:148;;;;;;;;;;;;;;;11235:25:38;1806:79:140;11235:25:38;;:::i;:::-;982:14933:148;5790:20;;5786:82;;5893:43;;;;:::i;:::-;3054:1:28;;2365;-1:-1:-1;;;;;;;;;;;982:14933:148;4047:253:28;3054:1;982:14933:148;;;;;;;;;;;;;;;;;;;;;;5786:82;5833:24;;;-1:-1:-1;5833:24:148;982:14933;-1:-1:-1;5833:24:148;982:14933;;:::i;5595:88::-;5657:15;;;-1:-1:-1;5657:15:148;982:14933;-1:-1:-1;5657:15:148;5510:75;5558:16;;;-1:-1:-1;5558:16:148;982:14933;-1:-1:-1;5558:16:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;-1:-1:-1;982:14933:148;-1:-1:-1;;;;;;;;;;;982:14933:148;;4917:24:44;982:14933:148;-1:-1:-1;982:14933:148;4917:24:44;982:14933:148;4757:191:44;;982:14933:148;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;4071:14:149;;:::i;:::-;4099:10;;4095:65;;4177:17;982:14933:148;;;;;;;;;;;;;;;;4197:27:149;982:14933:148;;;4197:27:149;;:::i;:::-;982:14933:148;;;;;;;4176:60:149;;;:::i;:::-;982:14933:148;;;;;;;;;;;4095:65:149;4132:17;;;982:14933:148;4132:17:149;982:14933:148;;4132:17:149;982:14933:148;;;;-1:-1:-1;;;;;982:14933:148;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;982:14933:148;;;;;;:::i;:::-;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;:::i;:::-;2989:103:28;;;;:::i;:::-;1562:7:124;-1:-1:-1;;;;;982:14933:148;1548:10:124;:21;1544:71;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;6429:44:15;;;;;982:14933:148;6425:105:15;;;6539:24;;;:::i;6425:105::-;6496:23;;;-1:-1:-1;6496:23:15;982:14933:148;-1:-1:-1;6496:23:15;6429:44;982:14933:148;;-1:-1:-1;;;;;982:14933:148;;;;;6448:25:15;;6429:44;;;1544:71:124;1592:12;;;-1:-1:-1;1592:12:124;982:14933:148;-1:-1:-1;1592:12:124;982:14933:148;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;982:14933:148;;;;;;-1:-1:-1;;982:14933:148;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;982:14933:148;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;5370:59:149;982:14933:148;;;;;;:::i;:::-;-1:-1:-1;;;;;982:14933:148;;;-1:-1:-1;982:14933:148;;;5370:15:149;982:14933:148;;;;;5370:59:149;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;595:32:124;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;5348:25:44;982:14933:148;;;;;;;:::i;:::-;3223:4:44;5318:18;;-1:-1:-1;982:14933:148;-1:-1:-1;;;;;;;;;;;982:14933:148;;4917:24:44;982:14933:148;-1:-1:-1;982:14933:148;4917:24:44;982:14933:148;4757:191:44;;5318:18;3223:4;:::i;:::-;5348:25;:::i;:::-;982:14933:148;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;:::i;:::-;987:10:48;-1:-1:-1;;;;;982:14933:148;;6439:34:44;6435:102;;6547:37;;;:::i;6435:102::-;6496:30;;;-1:-1:-1;6496:30:44;982:14933:148;-1:-1:-1;6496:30:44;982:14933:148;;;;;;-1:-1:-1;;982:14933:148;;;;;1515:22;982:14933;;;;1515:46;;;982:14933;;;;;;;;;;;1515:46;-1:-1:-1;1541:20:148;982:14933;;;;;1515:46;;982:14933;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;2989:103:28;;:::i;:::-;3223:4:44;;:::i;:::-;-1:-1:-1;982:14933:148;;;;;;;;;;;9517:26;9513:76;;-1:-1:-1;;982:14933:148;;;;;-1:-1:-1;982:14933:148;;;;;;9640:27;;982:14933;;9640:27;2365:1:28;-1:-1:-1;;;;;;;;;;;982:14933:148;;9513:76;9566:12;;;-1:-1:-1;9566:12:148;982:14933;-1:-1:-1;9566:12:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;;;1719:31:149;982:14933:148;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;2989:103:28;;:::i;:::-;-1:-1:-1;;;;;982:14933:148;;3451:24;;3447:81;;-1:-1:-1;982:14933:148;;;;3542:55;;;982:14933;3538:118;;3690:18;;982:14933;;-1:-1:-1;;;;;982:14933:148;;-1:-1:-1;;;;;982:14933:148;;;3690:18;982:14933;;-1:-1:-1;;;3690:43:148;;3727:4;982:14933;3690:43;;982:14933;;3690:28;982:14933;;;;-1:-1:-1;;;;;982:14933:148;;3690:43;;;;;;;-1:-1:-1;3690:43:148;;;982:14933;3727:4;;3806:6;3727:4;;3779:10;;3806:6;;:::i;:::-;-1:-1:-1;982:14933:148;;3841:28;:18;982:14933;;;;-1:-1:-1;;;;;982:14933:148;3841:18;982:14933;3841:28;982:14933;;-1:-1:-1;;;3841:43:148;;3727:4;982:14933;3841:43;;982:14933;;;;;;;;;;;3841:43;;;;;;:59;:43;-1:-1:-1;3841:43:148;;;982:14933;3841:59;;:::i;:::-;3915:20;;;3911:79;;982:14933;;;;4004:64;;;982:14933;4000:123;;4479:93;5160:21:149;;:::i;:::-;4790:22;4403:66:148;4790:22:149;;:::i;:::-;4326:67:148;390:70:140;;;;;:::i;:::-;837:15:43;4362:30:148;837:15:43;819:34;837:15;819:34;:::i;:::-;4362:30:148;;:::i;:::-;4326:67;;:::i;:::-;837:15:43;;4440:28:148;837:15:43;819:34;837:15;819:34;:::i;4440:28:148:-;4403:66;;:::i;:::-;-1:-1:-1;;;;;;;982:14933:148;;;;;;4479:15;982:14933;;;;;837:15:43;4530:41:148;837:15:43;5579:33:149;:24;819:34:43;837:15;819:34;:::i;:::-;-1:-1:-1;;;;;982:14933:148;;;;;;;4479:15;982:14933;;;;;;;5579:24:149;:33;:::i;:::-;4530:41:148;:::i;:::-;4479:93;;:::i;:::-;-1:-1:-1;;982:14933:148;;;;;;;;;;;;3779:10;;4588:62;;;3054:1:28;2365;-1:-1:-1;;;;;;;;;;;982:14933:148;4047:253:28;4000:123:148;4091:21;;;-1:-1:-1;4091:21:148;982:14933;-1:-1:-1;4091:21:148;4004:64;5160:21:149;4022:31:148;5160:21:149;;;:::i;4022:31:148:-;982:14933;;-1:-1:-1;4004:64:148;;3911:79;3958:21;;;-1:-1:-1;3958:21:148;982:14933;-1:-1:-1;3958:21:148;3841:43;;;;982:14933;3841:43;982:14933;3841:43;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;3690:::-;3806:6;3690:43;;;;;;982:14933;3690:43;982:14933;3690:43;;;;;;;:::i;:::-;;;;;;3538:118;3620:25;;;-1:-1:-1;3620:25:148;982:14933;-1:-1:-1;3620:25:148;3542:55;-1:-1:-1;3586:10:148;982:14933;;;;3563:22;982:14933;;;;;;;;3562:35;3542:55;;3447:81;3498:19;;;-1:-1:-1;3498:19:148;982:14933;-1:-1:-1;3498:19:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;1806:27:149;982:14933:148;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;1969:34:149;982:14933:148;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;:::i;:::-;;;;;4609:48:149;982:14933:148;;;:::i;:::-;4609:48:149;;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;2989:103:28;;:::i;:::-;3223:4:44;;:::i;:::-;-1:-1:-1;982:14933:148;;;;;;;;;;;;;10337:24;10333:74;;-1:-1:-1;;982:14933:148;;;;;;;;-1:-1:-1;982:14933:148;;;;;;10456:25;;982:14933;;10456:25;2365:1:28;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;;;-1:-1:-1;;982:14933:148;;;;;-1:-1:-1;;;;;;;;;;;;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;982:14933:148;-1:-1:-1;;;;;982:14933:148;;674:29:124;;670:87;;982:14933:148;;;;;6429:44:15;;;;982:14933:148;6425:105:15;;;6654:20;6539:24;6654:20;6539:24;6605:1;6539:24;;;;:::i;:::-;-1:-1:-1;;;;;;982:14933:148;-1:-1:-1;;;;;;;;;;;982:14933:148;;;-1:-1:-1;;;;;;;;;;;982:14933:148;6605:1:15;;:::i;:::-;6616:23;-1:-1:-1;;;982:14933:148;-1:-1:-1;;;;;;;;;;;982:14933:148;;-1:-1:-1;;;;;;;;;;;982:14933:148;;6616:23:15;982:14933:148;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;6654:20:15;;;;982:14933:148;6429:44:15;982:14933:148;;-1:-1:-1;;;;;982:14933:148;;-1:-1:-1;6448:25:15;6429:44;;;670:87:124;726:20;;;-1:-1:-1;726:20:124;982:14933:148;-1:-1:-1;726:20:124;982:14933:148;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;982:14933:148;;;;;;-1:-1:-1;982:14933:148;2432:59:149;982:14933:148;;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;3862:17:149;982:14933:148;3882:30:149;982:14933:148;;;;;3882:14:149;;;:::i;:::-;982:14933:148;;;3882:30:149;;:::i;:::-;982:14933:148;;;;;;;3861:63:149;982:14933:148;3861:63:149;;:::i;:::-;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;1201:42:149;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;2137:32:149;982:14933:148;;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;2324:62:45;;:::i;:::-;-1:-1:-1;;;;;;;;;;;982:14933:148;;-1:-1:-1;;;;;;982:14933:148;;;;;;;-1:-1:-1;;;;;982:14933:148;3996:40:45;982:14933:148;;3996:40:45;982:14933:148;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;:::i;:::-;2989:103:28;;:::i;:::-;7120:7:148;982:14933;7106:21;;-1:-1:-1;;;;;982:14933:148;;;7106:21;:10;:21;7102:71;;7207:14;;:::i;:::-;7254:25;;;;:::i;:::-;7294:17;;;;:53;;;982:14933;7293:87;;;;982:14933;7289:146;;982:14933;5160:21:149;9299:48:148;5160:21:149;;;:::i;:::-;7529:17:148;7517:30;7529:17;;;:::i;:::-;982:14933;;7517:11;982:14933;;;;;;;7517:30;982:14933;;7561:29;;;;;7631:30;;;;;:::i;:::-;5328:5:38;;;5725;;;940:4:27;5322:42:38;;7741:17:148;;;7737:384;;7557:1615;;;;;;;9186:17;9182:102;;7557:1615;982:14933;;;;;;;;;;;;;;;;;;;;;;;9299:48;3054:1:28;2365;-1:-1:-1;;;;;;;;;;;982:14933:148;4047:253:28;3054:1;982:14933:148;;;;;;;;;;;;;9182:102;-1:-1:-1;982:14933:148;9259:13;;982:14933;;9219:18;;982:14933;;-1:-1:-1;;;;;982:14933:148;;;9219:18;7545:1;982:14933;-1:-1:-1;;;;;982:14933:148;9259:13;;:::i;:::-;9182:102;;7737:384;8034:29;7802:50;7951:65;7802:50;7987:28;7903:29;7802:50;8046:16;7802:50;8066:40;7802:50;;;:::i;:::-;7903:29;;;:::i;:::-;837:15:43;819:34;837:15;819:34;:::i;:::-;7987:28:148;;:::i;7951:65::-;8066:40;;;:::i;:::-;8046:16;;:::i;8034:29::-;982:14933;7737:384;;;;;;;7557:1615;8174:26;;;;982:14933;;7517:11;982:14933;;;;;;;8174:26;982:14933;8239:27;:45;:27;;;;;:::i;:45::-;5725:5:38;5328;;;5725;;;940:4:27;5322:42:38;;8364:17:148;;8360:802;;7557:1615;;;;;;;;8360:802;9085:26;8425:50;;8526:53;8425:50;8626:54;8425:50;8626:29;8425:50;9114:33;8425:50;;;;:::i;:::-;8526:53;;;;;;:::i;:::-;8626:29;;;;:::i;:::-;:54;:::i;:::-;8703:33;;;;8699:194;;8360:802;8911:65;837:15:43;8947:28:148;9027:40;837:15:43;;;819:34;837:15;819:34;:::i;9027:40:148:-;8994:30;9006:17;;;:::i;8994:30::-;982:14933;9114:33;:::i;:::-;9085:26;982:14933;;7517:11;982:14933;;;;;;;9085:26;982:14933;8360:802;;;;;;;8699:194;8786:33;8760:59;8911:65;8786:33;;;9027:40;8786:33;;;:::i;:::-;8760:59;;:::i;:::-;8841:33;;-1:-1:-1;8841:33:148;;-1:-1:-1;8699:194:148;;7289:146;7403:21;;;-1:-1:-1;7403:21:148;982:14933;-1:-1:-1;7403:21:148;7293:87;7352:28;;;;7293:87;;7294:53;7330:17;;;;:::i;:::-;7315:32;;7294:53;;7102:71;7150:12;;;-1:-1:-1;7150:12:148;982:14933;-1:-1:-1;7150:12:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;4371:17:149;982:14933:148;;;;;;4392:14:149;;;:::i;:::-;4371:17;982:14933:148;;;;;;;4391:36:149;982:14933:148;;;4391:36:149;;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;982:14933:148;2308:68:149;982:14933:148;;;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;;6480:14;982:14933;;6480:14;;:::i;982:14933::-;;;;;4981:47:149;982:14933:148;;;:::i;:::-;4981:47:149;;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;2989:103:28;;:::i;:::-;10871:22:148;982:14933;;;;;10867:89;;982:14933;;-1:-1:-1;;;10971:49:148;;-1:-1:-1;;;;;982:14933:148;;;10971:49;;982:14933;;;;;;;10971:49;982:14933;10981:17;-1:-1:-1;;;;;982:14933:148;10971:49;;;;;;;-1:-1:-1;10971:49:148;;;982:14933;10970:50;;10966:102;;982:14933;;-1:-1:-1;;;11082:34:148;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;11082:34;;;;;;;-1:-1:-1;11082:34:148;;;982:14933;-1:-1:-1;11128:4:148;-1:-1:-1;;;;;982:14933:148;;;11082:51;11078:107;;10871:22;982:14933;;-1:-1:-1;;;;;982:14933:148;;;;-1:-1:-1;;;;;;982:14933:148;;;;;;;-1:-1:-1;;;982:14933:148;;;11273:24;-1:-1:-1;;11273:24:148;3054:1:28;2365;-1:-1:-1;;;;;;;;;;;982:14933:148;4047:253:28;11078:107:148;11156:18;;;-1:-1:-1;11156:18:148;982:14933;-1:-1:-1;11156:18:148;11082:34;;;;982:14933;11082:34;982:14933;11082:34;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10966:102;11043:14;;;-1:-1:-1;11043:14:148;982:14933;-1:-1:-1;11043:14:148;10971:49;;;;982:14933;10971:49;982:14933;10971:49;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10867:89;10916:29;;;-1:-1:-1;10916:29:148;982:14933;-1:-1:-1;10916:29:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;;;1299:40:149;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;1694:14;;:::i;:::-;5160:21:149;;:::i;:::-;982:14933:148;;;;1741:11;982:14933;;;;;;;;;;;;;1782:1;982:14933;;;;;;;;;1741:11;982:14933;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;3899:31:44;982:14933:148;;;;;;;:::i;:::-;-1:-1:-1;982:14933:148;-1:-1:-1;;;;;;;;;;;982:14933:148;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;;;;3899:31:44;982:14933:148;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;982:14933:148;5579:15:149;982:14933:148;;;5579:33:149;982:14933:148;-1:-1:-1;982:14933:148;5579:33:149;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;982:14933:148;;;;-1:-1:-1;982:14933:148;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;416:25:128;;;;982:14933:148;;;;477:31:128;982:14933:148;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;477:31:128;;;982:14933:148;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;477:31:128;;982:14933:148;;477:31:128;;;;;;:::i;:::-;518:79;;;982:14933:148;518:79:128;;982:14933:148;477:31:128;982:14933:148;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;1110:35:149;982:14933:148;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;2989:103:28;;:::i;:::-;3223:4:44;;:::i;:::-;-1:-1:-1;;;;;982:14933:148;;9888:21;;9884:75;;982:14933;-1:-1:-1;982:14933:148;9973:22;982:14933;;;;-1:-1:-1;982:14933:148;;;;;;;;;9973:41;9969:91;;10126:44;;982:14933;;-1:-1:-1;982:14933:148;9973:22;982:14933;;10070:40;982:14933;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;;;10070:40;982:14933;;;;;;;;;;;;;;;10126:44;;;;3054:1:28;2365;-1:-1:-1;;;;;;;;;;;982:14933:148;4047:253:28;9884:75:148;9932:16;;;-1:-1:-1;9932:16:148;982:14933;-1:-1:-1;9932:16:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;;2667:94:149;982:14933:148;;;;;;;:::i;:::-;-1:-1:-1;982:14933:148;2667:94:149;982:14933:148;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;;;;2667:94:149;982:14933:148;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;2817:92:149;982:14933:148;;;;;;;:::i;:::-;-1:-1:-1;982:14933:148;2817:92:149;982:14933:148;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;2989:103:28;;:::i;:::-;11384:20:148;982:14933;;;;;11380:85;;-1:-1:-1;;;;;982:14933:148;;;;11475:312;;982:14933;-1:-1:-1;11384:20:148;982:14933;;-1:-1:-1;;;;982:14933:148;-1:-1:-1;;;982:14933:148;;;11840:20;-1:-1:-1;11840:20:148;;3054:1:28;2365;-1:-1:-1;;;;;;;;;;;982:14933:148;4047:253:28;11475:312:148;982:14933;;-1:-1:-1;;;11522:45:148;;-1:-1:-1;;;;;982:14933:148;;;11522:45;;982:14933;;;;;;;11522:45;982:14933;11532:15;-1:-1:-1;;;;;982:14933:148;11522:45;;;;;;;-1:-1:-1;11522:45:148;;;11475:312;11521:46;;11517:104;;982:14933;;-1:-1:-1;;;11639:30:148;;982:14933;;;;11639:30;;;;;;;;-1:-1:-1;11639:30:148;;;11475:312;-1:-1:-1;11681:4:148;-1:-1:-1;;;;;982:14933:148;;;11639:47;11635:109;;11384:20;982:14933;;-1:-1:-1;;;;;;982:14933:148;-1:-1:-1;;;;;982:14933:148;;;;;;;;;11475:312;;;11635:109;11713:16;;;-1:-1:-1;11713:16:148;982:14933;-1:-1:-1;11713:16:148;11639:30;;;;982:14933;11639:30;982:14933;11639:30;;;;;;;:::i;:::-;;;;11522:45;;;;982:14933;11522:45;982:14933;11522:45;;;;;;;:::i;:::-;;;;11380:85;11427:27;;;-1:-1:-1;11427:27:148;982:14933;-1:-1:-1;11427:27:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;2989:103:28;;;:::i;:::-;-1:-1:-1;;;;;982:14933:148;;6101:23;;6097:79;;6195:13;6262:6;6195:13;982:14933;6195:13;;:::i;:::-;-1:-1:-1;982:14933:148;;;;;;;-1:-1:-1;;;;;982:14933:148;6262:6;:::i;:::-;982:14933;;;;;;;;;;;;6291:10;;6285:43;;982:14933;6285:43;2365:1:28;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;;;;;;;;;6097:79;6147:18;;;-1:-1:-1;6147:18:148;982:14933;-1:-1:-1;6147:18:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;;;-1:-1:-1;982:14933:148;2547:64:149;982:14933:148;;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;2059:22:149;982:14933:148;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;5160:21:149;;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;2989:103:28;;:::i;:::-;987:10:48;-1:-1:-1;982:14933:148;;;;;;;;;;;;4466:23:44;4462:108;;982:14933:148;;;10645:21;10641:71;;982:14933;;10758:22;982:14933;;;;;;;;10758:22;2365:1:28;-1:-1:-1;;;;;;;;;;;982:14933:148;;4462:108:44;4512:47;;;-1:-1:-1;4512:47:44;987:10:48;4512:47:44;982:14933:148;1110:35:149;982:14933:148;;;-1:-1:-1;4512:47:44;982:14933:148;;;;;;-1:-1:-1;;982:14933:148;;;;;4790:22:149;;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;3086:14;;:::i;:::-;3117:24;;;:::i;:::-;3144:29;;;;;:::i;:::-;982:14933;;;;;;;3198:1;982:14933;;;;;;;3176:33;;;:::i;:::-;982:14933;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;1889:24:149;982:14933:148;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;5765:26:44;982:14933:148;;;;;;;:::i;:::-;3223:4:44;5735:18;;-1:-1:-1;982:14933:148;-1:-1:-1;;;;;;;;;;;982:14933:148;;4917:24:44;982:14933:148;-1:-1:-1;982:14933:148;4917:24:44;982:14933:148;4757:191:44;;3223:4;5765:26;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;676:39:149;982:14933:148;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;:::i;:::-;1963:48;;982:14933;;;;;:::i;:::-;;;;;;;;;;;;;;2025:16;;2021:111;;982:14933;;1027:70:140;2224:39:148;;4609:48:149;2187:77:148;2224:39;;;;2187:77;;:::i;:::-;2303:36;982:14933;4981:47:149;982:14933:148;2303:36;;;4981:47:149;;:::i;:::-;2380:37:148;;;2354:64;4609:48:149;:::i;:::-;1027:70:140;;:::i;2021:111:148:-;2080:41;;;;;-1:-1:-1;982:14933:148;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;4609:48:149;982:14933:148;2187:77;982:14933;1027:70:140;982:14933:148;;;:::i;:::-;;;;;2021:111;;;;;;;;;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;2378:1:45;982:14933:148;;;;;:::i;:::-;2324:62:45;;:::i;:::-;2378:1;:::i;982:14933:148:-;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;:::i;:::-;;;2989:103:28;;:::i;:::-;-1:-1:-1;;;;;982:14933:148;;4873:21;4869:75;;4958:11;;4954:73;;815:69:140;4790:22:149;;:::i;:::-;5160:21;;:::i;:::-;815:69:140;;;:::i;:::-;5163:10:148;;-1:-1:-1;982:14933:148;5579:15:149;982:14933:148;;5579:33:149;982:14933:148;-1:-1:-1;982:14933:148;5579:33:149;:::i;:::-;5133:41:148;;5129:96;;5250:40;;;;;:::i;5129:96::-;5197:17;;;-1:-1:-1;5197:17:148;982:14933;-1:-1:-1;5197:17:148;4954:73;4992:24;;;-1:-1:-1;4992:24:148;982:14933;-1:-1:-1;4992:24:148;982:14933;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;7545:1;982:14933;;;;;;;:::o;:::-;;;;;;;;;;:::o;5243:193:149:-;-1:-1:-1;;;;;982:14933:148;-1:-1:-1;982:14933:148;;;5370:15:149;982:14933:148;;;;;5370:59:149;;5243:193;;5370:59;:::i;982:14933:148:-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;-1:-1:-1;;;;;982:14933:148;-1:-1:-1;;;;;;;;;;;982:14933:148;;;-1:-1:-1;;;;;;;;;;;982:14933:148;:::o;1093:303:124:-;-1:-1:-1;13419:30:148;;982:14933;;1093:303:124;-1:-1:-1;;;;;982:14933:148;;1265:73:124;;1093:303;982:14933:148;;;;:::i;:::-;13419:30;982:14933;;;13419:30;;;;;;:::i;:::-;982:14933;;-1:-1:-1;;;;;982:14933:148;13464:31;13460:88;;13562:20;;;982:14933;;;;;;;;;;13562:25;13558:85;;13657:29;;;982:14933;;13657:29;;982:14933;13657:43;;-1:-1:-1;;;;;982:14933:148;;;13657:43;;13653:943;;1093:303:124;982:14933:148;;15556:32;982:14933;14726:36;982:14933;;;14606:30;982:14933;;;;;;;;;;;;1287:1:124;982:14933:148;;-1:-1:-1;;;;;;982:14933:148;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;14606:30;13419;14656:13;;982:14933;;;;-1:-1:-1;;;;;;982:14933:148;-1:-1:-1;;;;;982:14933:148;;;;;;;;;14680:36;819:34:43;837:15;819:34;:::i;:::-;14647:22:148;982:14933;;-1:-1:-1;;;;982:14933:148;;;;;;-1:-1:-1;;;982:14933:148;;;;;;;;14680:36;982:14933;;;;;;14647:22;982:14933;;-1:-1:-1;;;;;982:14933:148;;;;;;-1:-1:-1;;;;;;982:14933:148;;;;;;;;14726:36;14773:42;982:14933;14792:23;;;982:14933;;;;;;;;;1287:1:124;982:14933:148;;;;;;;1287:1:124;982:14933:148;;14773:42;14826:38;982:14933;14843:21;;;982:14933;;;;;;;1287:1:124;982:14933:148;;;;;;;;;;;;1287:1:124;982:14933:148;;14826:38;14874:34;14889:19;;;982:14933;14874:34;982:14933;;14874:34;982:14933;-1:-1:-1;;;;;982:14933:148;;;;-1:-1:-1;;;;;982:14933:148;;14919:135;;1093:303:124;-1:-1:-1;15067:36:148;;;982:14933;-1:-1:-1;;;;;982:14933:148;;15063:157;;1093:303:124;-1:-1:-1;15233:35:148;;;982:14933;-1:-1:-1;;;;;982:14933:148;;15229:153;;1093:303:124;-1:-1:-1;15395:34:148;;;982:14933;-1:-1:-1;;;;;982:14933:148;;15391:152;;1093:303:124;-1:-1:-1;15556:32:148;982:14933;-1:-1:-1;;;;;982:14933:148;;;;-1:-1:-1;;;;;982:14933:148;;15552:145;;1093:303:124;:::o;15552:145:148:-;15618:68;;;:::i;:::-;;1093:303:124:o;15391:152:148:-;15459:73;;;:::i;:::-;;15391:152;;;15229:153;15298:73;;;:::i;:::-;;15229:153;;;15063:157;15133:76;;;:::i;:::-;;15063:157;;;14919:135;14982:61;;;:::i;:::-;;14919:135;;;13653:943;13720:36;;;982:14933;13720:50;;-1:-1:-1;;;;;982:14933:148;;;13720:50;;13716:405;;13653:943;14139:34;;;982:14933;14139:48;;-1:-1:-1;;;;;982:14933:148;;;14139:48;13653:943;14135:451;14211:21;982:14933;14211:21;;;982:14933;;;;;;14211:21;;;14260:19;;;982:14933;14260:24;:74;;;14207:365;14256:150;;982:14933;15556:32;14207:365;14726:36;982:14933;;14207:365;;14135:451;;;;;;;;13653:943;;14256:150;14074:14;;;1287:1:124;14369:14:148;;1287:1:124;14369:14:148;14260:74;-1:-1:-1;14288:32:148;;;982:14933;14288:46;;-1:-1:-1;;;;;982:14933:148;;;14288:46;;14260:74;;14207:365;14434:19;;;982:14933;14434:24;;;:74;;;14207:365;14430:142;;982:14933;15556:32;14207:365;14726:36;982:14933;;14207:365;;;14434:74;-1:-1:-1;14462:32:148;;;982:14933;14462:46;;-1:-1:-1;;;;;982:14933:148;;;14462:46;;;14434:74;;13716:405;13794:23;;;982:14933;;13794:23;;13845:35;;;982:14933;13845:49;;-1:-1:-1;;;;;982:14933:148;;;13845:49;13716:405;13841:125;14074:14;;;1287:1:124;13929:14:148;;1287:1:124;13929:14:148;13790:317;13994:35;;;982:14933;13994:49;;-1:-1:-1;;;;;982:14933:148;;;13994:49;13990:117;13716:405;13990:117;14074:14;;;1287:1:124;14074:14:148;;1287:1:124;14074:14:148;13558:85;13610:22;;;1287:1:124;13610:22:148;;1287:1:124;13610:22:148;13460:88;13518:19;;;1287:1:124;13518:19:148;;1287:1:124;13518:19:148;1265:73:124;6959:1:15;6891:76;;;:::i;:::-;;;:::i;6959:1::-;1265:73:124;;;2483:177:148;-1:-1:-1;;;;;982:14933:148;-1:-1:-1;982:14933:148;;;5579:15:149;982:14933:148;;;;;5579:33:149;;;:::i;:::-;5160:21;;:::i;:::-;4790:22;;:::i;:::-;982:14933:148;1834:1:140;982:14933:148;;;;;;;;;;;;;;;11235:25:38;1806:79:140;11235:25:38;:::i;982:14933:148:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;3599:132:149:-;982:14933:148;3670:54:149;819:34:43;837:15;819:34;:::i;:::-;3671:36:149;3690:17;982:14933:148;;;;;;;3671:36:149;;:::i;:::-;982:14933:148;;;3670:54:149;;:::i;:::-;982:14933:148;3599:132:149;:::o;3314:230::-;3405:17;982:14933:148;;;;;;;;;;;3393:29:149;3389:85;;3491:29;3490:47;3491:29;982:14933:148;3491:29:149;;:::i;3389:85::-;3445:18;;;-1:-1:-1;3445:18:149;;-1:-1:-1;3445:18:149;2989:103:28;;;;:::i;:::-;982:14933:148;;-1:-1:-1;;;;;982:14933:148;;;6510:23;;6506:79;;6639:11;;6635:70;;982:14933;6731:10;;;;;;-1:-1:-1;982:14933:148;;6876:49;;982:14933;;;;6853:6;;982:14933;;6810:18;;982:14933;;-1:-1:-1;;;;;982:14933:148;;;6810:18;6853:6;:::i;:::-;6876:49;982:14933;;6887:10;;;;6876:49;;;:::i;:::-;;;;3054:1:28;;2365;-1:-1:-1;;;;;;;;;;;982:14933:148;4047:253:28;6743:3:148;6779:9;982:14933;;;;;;6762:27;982:14933;;6772:17;982:14933;;;;;;6772:17;:::i;6762:27::-;6743:3;982:14933;6720:9;;982:14933;;:::i;6635:70::-;6673:21;;;982:14933;6673:21;;982:14933;6673:21;982:14933;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;3426:215:45:-;-1:-1:-1;;;;;982:14933:148;3510:22:45;;3506:91;;-1:-1:-1;;;;;;;;;;;982:14933:148;;-1:-1:-1;;;;;;982:14933:148;;;;;;;-1:-1:-1;;;;;982:14933:148;3996:40:45;-1:-1:-1;;3996:40:45;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;982:14933:148;;3530:1:45;3555:31;2708:227:148;;2848:34;2708:227;982:14933;-1:-1:-1;982:14933:148;2848:18;982:14933;;;-1:-1:-1;982:14933:148;;;;;;;;;;;;;;;;;2848:34;982:14933;;;-1:-1:-1;982:14933:148;2884:11;982:14933;;;-1:-1:-1;982:14933:148;;;-1:-1:-1;982:14933:148;2904:16;982:14933;;;-1:-1:-1;982:14933:148;;;1834:1:140;982:14933:148;;;;;;;;;;;;;;;11235:25:38;1806:79:140;11235:25:38;:::i;3749:292:28:-;2407:1;-1:-1:-1;;;;;;;;;;;982:14933:148;4560:63:28;3644:93;;2407:1;-1:-1:-1;;;;;;;;;;;982:14933:148;3749:292:28:o;3644:93::-;3696:30;;;-1:-1:-1;3696:30:28;;-1:-1:-1;3696:30:28;11873:966:148;12058:10;982:14933;;;;4479:15;982:14933;;;;;;11873:966;;;819:34:43;837:15;819:34;:::i;:::-;12058:10:148;982:14933;;;;4479:15;982:14933;;;;;5579:33:149;;;:::i;:::-;12093:41:148;982:14933;;;;;;;;12042:93;12758:74;12042:93;;;12583:30;12042:93;;:::i;:::-;837:15:43;;12145:67:148;819:34:43;837:15;819:34;:::i;:::-;12182:29:148;4790:22:149;;;:::i;12145:67:148:-;837:15:43;;12222:68:148;819:34:43;837:15;819:34;:::i;:::-;12258:31:148;5160:21:149;;;:::i;12222:68:148:-;12317:14;;12692:34;12317:14;12692:25;12317:18;:14;;:::i;:::-;:18;:::i;:::-;12649:33;12368:18;;982:14933;;7517:11;982:14933;;;;;;;12368:18;982:14933;12425:23;;982:14933;;12425:16;982:14933;;;;;;;12425:23;982:14933;390:70:140;;;;;:::i;:::-;12583:30:148;;;;;;:::i;:::-;12562:18;;982:14933;;7517:11;982:14933;;;;;;;12562:18;982:14933;12649:33;:::i;:::-;12623:23;;982:14933;;12425:16;982:14933;;;;;;;12623:23;982:14933;;;12692:18;982:14933;;;;;;;12692:25;982:14933;;;;;;;;;;;;;;;;12692:34;:50;982:14933;;;12692:50;:::i;:::-;982:14933;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;12058:10;;982:14933;;12758:74;11873:966::o;14293:213:39:-;982:14933:148;14371:24:39;;14367:103;;982:14933:148;;14293:213:39;:::o;14367:103::-;14418:41;;;;;14449:2;14418:41;982:14933:148;;;;14418:41:39;;982:14933:148;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;7506:604:139:-;;982:14933:148;;7634:17:139;7630:83;;982:14933:148;7737:27:139;982:14933:148;7737:27:139;982:14933:148;;7737:27:139;;;;;;:::i;:::-;7808:14;;4609:13:149;7808:14:139;:::i;:::-;982:14933:148;;;;;;;;;;;;;;;;;;7836:22:139;7832:77;;7923:21;;982:14933:148;;7923:21:139;:84;;;;7506:604;7919:139;;;;8075:28;;;4609:13:149;8075:28:139;:::i;7919:139::-;7737:27;8030:17;;;982:14933:148;8023:24:139;:::o;7923:84::-;982:14933:148;;;7957:16:139;4609:13:149;982:14933:148;7957:16:139;:::i;:::-;982:14933:148;;;7949:24:139;:57;;;;;7923:84;;;;;;;7949:57;7977:29;7986:8;;;7977:18;7986:8;7977:23;7986:8;;:::i;:::-;4609:13:149;7977:18:139;:::i;:23::-;982:14933:148;;;;7977:29:139;;7949:57;;;;7832:77;7881:17;;;7737:27;7881:17;;;982:14933:148;7874:24:139;:::o;7630:83::-;7674:28;;;4609:13:149;7674:28:139;:::i;7506:604::-;;982:14933:148;;7634:17:139;7630:83;;982:14933:148;7737:27:139;982:14933:148;7737:27:139;982:14933:148;;7737:27:139;;;;;;:::i;:::-;7808:14;;4981:12:149;7808:14:139;:::i;:::-;982:14933:148;;;;;;;;;;;;;;;;;;7836:22:139;7832:77;;7923:21;;982:14933:148;;7923:21:139;:84;;;;7506:604;7919:139;;;;8075:28;;;4981:12:149;8075:28:139;:::i;7923:84::-;982:14933:148;;;7957:16:139;4981:12:149;982:14933:148;7957:16:139;:::i;:::-;982:14933:148;;;7949:24:139;:57;;;;;7923:84;;;;;;;7949:57;7977:29;7986:8;;;7977:18;7986:8;7977:23;7986:8;;:::i;:::-;4981:12:149;7977:18:139;:::i;:29::-;;7949:57;;;;7630:83;7674:28;;;4981:12:149;7674:28:139;:::i;7506:604::-;;982:14933:148;;7634:17:139;7630:83;;982:14933:148;7737:27:139;982:14933:148;7737:27:139;982:14933:148;;7737:27:139;;;;;;:::i;:::-;7808:14;;;;;:::i;:::-;982:14933:148;;;;;;;;;;;;;;;;;;7836:22:139;7832:77;;7923:21;;982:14933:148;;7923:21:139;:84;;;;7506:604;7919:139;;;;8075:28;;;;:::i;7919:139::-;8030:17;;7737:27;8030:17;982:14933:148;8023:24:139;:::o;7923:84::-;982:14933:148;;;7957:16:139;982:14933:148;;7957:16:139;:::i;:::-;982:14933:148;;;7949:24:139;:57;;;;;7923:84;;;;;;;7949:57;7977:29;7986:8;;;7977:18;7986:8;7977:23;7986:8;;:::i;:::-;7977:18;;:::i;:29::-;;7949:57;;;;7832:77;7881:17;;;;;7737:27;7881:17;982:14933:148;7874:24:139;:::o;7630:83::-;7674:28;;;;:::i;4146:103:44:-;987:10:48;-1:-1:-1;982:14933:148;;;;;;;;;;;;4466:23:44;4462:108;;4146:103::o;4462:108::-;4512:47;;;-1:-1:-1;4512:47:44;987:10:48;4512:47:44;982:14933:148;676:39:149;982:14933:148;;;-1:-1:-1;4512:47:44;4146:103;987:10:48;-1:-1:-1;982:14933:148;;;;;;;;;;;;4466:23:44;4462:108;;4146:103::o;4462:108::-;4512:47;;;-1:-1:-1;4512:47:44;987:10:48;4512:47:44;982:14933:148;967:38:149;982:14933:148;;;-1:-1:-1;4512:47:44;4146:103;987:10:48;-1:-1:-1;982:14933:148;;;;;;;;;;;;4466:23:44;4462:108;;4146:103::o;4462:108::-;4512:47;;;-1:-1:-1;4512:47:44;987:10:48;4512:47:44;982:14933:148;822:37:149;982:14933:148;;;-1:-1:-1;4512:47:44;4146:103;-1:-1:-1;982:14933:148;;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;;;987:10:48;982:14933:148;;;;;;;;;;4466:23:44;4462:108;;4146:103;:::o;4462:108::-;4512:47;;;-1:-1:-1;4512:47:44;987:10:48;4512:47:44;982:14933:148;;;;-1:-1:-1;4512:47:44;7268:387;-1:-1:-1;;;;;982:14933:148;;1287:1:124;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;1287:1:124;982:14933:148;;;;;;;;;;;-1:-1:-1;;982:14933:148;7507:4:44;982:14933:148;;;987:10:48;;982:14933:148;-1:-1:-1;;;;;;;;;;;1287:1:124;;7530:40:44;7507:4;7584:11;:::o;7430:219::-;7626:12;1287:1:124;7626:12:44;:::o;7268:387::-;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;7507:4:44;982:14933:148;;;987:10:48;;-1:-1:-1;;;;;982:14933:148;676:39:149;-1:-1:-1;;;;;;;;;;;;;7530:40:44;7507:4;7584:11;:::o;7268:387::-;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;7507:4:44;982:14933:148;;;987:10:48;;-1:-1:-1;;;;;982:14933:148;822:37:149;-1:-1:-1;;;;;;;;;;;;;7530:40:44;7507:4;7584:11;:::o;7268:387::-;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;7507:4:44;982:14933:148;;;987:10:48;;-1:-1:-1;;;;;982:14933:148;967:38:149;-1:-1:-1;;;;;;;;;;;;;7530:40:44;7507:4;7584:11;:::o;7268:387::-;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;-1:-1:-1;;982:14933:148;7507:4:44;982:14933:148;;;987:10:48;;-1:-1:-1;;;;;982:14933:148;1110:35:149;-1:-1:-1;;;;;;;;;;;;;7530:40:44;7507:4;7584:11;:::o;7268:387::-;982:14933:148;;;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;-1:-1:-1;;982:14933:148;7507:4:44;982:14933:148;;;987:10:48;;-1:-1:-1;;;;;982:14933:148;;-1:-1:-1;;;;;;;;;;;;;7530:40:44;7507:4;7584:11;:::o;7430:219::-;7626:12;;982:14933:148;7626:12:44;:::o;7892:388::-;982:14933:148;;;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;;;;;-1:-1:-1;;;;;982:14933:148;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;987:10:48;;-1:-1:-1;;;;;982:14933:148;;8155:40:44;-1:-1:-1;;8155:40:44;982:14933:148;8209:11:44;:::o;1662:232:18:-;10404:1148;;-1:-1:-1;;;;10404:1148:18;;;-1:-1:-1;;;;;10404:1148:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1662:232:18;10404:1148;;1809:4;-1:-1:-1;10404:1148:18;;;;;;;1662:232;10404:1148;;;;;-1:-1:-1;10404:1148:18;;1766:48;;1762:126;;1662:232;:::o;1762:126::-;-1:-1:-1;;;;1837:40:18;-1:-1:-1;;;;;982:14933:148;10404:1148:18;982:14933:148;;-1:-1:-1;1837:40:18;10404:1148;1809:4;10404:1148;;;;;;;;;;;;;;;;;;-1:-1:-1;10404:1148:18;;;;;982:14933:148;;;;;;;;-1:-1:-1;982:14933:148;;-1:-1:-1;982:14933:148;;;-1:-1:-1;982:14933:148;:::o;:::-;;;-1:-1:-1;;;982:14933:148;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;982:14933:148;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6194:584:139;;;;6308:12;982:14933:148;6308:24:139;6304:75;;6194:584;6422:30;5160:12:149;6422:30:139;:::i;:::-;982:14933:148;;6308:12:139;982:14933:148;6526:12:139;;5160::149;6526::139;:::i;:::-;6552:24;;;;6194:584;-1:-1:-1;6548:188:139;;;-1:-1:-1;;;982:14933:148;;;;;;;6308:12:139;982:14933:148;-1:-1:-1;982:14933:148;;;6308:12:139;-1:-1:-1;982:14933:148;;;;;;6746:25:139;6194:584;:::o;6592:29::-;6746:25;6194:584;:::o;6548:188::-;15211:38:41;;-1:-1:-1;;;;;982:14933:148;;5160:12:149;15211:38:41;:::i;:::-;6701:24:139;;;;6308:12;6701:24;:::i;6552:::-;982:14933:148;;;;;;;6562:14:139;6552:24;;;6304:75;6348:20;6308:12;6348:20;:::i;:::-;6304:75;;6194:584;;;;6308:12;982:14933:148;6308:24:139;6304:75;;6194:584;6422:30;4790:13:149;6422:30:139;:::i;:::-;982:14933:148;;6308:12:139;982:14933:148;6526:12:139;;4790:13:149;6526:12:139;:::i;:::-;6552:24;;;;6194:584;-1:-1:-1;6548:188:139;;;-1:-1:-1;;;982:14933:148;;;;;;;6308:12:139;982:14933:148;-1:-1:-1;982:14933:148;;;6308:12:139;-1:-1:-1;982:14933:148;;;;;;6746:25:139;6194:584;:::o;6548:188::-;15211:38:41;;-1:-1:-1;;;;;982:14933:148;;4790:13:149;15211:38:41;:::i;:::-;6701:24:139;;;;6308:12;6701:24;:::i;6552:::-;982:14933:148;;;;;;;6562:14:139;6552:24;;;6304:75;6348:20;6308:12;6348:20;:::i;:::-;6304:75;;6194:584;;;;;6308:12;;;982:14933:148;;;6308:24:139;6304:75;;6194:584;6422:30;;;;:::i;:::-;982:14933:148;;;;;;6526:12:139;;;;:::i;:::-;6552:24;;;;6194:584;-1:-1:-1;6548:188:139;;;-1:-1:-1;;;;;982:14933:148;;;;;;;6592:21:139;;;:29;:21;;:::i;6548:188::-;6701:24;;982:14933:148;;15211:38:41;;-1:-1:-1;;;;;982:14933:148;;;;;15211:38:41;:::i;:::-;6701:24:139;;;:::i;6552:::-;982:14933:148;;;;;;;6562:14:139;6552:24;;;6304:75;6348:20;;;:::i;:::-;6304:75;;982:14933:148;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::o;2679:162:45:-;-1:-1:-1;;;;;;;;;;;982:14933:148;-1:-1:-1;;;;;982:14933:148;987:10:48;2738:23:45;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:45;987:10:48;2784:40:45;982:14933:148;;-1:-1:-1;2784:40:45;982:14933:148;;;;;;;:::o;7296:3683:38:-;;7458:12;;;;:::i;:::-;7552:9;;;;;7548:365;;8023:19;;;;8019:142;;8444:308;;;;940:4:27;982:14933:148;940:4:27;8971:31:38;;9016:384;;;9854:1;940:4:27;9835:1:38;940:4:27;9834:21:38;940:4:27;;;9854:1:38;940:4:27;;;;;9854:1:38;940:4:27;;;;;9854:1:38;940:4:27;;;;;9854:1:38;940:4:27;;;;;9854:1:38;940:4:27;;;;;9854:1:38;940:4:27;;9016:384:38;;;;982:14933:148;9016:384:38;;;8444:308;;;;;;940:4:27;8444:308:38;;9016:384;9463:18;940:4:27;7296:3683:38;:::o;8019:142::-;940:4:27;5328:5:38;8082:16;;940:4:27;5322:42:38;8074:71;:::i;7548:365::-;7881:17;;;;;;;:::i;1219:204:18:-;;8544:1067;;8509:24;;;;-1:-1:-1;8544:1067:18;982:14933:148;;;;;8544:1067:18;;;;;;-1:-1:-1;8544:1067:18;;;;;;1338:4;-1:-1:-1;8544:1067:18;;;;;;;1219:204;8544:1067;;;;;1305:38;;982:14933:148;8544:1067:18;1338:4;8544:1067;;;;;;;;;;;;;;;12845:446:148;;12933:14;;:::i;:::-;12924:23;;;12920:75;;-1:-1:-1;982:14933:148;;;13009:20;982:14933;;;;;;;;13037:10;982:14933;;;;;;;;;;13005:93;;13117:32;13037:10;13117:32;;:::i;:::-;13164:11;;;13160:68;;-1:-1:-1;982:14933:148;;;13009:20;982:14933;;;;;;;;13037:10;982:14933;;;;;;;;;-1:-1:-1;;982:14933:148;13280:4;982:14933;;;12845:446::o;13160:68::-;13198:19;;;-1:-1:-1;13198:19:148;;-1:-1:-1;13198:19:148;13005:93;13071:16;;;-1:-1:-1;13071:16:148;;-1:-1:-1;13071:16:148;12920:75;12970:14;;;-1:-1:-1;12970:14:148;;-1:-1:-1;12970:14:148;10532:170:139;5160:12:149;982:14933:148;17347:8:41;;;:63;-1:-1:-1;17347:63:41;-1:-1:-1;;;;;982:14933:148;;10664:7:139;982:14933:148;;10674:12:139;982:14933:148;;;;;;10674:12:139;-1:-1:-1;982:14933:148;;;;;10532:170:139:o;17347:63:41:-;982:14933:148;;;;;;;;5160:12:149;-1:-1:-1;21341:115:41;;;982:14933:148;;;17347:63:41;;10532:170:139;4790:13:149;982:14933:148;17347:8:41;;;:63;-1:-1:-1;17347:63:41;-1:-1:-1;;;;;982:14933:148;;10664:7:139;982:14933:148;;10674:12:139;982:14933:148;;;;;;10674:12:139;-1:-1:-1;982:14933:148;;;;;10532:170:139:o;17347:63:41:-;982:14933:148;;;;;;;;4790:13:149;-1:-1:-1;21341:115:41;;;982:14933:148;;;17347:63:41;;10532:170:139;982:14933:148;;17347:8:41;;;:63;-1:-1:-1;17347:63:41;-1:-1:-1;;;;;982:14933:148;;10664:7:139;982:14933:148;;10674:12:139;:17;:12;;:17;:::i;:::-;982:14933:148;;;;;;10532:170:139;:::o;17347:63:41:-;982:14933:148;;;;;;;;-1:-1:-1;21341:115:41;;;;;;;-1:-1:-1;;21341:115:41;982:14933:148;;;17347:63:41;;1622:270:140;;;1834:1;982:14933:148;;;;;;;;;;;;;;;1806:79:140;;-1:-1:-1;1806:79:140;;:::i;6947:207:139:-;;982:14933:148;;16638:15:41;-1:-1:-1;16663:18:41;16696:7;16702:1;16696:7;;16692:234;;6947:207:139;16950:53:41;;;;;:::i;:::-;17021:8;;;:63;-1:-1:-1;17021:63:41;;-1:-1:-1;;;;;982:14933:148;;7116:7:139;982:14933:148;;;7126:12:139;;:17;:12;;:17;:::i;17021:63:41:-;17036:41;17069:7;17036:48;17069:7;;:::i;:::-;17036:41;21341:115;;;;;;21191:271;;17036:41;982:14933:148;;;;;17036:48:41;17021:63;;;16692:234;16739:14;;;;;:::i;:::-;982:14933:148;;;;;;;16950:53:41;21341:115;;-1:-1:-1;21341:115:41;982:14933:148;21341:115:41;;-1:-1:-1;21341:115:41;;982:14933:148;;;;;16771:48:41;16767:149;982:14933:148;;;16839:10:41;16767:149;16692:234;;16767:149;16894:7;;;;;;:::i;:::-;16767:149;16692:234;;982:14933:148;;;;;;;:::i;:::-;-1:-1:-1;982:14933:148;;;;;;;:::o;11396:272:139:-;;982:14933:148;11628:12:139;18354:22:41;11628:31:139;11396:272;982:14933:148;;:::i;:::-;;;;:::i;:::-;;18354:22:41;;:::i;:::-;982:14933:148;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11628:12:139;:31;:::i;:::-;982:14933:148;;;;;;;;;;;;;:::i;:::-;;;;11582:79:139;;982:14933:148;11396:272:139;:::o;1228:270:140:-;;;982:14933:148;;;;;;;;;;;;;;;;1412:79:140;;982:14933:148;1412:79:140;;:::i;17596:389:41:-;982:14933:148;;;17772:8:41;;;17796:20;;17734:17;17796:20;17734:17;17796:20;17734:17;17796:20;:::o;17768:211::-;982:14933:148;;;;;;;;17734:17:41;21341:115;982:14933:148;;21341:115:41;;17734:17;21341:115;;;982:14933:148;17915:1:41;982:14933:148;;;;;;;17931:37:41;:::o;7082:141:15:-;982:14933:148;-1:-1:-1;;;;;;;;;;;982:14933:148;;;;7148:18:15;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:15;;-1:-1:-1;7189:17:15;1027:550:38;;-1:-1:-1;;1027:550:38;;1412:159;;;;;;;;;;;1027:550;:::o;1776:194:27:-;1829:135;;;;;;;;11108:238:38;;;11235:25;;;;;:::i;:::-;982:14933:148;;;;;;;32451:1:38;982:14933:148;;;32428:24:38;11279:59;;;;11108:238;34860:71:39;;;;;982:14933:148;;;;;;;11108:238:38;:::o;11279:59::-;11309:25;;;;;;;;;:29;;11279:59;;;;;982:14933:148;;;;-1:-1:-1;982:14933:148;;;;;-1:-1:-1;982:14933:148;;;;-1:-1:-1;;;982:14933:148;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;982:14933:148;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;18559:922:41;982:14933:148;;18559:922:41;;;18766:7;;;;18838;18818:28;18838:7;;:::i;:::-;18818:28;21341:115;;;;;;21191:271;;18818:28;982:14933:148;;;;;;;;;;;;;;;19005:13:41;;;19001:89;;19153:14;;;;;19187:19;;;;982:14933:148;;;;;;;;;;;;;;;;;19149:163:41;982:14933:148;;;19245:52:41;982:14933:148;19255:41:41;982:14933:148;;:::i;:::-;;;;;;;;19255:41:41;-1:-1:-1;;;;;982:14933:148;;19255:41:41;;;982:14933:148;19245:52:41;:::i;19001:89::-;19045:30;;;18772:1;19045:30;;18772:1;19045:30;18762:713;982:14933:148;;19381:52:41;982:14933:148;19391:41:41;982:14933:148;;:::i;19391:41:41:-;-1:-1:-1;;;;;982:14933:148;;19391:41:41;;;982:14933:148;19245:52:41;:::i;19381:::-;18772:1;19447:17;;:::o;20859:5181:38:-;21025:1;21020:6;;;21016:53;;21996:14;21025:1;-1:-1:-1;;;22057:16:38;;;22053:92;;20859:5181;25606:18;25496;25386;25277;25166;25057;23152:13;26016:6;22162:15;22677:6;22162:15;-1:-1:-1;;;25995:28:38;22162:15;;;22158:90;;20859:5181;22272:7;22265:15;;;22261:90;;20859:5181;22375:7;22368:15;;;22364:89;;20859:5181;22477:6;22470:14;;;22466:87;;20859:5181;22577:6;22570:14;;;22566:87;;20859:5181;22670:14;;22666:61;;20859:5181;23153:1;940:4:27;982:14933:148;;;;23152:13:38;25063:6;;;;:::i;:::-;982:14933:148;;;;;25057:18:38;25172:6;;;;:::i;25166:18::-;25283:6;;;;:::i;25277:18::-;25392:6;;;;:::i;25386:18::-;25502:6;;;;:::i;25496:18::-;25612:6;;;;:::i;25606:18::-;26016:6;;;:::i;:::-;26011:11;;;982:14933:148;25995:28:38;940:4:27;;20859:5181:38;:::o;22666:61::-;982:14933:148;;22666:61:38;;22566:87;982:14933:148;;;;;22566:87:38;;;22466;982:14933:148;;;;;22466:87:38;;;22364:89;982:14933:148;;;;;22364:89:38;;;22261:90;982:14933:148;;;;;22261:90:38;;;22158;982:14933:148;;;;;22158:90:38;;;22053:92;22093:10;;25995:28;26016:6;25606:18;25496;25386;25277;25166;25057;23152:13;22093:10;;982:14933:148;;;;22093:10:38;22053:92;-1:-1:-1;;;;982:14933:148;-1:-1:-1;22053:92:38;;-1:-1:-1;;;;;;;22053:92:38;19831:433:41;;20014:10;;;;;;20246:11;;;19831:433;:::o;20007:230::-;6021:5:38;;;;;;982:14933:148;;6011:5:38;;;982:14933:148;21341:115:41;;982:14933:148;21341:115:41;982:14933:148;21341:115:41;;982:14933:148;21341:115:41;;982:14933:148;;;;;-1:-1:-1;20091:136:41;982:14933:148;;;20150:10:41;20091:136;;20007:230;;;;20091:136;982:14933:148;;;;;;;;;20091:136:41;982:14933:148;;:::i","linkReferences":{},"immutableReferences":{"60121":[{"start":1904,"length":32},{"start":2448,"length":32}],"70744":[{"start":4529,"length":32},{"start":5847,"length":32}],"70747":[{"start":6233,"length":32},{"start":7479,"length":32}]}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DELEGATOR_FACTORY()":"6da3e06d","DEPOSITOR_WHITELIST_ROLE()":"1b66c9e1","DEPOSIT_LIMIT_SET_ROLE()":"a21a1df9","DEPOSIT_WHITELIST_SET_ROLE()":"db388715","FACTORY()":"2dd31000","IS_DEPOSIT_LIMIT_SET_ROLE()":"1415519b","SLASHER_FACTORY()":"87df0788","activeBalanceOf(address)":"59f769a9","activeBalanceOfAt(address,uint48,bytes)":"efb559d6","activeShares()":"bfefcd7b","activeSharesAt(uint48,bytes)":"50f22068","activeSharesOf(address)":"9d66201b","activeSharesOfAt(address,uint48,bytes)":"2d73c69c","activeStake()":"bd49c35f","activeStakeAt(uint48,bytes)":"810da75d","burner()":"27810b6e","claim(address,uint256)":"aad3ec96","claimBatch(address,uint256[])":"7c04c80a","collateral()":"d8dfeb45","currentEpoch()":"76671808","currentEpochStart()":"61a8c8c4","delegator()":"ce9b7930","deposit(address,uint256)":"47e7ef24","depositLimit()":"ecf70858","depositWhitelist()":"48d3b775","epochAt(uint48)":"7953b33b","epochDuration()":"4ff0876a","epochDurationInit()":"46361671","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(uint64,address,bytes)":"57ec83cc","isDelegatorInitialized()":"50861adc","isDepositLimit()":"a1b12202","isDepositorWhitelisted(address)":"794b15b7","isInitialized()":"392e53cd","isSlasherInitialized()":"6ec1e3f8","isWithdrawalsClaimed(uint256,address)":"a5d03223","migrate(uint64,bytes)":"2abe3048","nextEpochStart()":"73790ab3","onSlash(uint256,uint48)":"7278e31c","owner()":"8da5cb5b","previousEpochStart()":"281f5752","redeem(address,uint256)":"1e9a6950","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDelegator(address)":"83cd9cc3","setDepositLimit(uint256)":"bdc8144b","setDepositWhitelist(bool)":"4105a7dd","setDepositorWhitelistStatus(address,bool)":"a2861466","setIsDepositLimit(bool)":"5346e34f","setSlasher(address)":"aabc2496","slashableBalanceOf(address)":"c31e8dd7","slasher()":"b1344271","staticDelegateCall(address,bytes)":"9f86fd85","supportsInterface(bytes4)":"01ffc9a7","totalStake()":"8b0e9f3f","transferOwnership(address)":"f2fde38b","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdrawalShares(uint256)":"afba70ad","withdrawalSharesOf(uint256,address)":"a3b54172","withdrawals(uint256)":"5cc07076","withdrawalsOf(uint256,address)":"f5e7ee0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"slasherFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultFactory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientRedemption\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientWithdrawal\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCaptureEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClaimer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLengthEpochs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnBehalfOf\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingRoles\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoPreviousEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDelegator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFactory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlasher\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelistedDepositor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchRedeem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooMuchWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ClaimBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"name\":\"OnSlash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"SetDelegator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"SetDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositWhitelist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetDepositorWhitelistStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"SetIsDepositLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"slasher\",\"type\":\"address\"}],\"name\":\"SetSlasher\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELEGATOR_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSITOR_WHITELIST_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEPOSIT_WHITELIST_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_DEPOSIT_LIMIT_SET_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASHER_FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hints\",\"type\":\"bytes\"}],\"name\":\"activeBalanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"activeSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeSharesOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"hint\",\"type\":\"bytes\"}],\"name\":\"activeStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"burner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"epochs\",\"type\":\"uint256[]\"}],\"name\":\"claimBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"epochAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochDurationInit\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"initialVersion\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegatorInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDepositLimit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDepositorWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSlasherInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWithdrawalsClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"captureTimestamp\",\"type\":\"uint48\"}],\"name\":\"onSlash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"slashedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousEpochStart\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawnAssets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator_\",\"type\":\"address\"}],\"name\":\"setDelegator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"setDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setDepositorWhitelistStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"name\":\"setIsDepositLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"slasher_\",\"type\":\"address\"}],\"name\":\"setSlasher\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"slashableBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"staticDelegateCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"burnedShares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mintedShares\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalSharesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdrawalsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in a uint of `bits` size.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Claim(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epoch\":\"epoch the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"ClaimBatch(address,address,uint256[],uint256)\":{\"params\":{\"amount\":\"amount of the collateral claimed\",\"claimer\":\"account that claimed\",\"epochs\":\"epochs the collateral was claimed for\",\"recipient\":\"account that received the collateral\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral deposited\",\"depositor\":\"account that made the deposit\",\"onBehalfOf\":\"account the deposit was made on behalf of\",\"shares\":\"amount of the active shares minted\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OnSlash(uint256,uint48,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to slash\",\"captureTimestamp\":\"time point when the stake was captured\",\"slashedAmount\":\"real amount of the collateral slashed\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SetDelegator(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"delegator\":\"vault's delegator to delegate the stake to networks and operators\"}},\"SetDepositLimit(uint256)\":{\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"SetDepositWhitelist(bool)\":{\"params\":{\"status\":\"if enabled deposit whitelist\"}},\"SetDepositorWhitelistStatus(address,bool)\":{\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisted the account\"}},\"SetIsDepositLimit(bool)\":{\"params\":{\"status\":\"if enabled deposit limit\"}},\"SetSlasher(address)\":{\"details\":\"Can be set only once.\",\"params\":{\"slasher\":\"vault's slasher to provide a slashing mechanism to networks\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"amount of the collateral withdrawn\",\"burnedShares\":\"amount of the active shares burned\",\"claimer\":\"account that needs to claim the withdrawal\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawer\":\"account that made the withdrawal\"}}},\"kind\":\"dev\",\"methods\":{\"activeBalanceOf(address)\":{\"params\":{\"account\":\"account to get the active balance for\"},\"returns\":{\"_0\":\"active balance for the account\"}},\"activeBalanceOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the active balance for\",\"hints\":\"hints for checkpoints' indexes\",\"timestamp\":\"time point to get the active balance for the account at\"},\"returns\":{\"_0\":\"active balance for the account at the timestamp\"}},\"activeShares()\":{\"returns\":{\"_0\":\"total number of active shares\"}},\"activeSharesAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total number of active shares at\"},\"returns\":{\"_0\":\"total number of active shares at the timestamp\"}},\"activeSharesOf(address)\":{\"params\":{\"account\":\"account to get the number of active shares for\"},\"returns\":{\"_0\":\"number of active shares for the account\"}},\"activeSharesOfAt(address,uint48,bytes)\":{\"params\":{\"account\":\"account to get the number of active shares for\",\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the number of active shares for the account at\"},\"returns\":{\"_0\":\"number of active shares for the account at the timestamp\"}},\"activeStake()\":{\"returns\":{\"_0\":\"total amount of active stake\"}},\"activeStakeAt(uint48,bytes)\":{\"params\":{\"hint\":\"hint for the checkpoint index\",\"timestamp\":\"time point to get the total active stake at\"},\"returns\":{\"_0\":\"total amount of active stake at the timestamp\"}},\"claim(address,uint256)\":{\"params\":{\"epoch\":\"epoch to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"claimBatch(address,uint256[])\":{\"params\":{\"epochs\":\"epochs to claim the collateral for\",\"recipient\":\"account that receives the collateral\"},\"returns\":{\"amount\":\"amount of the collateral claimed\"}},\"currentEpoch()\":{\"returns\":{\"_0\":\"current epoch\"}},\"currentEpochStart()\":{\"returns\":{\"_0\":\"start of the current epoch\"}},\"deposit(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to deposit\",\"onBehalfOf\":\"account the deposit is made on behalf of\"},\"returns\":{\"depositedAmount\":\"real amount of the collateral deposited\",\"mintedShares\":\"amount of the active shares minted\"}},\"epochAt(uint48)\":{\"details\":\"Reverts if the timestamp is less than the start of the epoch 0.\",\"params\":{\"timestamp\":\"time point to get the epoch at\"},\"returns\":{\"_0\":\"epoch at the timestamp\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(uint64,address,bytes)\":{\"params\":{\"data\":\"some data to use\",\"initialVersion\":\"initial version of the entity\",\"owner\":\"initial owner of the entity\"}},\"isInitialized()\":{\"returns\":{\"_0\":\"if the vault is fully initialized\"}},\"migrate(uint64,bytes)\":{\"params\":{\"data\":\"some data to use\",\"newVersion\":\"new version of the entity\"}},\"nextEpochStart()\":{\"returns\":{\"_0\":\"start of the next epoch\"}},\"onSlash(uint256,uint48)\":{\"details\":\"Only the slasher can call this function.\",\"params\":{\"amount\":\"amount to slash\",\"captureTimestamp\":\"time point when the stake was captured\"},\"returns\":{\"slashedAmount\":\"real amount of the collateral slashed\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"previousEpochStart()\":{\"details\":\"Reverts if the current epoch is 0.\",\"returns\":{\"_0\":\"start of the previous epoch\"}},\"redeem(address,uint256)\":{\"params\":{\"claimer\":\"account that needs to claim the withdrawal\",\"shares\":\"amount of the active shares to redeem\"},\"returns\":{\"mintedShares\":\"amount of the epoch withdrawal shares minted\",\"withdrawnAssets\":\"amount of the collateral withdrawn\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setDepositLimit(uint256)\":{\"details\":\"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"limit\":\"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)\"}},\"setDepositWhitelist(bool)\":{\"details\":\"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit whitelist\"}},\"setDepositorWhitelistStatus(address,bool)\":{\"details\":\"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.\",\"params\":{\"account\":\"account for which the whitelist status is set\",\"status\":\"if whitelisting the account\"}},\"setIsDepositLimit(bool)\":{\"details\":\"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.\",\"params\":{\"status\":\"if enabling deposit limit\"}},\"slashableBalanceOf(address)\":{\"params\":{\"account\":\"account to get the slashable collateral for\"},\"returns\":{\"_0\":\"total amount of the account's slashable collateral\"}},\"staticDelegateCall(address,bytes)\":{\"details\":\"It allows to use this contract's storage on-chain.\",\"params\":{\"data\":\"data to make a delegatecall with\",\"target\":\"address of the contract to make a delegatecall to\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"totalStake()\":{\"returns\":{\"_0\":\"total amount of the slashable collateral\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"version()\":{\"details\":\"Starts from 1.\",\"returns\":{\"_0\":\"version of the entity\"}},\"withdraw(address,uint256)\":{\"params\":{\"amount\":\"amount of the collateral to withdraw\",\"claimer\":\"account that needs to claim the withdrawal\"},\"returns\":{\"burnedShares\":\"amount of the active shares burned\",\"mintedShares\":\"amount of the epoch withdrawal shares minted\"}},\"withdrawalsOf(uint256,address)\":{\"params\":{\"account\":\"account to get the withdrawals for\",\"epoch\":\"epoch to get the withdrawals for the account at\"},\"returns\":{\"_0\":\"withdrawals for the account at the epoch\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Claim(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a claim is made.\"},\"ClaimBatch(address,address,uint256[],uint256)\":{\"notice\":\"Emitted when a batch claim is made.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a deposit is made.\"},\"OnSlash(uint256,uint48,uint256)\":{\"notice\":\"Emitted when a slash happens.\"},\"SetDelegator(address)\":{\"notice\":\"Emitted when a delegator is set.\"},\"SetDepositLimit(uint256)\":{\"notice\":\"Emitted when a deposit limit is set.\"},\"SetDepositWhitelist(bool)\":{\"notice\":\"Emitted when a deposit whitelist status is enabled/disabled.\"},\"SetDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Emitted when a depositor whitelist status is set.\"},\"SetIsDepositLimit(bool)\":{\"notice\":\"Emitted when a deposit limit status is enabled/disabled.\"},\"SetSlasher(address)\":{\"notice\":\"Emitted when a slasher is set.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a withdrawal is made.\"}},\"kind\":\"user\",\"methods\":{\"DELEGATOR_FACTORY()\":{\"notice\":\"Get the delegator factory's address.\"},\"DEPOSITOR_WHITELIST_ROLE()\":{\"notice\":\"Get a depositor whitelist status setter's role.\"},\"DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit setter's role.\"},\"DEPOSIT_WHITELIST_SET_ROLE()\":{\"notice\":\"Get a deposit whitelist enabler/disabler's role.\"},\"FACTORY()\":{\"notice\":\"Get the factory's address.\"},\"IS_DEPOSIT_LIMIT_SET_ROLE()\":{\"notice\":\"Get a deposit limit enabler/disabler's role.\"},\"SLASHER_FACTORY()\":{\"notice\":\"Get the slasher factory's address.\"},\"activeBalanceOf(address)\":{\"notice\":\"Get an active balance for a particular account.\"},\"activeBalanceOfAt(address,uint48,bytes)\":{\"notice\":\"Get an active balance for a particular account at a given timestamp using hints.\"},\"activeShares()\":{\"notice\":\"Get a total number of active shares in the vault.\"},\"activeSharesAt(uint48,bytes)\":{\"notice\":\"Get a total number of active shares in the vault at a given timestamp using a hint.\"},\"activeSharesOf(address)\":{\"notice\":\"Get a number of active shares for a particular account.\"},\"activeSharesOfAt(address,uint48,bytes)\":{\"notice\":\"Get a total number of active shares for a particular account at a given timestamp using a hint.\"},\"activeStake()\":{\"notice\":\"Get a total amount of active stake in the vault.\"},\"activeStakeAt(uint48,bytes)\":{\"notice\":\"Get a total amount of active stake in the vault at a given timestamp using a hint.\"},\"burner()\":{\"notice\":\"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract).\"},\"claim(address,uint256)\":{\"notice\":\"Claim collateral from the vault.\"},\"claimBatch(address,uint256[])\":{\"notice\":\"Claim collateral from the vault for multiple epochs.\"},\"collateral()\":{\"notice\":\"Get a vault collateral.\"},\"currentEpoch()\":{\"notice\":\"Get a current vault epoch.\"},\"currentEpochStart()\":{\"notice\":\"Get a start of the current vault epoch.\"},\"delegator()\":{\"notice\":\"Get a delegator (it delegates the vault's stake to networks and operators).\"},\"deposit(address,uint256)\":{\"notice\":\"Deposit collateral into the vault.\"},\"depositLimit()\":{\"notice\":\"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously).\"},\"depositWhitelist()\":{\"notice\":\"Get if the deposit whitelist is enabled.\"},\"epochAt(uint48)\":{\"notice\":\"Get an epoch at a given timestamp.\"},\"epochDuration()\":{\"notice\":\"Get a duration of the vault epoch.\"},\"epochDurationInit()\":{\"notice\":\"Get a time point of the epoch duration set.\"},\"initialize(uint64,address,bytes)\":{\"notice\":\"Initialize this entity contract by using a given data and setting a particular version and owner.\"},\"isDelegatorInitialized()\":{\"notice\":\"Get if the delegator is initialized.\"},\"isDepositLimit()\":{\"notice\":\"Get if the deposit limit is set.\"},\"isDepositorWhitelisted(address)\":{\"notice\":\"Get if a given account is whitelisted as a depositor.\"},\"isInitialized()\":{\"notice\":\"Check if the vault is fully initialized (a delegator and a slasher are set).\"},\"isSlasherInitialized()\":{\"notice\":\"Get if the slasher is initialized.\"},\"isWithdrawalsClaimed(uint256,address)\":{\"notice\":\"Get if the withdrawals are claimed for a particular account at a given epoch.\"},\"migrate(uint64,bytes)\":{\"notice\":\"Migrate this entity to a particular newer version using a given data.\"},\"nextEpochStart()\":{\"notice\":\"Get a start of the next vault epoch.\"},\"onSlash(uint256,uint48)\":{\"notice\":\"Slash callback for burning collateral.\"},\"previousEpochStart()\":{\"notice\":\"Get a start of the previous vault epoch.\"},\"redeem(address,uint256)\":{\"notice\":\"Redeem collateral from the vault (it will be claimable after the next epoch).\"},\"setDepositLimit(uint256)\":{\"notice\":\"Set a deposit limit.\"},\"setDepositWhitelist(bool)\":{\"notice\":\"Enable/disable deposit whitelist.\"},\"setDepositorWhitelistStatus(address,bool)\":{\"notice\":\"Set a depositor whitelist status.\"},\"setIsDepositLimit(bool)\":{\"notice\":\"Enable/disable deposit limit.\"},\"slashableBalanceOf(address)\":{\"notice\":\"Get a total amount of the collateral that can be slashed for a given account.\"},\"slasher()\":{\"notice\":\"Get a slasher (it provides networks a slashing mechanism).\"},\"staticDelegateCall(address,bytes)\":{\"notice\":\"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data).\"},\"totalStake()\":{\"notice\":\"Get a total amount of the collateral that can be slashed.\"},\"version()\":{\"notice\":\"Get the entity's version.\"},\"withdraw(address,uint256)\":{\"notice\":\"Withdraw collateral from the vault (it will be claimable after the next epoch).\"},\"withdrawalShares(uint256)\":{\"notice\":\"Get a total number of withdrawal shares at a given epoch.\"},\"withdrawalSharesOf(uint256,address)\":{\"notice\":\"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed).\"},\"withdrawals(uint256)\":{\"notice\":\"Get a total amount of the withdrawals at a given epoch.\"},\"withdrawalsOf(uint256,address)\":{\"notice\":\"Get withdrawals for a particular account at a given epoch (zero if claimed).\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/vault/Vault.sol\":\"Vault\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0\",\"dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99\",\"dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xffca8f1d67bf069a2237a4631c6af36b141f33fb8e894ef58e6a4f72fc098f77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff8f533667f82b8c3ddd46e6bc26f7c7c1eb73890a2136393aab8a0043e09e6\",\"dweb:/ipfs/QmSPHM9fj6VL2V5owMbARubCZKe6d6kho9CVGEcpzkELNL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xe3a2cff969716ebedd6f9fc7f4cbc499449e9bd0377afa49dab9e9c21212a50e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b14eb6728d660a790b2c49df0e96fe31e467ec30fc02ae41944b5d5a628610d8\",\"dweb:/ipfs/QmSP2j6xhEbCRzDyv5HTwvJV14vBtyZFog3LUh7wp94YHc\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d\",\"dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812\",\"dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y\"]},\"src/contracts/common/MigratableEntity.sol\":{\"keccak256\":\"0xb45194d133ae13c0e0c99c1d028dc0028259db3c12501ec204c2b49ee6e3e4e8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4f3e6617cb5f5784bf92b82116c1f7eed5fd8de2449e44cdcab6adf2b2f5091d\",\"dweb:/ipfs/QmZUzwPU92nmgVuHq1jhA8kqDiCfHFvUwAU9jcwYhL3jAH\"]},\"src/contracts/common/StaticDelegateCallable.sol\":{\"keccak256\":\"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764\",\"dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD\"]},\"src/contracts/libraries/Checkpoints.sol\":{\"keccak256\":\"0x7ee52140593640e44d1f538b32c1d402f74960358001f9ae3d16878a956473fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2d129d70624f3e2cf2312b06bfc4431512687893a1ade28063cc6af261af3e8\",\"dweb:/ipfs/QmUWfDMGRtXusd9WD5Pgdo9cRhf9AVP78sDPrcoCDp1yhb\"]},\"src/contracts/libraries/ERC4626Math.sol\":{\"keccak256\":\"0xe1606a6a7faf7a436cd534a47297fecd485bdbfdaa1c4ca16b45e4512a6e3780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cfd1e124b7d197b6282c5663cac72062a28aa5f5bb083b013f435c3484917b1\",\"dweb:/ipfs/QmZrrcZyuFPvepAbuqwJMwYJZBEKPe1BBZYWhJ93b8X5zJ\"]},\"src/contracts/vault/Vault.sol\":{\"keccak256\":\"0xb363ec8283edce2762420e1fc942ada9aa0d68231633515dc0a8c63b858e5796\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cfd9ee6a788770c5892e152604403d1060d64a10b8ccddb66092e3439b729f6\",\"dweb:/ipfs/QmSWgtRuRdTdz43fMNkec4A4nZzhgSukB6H4vzsUZG849v\"]},\"src/contracts/vault/VaultStorage.sol\":{\"keccak256\":\"0xc05896ffba86f189e599597ea187b1083ed64aa73b53c6832717a7cc907d0d37\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://908eaa6f4b643a6e78a269d5bc61e3d1ccd0714e24e02628d4638fa04a4f17d4\",\"dweb:/ipfs/QmbUGdZaoeTJiHzt8CCFUqjGkapYeCVrxNhwmv5e7xcgWe\"]},\"src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8\",\"dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]},\"src/interfaces/common/IStaticDelegateCallable.sol\":{\"keccak256\":\"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516\",\"dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi\"]},\"src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x9a5e1c1e4a7ac7efb38bef2c1fdf7291bab50f0132254e785b369108d824644a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24eee610901bd2c1cd13bb34e947a0f5ee3c35b9955b47ce31413ceccd1364f7\",\"dweb:/ipfs/QmNT85tdWph5XaPUDnL9HXbAEW3yiQhCHkkZCCdvGpkyQq\"]},\"src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x24adabf74f067faa60d944c14419ca1af2ff9b599158e47e4c475ebc69e91cbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9588876a5c3c710e3139ff40fc5b206a4a789a01dcae3b515cff09856cac5c1f\",\"dweb:/ipfs/QmfHuuxVXvF9og6zPZrS2V39bMe4suBjTG3BxxMTKhijYQ\"]},\"src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78\",\"dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX\"]},\"src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0\",\"dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"delegatorFactory","type":"address"},{"internalType":"address","name":"slasherFactory","type":"address"},{"internalType":"address","name":"vaultFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[],"type":"error","name":"AlreadyClaimed"},{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"AlreadySet"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"DelegatorAlreadyInitialized"},{"inputs":[],"type":"error","name":"DepositLimitReached"},{"inputs":[],"type":"error","name":"InsufficientClaim"},{"inputs":[],"type":"error","name":"InsufficientDeposit"},{"inputs":[],"type":"error","name":"InsufficientRedemption"},{"inputs":[],"type":"error","name":"InsufficientWithdrawal"},{"inputs":[],"type":"error","name":"InvalidAccount"},{"inputs":[],"type":"error","name":"InvalidCaptureEpoch"},{"inputs":[],"type":"error","name":"InvalidClaimer"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidDelegator"},{"inputs":[],"type":"error","name":"InvalidEpoch"},{"inputs":[],"type":"error","name":"InvalidEpochDuration"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidLengthEpochs"},{"inputs":[],"type":"error","name":"InvalidOnBehalfOf"},{"inputs":[],"type":"error","name":"InvalidRecipient"},{"inputs":[],"type":"error","name":"InvalidSlasher"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"MissingRoles"},{"inputs":[],"type":"error","name":"NoPreviousEpoch"},{"inputs":[],"type":"error","name":"NotDelegator"},{"inputs":[],"type":"error","name":"NotFactory"},{"inputs":[],"type":"error","name":"NotInitialized"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotSlasher"},{"inputs":[],"type":"error","name":"NotWhitelistedDepositor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"SlasherAlreadyInitialized"},{"inputs":[],"type":"error","name":"TooMuchRedeem"},{"inputs":[],"type":"error","name":"TooMuchWithdraw"},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256[]","name":"epochs","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ClaimBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"depositor","type":"address","indexed":true},{"internalType":"address","name":"onBehalfOf","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"captureTimestamp","type":"uint48","indexed":false},{"internalType":"uint256","name":"slashedAmount","type":"uint256","indexed":false}],"type":"event","name":"OnSlash","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true}],"type":"event","name":"SetDelegator","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":false}],"type":"event","name":"SetDepositLimit","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositWhitelist","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetDepositorWhitelistStatus","anonymous":false},{"inputs":[{"internalType":"bool","name":"status","type":"bool","indexed":false}],"type":"event","name":"SetIsDepositLimit","anonymous":false},{"inputs":[{"internalType":"address","name":"slasher","type":"address","indexed":true}],"type":"event","name":"SetSlasher","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"burnedShares","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintedShares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATOR_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSIT_WHITELIST_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_DEPOSIT_LIMIT_SET_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SLASHER_FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hints","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeBalanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"activeSharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeSharesOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"},{"internalType":"bytes","name":"hint","type":"bytes"}],"stateMutability":"view","type":"function","name":"activeStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256[]","name":"epochs","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"claimBatch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currentEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"onBehalfOf","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"depositWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"view","type":"function","name":"epochAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"epochDurationInit","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"initialVersion","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isDelegatorInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isDepositLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isDepositorWhitelisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isSlasherInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isWithdrawalsClaimed","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"nextEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint48","name":"captureTimestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"onSlash","outputs":[{"internalType":"uint256","name":"slashedAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"previousEpochStart","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"withdrawnAssets","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"address","name":"delegator_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDelegator"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDepositLimit"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositWhitelist"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setDepositorWhitelistStatus"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setIsDepositLimit"},{"inputs":[{"internalType":"address","name":"slasher_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSlasher"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"slashableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slasher","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"staticDelegateCall"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"burnedShares","type":"uint256"},{"internalType":"uint256","name":"mintedShares","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawalShares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalSharesOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawals","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawalsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"activeBalanceOf(address)":{"params":{"account":"account to get the active balance for"},"returns":{"_0":"active balance for the account"}},"activeBalanceOfAt(address,uint48,bytes)":{"params":{"account":"account to get the active balance for","hints":"hints for checkpoints' indexes","timestamp":"time point to get the active balance for the account at"},"returns":{"_0":"active balance for the account at the timestamp"}},"activeShares()":{"returns":{"_0":"total number of active shares"}},"activeSharesAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total number of active shares at"},"returns":{"_0":"total number of active shares at the timestamp"}},"activeSharesOf(address)":{"params":{"account":"account to get the number of active shares for"},"returns":{"_0":"number of active shares for the account"}},"activeSharesOfAt(address,uint48,bytes)":{"params":{"account":"account to get the number of active shares for","hint":"hint for the checkpoint index","timestamp":"time point to get the number of active shares for the account at"},"returns":{"_0":"number of active shares for the account at the timestamp"}},"activeStake()":{"returns":{"_0":"total amount of active stake"}},"activeStakeAt(uint48,bytes)":{"params":{"hint":"hint for the checkpoint index","timestamp":"time point to get the total active stake at"},"returns":{"_0":"total amount of active stake at the timestamp"}},"claim(address,uint256)":{"params":{"epoch":"epoch to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"claimBatch(address,uint256[])":{"params":{"epochs":"epochs to claim the collateral for","recipient":"account that receives the collateral"},"returns":{"amount":"amount of the collateral claimed"}},"currentEpoch()":{"returns":{"_0":"current epoch"}},"currentEpochStart()":{"returns":{"_0":"start of the current epoch"}},"deposit(address,uint256)":{"params":{"amount":"amount of the collateral to deposit","onBehalfOf":"account the deposit is made on behalf of"},"returns":{"depositedAmount":"real amount of the collateral deposited","mintedShares":"amount of the active shares minted"}},"epochAt(uint48)":{"details":"Reverts if the timestamp is less than the start of the epoch 0.","params":{"timestamp":"time point to get the epoch at"},"returns":{"_0":"epoch at the timestamp"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(uint64,address,bytes)":{"params":{"data":"some data to use","initialVersion":"initial version of the entity","owner":"initial owner of the entity"}},"isInitialized()":{"returns":{"_0":"if the vault is fully initialized"}},"migrate(uint64,bytes)":{"params":{"data":"some data to use","newVersion":"new version of the entity"}},"nextEpochStart()":{"returns":{"_0":"start of the next epoch"}},"onSlash(uint256,uint48)":{"details":"Only the slasher can call this function.","params":{"amount":"amount to slash","captureTimestamp":"time point when the stake was captured"},"returns":{"slashedAmount":"real amount of the collateral slashed"}},"owner()":{"details":"Returns the address of the current owner."},"previousEpochStart()":{"details":"Reverts if the current epoch is 0.","returns":{"_0":"start of the previous epoch"}},"redeem(address,uint256)":{"params":{"claimer":"account that needs to claim the withdrawal","shares":"amount of the active shares to redeem"},"returns":{"mintedShares":"amount of the epoch withdrawal shares minted","withdrawnAssets":"amount of the collateral withdrawn"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setDepositLimit(uint256)":{"details":"Only a DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"limit":"deposit limit (maximum amount of the collateral that can be in the vault simultaneously)"}},"setDepositWhitelist(bool)":{"details":"Only a DEPOSIT_WHITELIST_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit whitelist"}},"setDepositorWhitelistStatus(address,bool)":{"details":"Only a DEPOSITOR_WHITELIST_ROLE holder can call this function.","params":{"account":"account for which the whitelist status is set","status":"if whitelisting the account"}},"setIsDepositLimit(bool)":{"details":"Only a IS_DEPOSIT_LIMIT_SET_ROLE holder can call this function.","params":{"status":"if enabling deposit limit"}},"slashableBalanceOf(address)":{"params":{"account":"account to get the slashable collateral for"},"returns":{"_0":"total amount of the account's slashable collateral"}},"staticDelegateCall(address,bytes)":{"details":"It allows to use this contract's storage on-chain.","params":{"data":"data to make a delegatecall with","target":"address of the contract to make a delegatecall to"}},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"totalStake()":{"returns":{"_0":"total amount of the slashable collateral"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"version()":{"details":"Starts from 1.","returns":{"_0":"version of the entity"}},"withdraw(address,uint256)":{"params":{"amount":"amount of the collateral to withdraw","claimer":"account that needs to claim the withdrawal"},"returns":{"burnedShares":"amount of the active shares burned","mintedShares":"amount of the epoch withdrawal shares minted"}},"withdrawalsOf(uint256,address)":{"params":{"account":"account to get the withdrawals for","epoch":"epoch to get the withdrawals for the account at"},"returns":{"_0":"withdrawals for the account at the epoch"}}},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATOR_FACTORY()":{"notice":"Get the delegator factory's address."},"DEPOSITOR_WHITELIST_ROLE()":{"notice":"Get a depositor whitelist status setter's role."},"DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit setter's role."},"DEPOSIT_WHITELIST_SET_ROLE()":{"notice":"Get a deposit whitelist enabler/disabler's role."},"FACTORY()":{"notice":"Get the factory's address."},"IS_DEPOSIT_LIMIT_SET_ROLE()":{"notice":"Get a deposit limit enabler/disabler's role."},"SLASHER_FACTORY()":{"notice":"Get the slasher factory's address."},"activeBalanceOf(address)":{"notice":"Get an active balance for a particular account."},"activeBalanceOfAt(address,uint48,bytes)":{"notice":"Get an active balance for a particular account at a given timestamp using hints."},"activeShares()":{"notice":"Get a total number of active shares in the vault."},"activeSharesAt(uint48,bytes)":{"notice":"Get a total number of active shares in the vault at a given timestamp using a hint."},"activeSharesOf(address)":{"notice":"Get a number of active shares for a particular account."},"activeSharesOfAt(address,uint48,bytes)":{"notice":"Get a total number of active shares for a particular account at a given timestamp using a hint."},"activeStake()":{"notice":"Get a total amount of active stake in the vault."},"activeStakeAt(uint48,bytes)":{"notice":"Get a total amount of active stake in the vault at a given timestamp using a hint."},"burner()":{"notice":"Get a burner to issue debt to (e.g., 0xdEaD or some unwrapper contract)."},"claim(address,uint256)":{"notice":"Claim collateral from the vault."},"claimBatch(address,uint256[])":{"notice":"Claim collateral from the vault for multiple epochs."},"collateral()":{"notice":"Get a vault collateral."},"currentEpoch()":{"notice":"Get a current vault epoch."},"currentEpochStart()":{"notice":"Get a start of the current vault epoch."},"delegator()":{"notice":"Get a delegator (it delegates the vault's stake to networks and operators)."},"deposit(address,uint256)":{"notice":"Deposit collateral into the vault."},"depositLimit()":{"notice":"Get a deposit limit (maximum amount of the active stake that can be in the vault simultaneously)."},"depositWhitelist()":{"notice":"Get if the deposit whitelist is enabled."},"epochAt(uint48)":{"notice":"Get an epoch at a given timestamp."},"epochDuration()":{"notice":"Get a duration of the vault epoch."},"epochDurationInit()":{"notice":"Get a time point of the epoch duration set."},"initialize(uint64,address,bytes)":{"notice":"Initialize this entity contract by using a given data and setting a particular version and owner."},"isDelegatorInitialized()":{"notice":"Get if the delegator is initialized."},"isDepositLimit()":{"notice":"Get if the deposit limit is set."},"isDepositorWhitelisted(address)":{"notice":"Get if a given account is whitelisted as a depositor."},"isInitialized()":{"notice":"Check if the vault is fully initialized (a delegator and a slasher are set)."},"isSlasherInitialized()":{"notice":"Get if the slasher is initialized."},"isWithdrawalsClaimed(uint256,address)":{"notice":"Get if the withdrawals are claimed for a particular account at a given epoch."},"migrate(uint64,bytes)":{"notice":"Migrate this entity to a particular newer version using a given data."},"nextEpochStart()":{"notice":"Get a start of the next vault epoch."},"onSlash(uint256,uint48)":{"notice":"Slash callback for burning collateral."},"previousEpochStart()":{"notice":"Get a start of the previous vault epoch."},"redeem(address,uint256)":{"notice":"Redeem collateral from the vault (it will be claimable after the next epoch)."},"setDepositLimit(uint256)":{"notice":"Set a deposit limit."},"setDepositWhitelist(bool)":{"notice":"Enable/disable deposit whitelist."},"setDepositorWhitelistStatus(address,bool)":{"notice":"Set a depositor whitelist status."},"setIsDepositLimit(bool)":{"notice":"Enable/disable deposit limit."},"slashableBalanceOf(address)":{"notice":"Get a total amount of the collateral that can be slashed for a given account."},"slasher()":{"notice":"Get a slasher (it provides networks a slashing mechanism)."},"staticDelegateCall(address,bytes)":{"notice":"Make a delegatecall from this contract to a given target contract with a particular data (always reverts with a return data)."},"totalStake()":{"notice":"Get a total amount of the collateral that can be slashed."},"version()":{"notice":"Get the entity's version."},"withdraw(address,uint256)":{"notice":"Withdraw collateral from the vault (it will be claimable after the next epoch)."},"withdrawalShares(uint256)":{"notice":"Get a total number of withdrawal shares at a given epoch."},"withdrawalSharesOf(uint256,address)":{"notice":"Get a number of withdrawal shares for a particular account at a given epoch (zero if claimed)."},"withdrawals(uint256)":{"notice":"Get a total amount of the withdrawals at a given epoch."},"withdrawalsOf(uint256,address)":{"notice":"Get withdrawals for a particular account at a given epoch (zero if claimed)."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/","forge-std/=dependencies/forge-std-1.16.1/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/vault/Vault.sol":"Vault"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098","urls":["bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0","dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/ReentrancyGuard.sol":{"keccak256":"0xa516cbf1c7d15d3517c2d668601ce016c54395bf5171918a14e2686977465f53","urls":["bzz-raw://1e1d079e8edfb58efd23a311e315a4807b01b5d1cf153f8fa2d0608b9dec3e99","dweb:/ipfs/QmTBExeX2SDTkn5xbk5ssbYSx7VqRp9H4Ux1CY4uQM4b9N"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/Checkpoints.sol":{"keccak256":"0xffca8f1d67bf069a2237a4631c6af36b141f33fb8e894ef58e6a4f72fc098f77","urls":["bzz-raw://4ff8f533667f82b8c3ddd46e6bc26f7c7c1eb73890a2136393aab8a0043e09e6","dweb:/ipfs/QmSPHM9fj6VL2V5owMbARubCZKe6d6kho9CVGEcpzkELNL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/AccessControlUpgradeable.sol":{"keccak256":"0xe3a2cff969716ebedd6f9fc7f4cbc499449e9bd0377afa49dab9e9c21212a50e","urls":["bzz-raw://b14eb6728d660a790b2c49df0e96fe31e467ec30fc02ae41944b5d5a628610d8","dweb:/ipfs/QmSP2j6xhEbCRzDyv5HTwvJV14vBtyZFog3LUh7wp94YHc"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16","urls":["bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d","dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224","urls":["bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812","dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y"],"license":"MIT"},"src/contracts/common/MigratableEntity.sol":{"keccak256":"0xb45194d133ae13c0e0c99c1d028dc0028259db3c12501ec204c2b49ee6e3e4e8","urls":["bzz-raw://4f3e6617cb5f5784bf92b82116c1f7eed5fd8de2449e44cdcab6adf2b2f5091d","dweb:/ipfs/QmZUzwPU92nmgVuHq1jhA8kqDiCfHFvUwAU9jcwYhL3jAH"],"license":"BUSL-1.1"},"src/contracts/common/StaticDelegateCallable.sol":{"keccak256":"0x350029aa8955eacaffffaeb58babc5c98e80ebc5c5db388ed17ee6465f4a9d90","urls":["bzz-raw://eb392a8ee9050e0af606897df63e3404e3829e8b688b580663892f9664195764","dweb:/ipfs/QmaXC8jqV8UrrAFkzXTEv2fJF56sy33HhLxAzaRZmUxuXD"],"license":"BUSL-1.1"},"src/contracts/libraries/Checkpoints.sol":{"keccak256":"0x7ee52140593640e44d1f538b32c1d402f74960358001f9ae3d16878a956473fd","urls":["bzz-raw://d2d129d70624f3e2cf2312b06bfc4431512687893a1ade28063cc6af261af3e8","dweb:/ipfs/QmUWfDMGRtXusd9WD5Pgdo9cRhf9AVP78sDPrcoCDp1yhb"],"license":"MIT"},"src/contracts/libraries/ERC4626Math.sol":{"keccak256":"0xe1606a6a7faf7a436cd534a47297fecd485bdbfdaa1c4ca16b45e4512a6e3780","urls":["bzz-raw://3cfd1e124b7d197b6282c5663cac72062a28aa5f5bb083b013f435c3484917b1","dweb:/ipfs/QmZrrcZyuFPvepAbuqwJMwYJZBEKPe1BBZYWhJ93b8X5zJ"],"license":"MIT"},"src/contracts/vault/Vault.sol":{"keccak256":"0xb363ec8283edce2762420e1fc942ada9aa0d68231633515dc0a8c63b858e5796","urls":["bzz-raw://4cfd9ee6a788770c5892e152604403d1060d64a10b8ccddb66092e3439b729f6","dweb:/ipfs/QmSWgtRuRdTdz43fMNkec4A4nZzhgSukB6H4vzsUZG849v"],"license":"BUSL-1.1"},"src/contracts/vault/VaultStorage.sol":{"keccak256":"0xc05896ffba86f189e599597ea187b1083ed64aa73b53c6832717a7cc907d0d37","urls":["bzz-raw://908eaa6f4b643a6e78a269d5bc61e3d1ccd0714e24e02628d4638fa04a4f17d4","dweb:/ipfs/QmbUGdZaoeTJiHzt8CCFUqjGkapYeCVrxNhwmv5e7xcgWe"],"license":"BUSL-1.1"},"src/interfaces/common/IEntity.sol":{"keccak256":"0x07ebf9f9df62607b55cbca76b908c0198ebebba7d8526343e0bc472ba9dd8ac2","urls":["bzz-raw://07ea2df1247f85b853026583a24c5230a1955cffc3b07edb343a37a6aee428a8","dweb:/ipfs/QmU9VB8kayLvne1JHvyHUDAbUB31zfrT28HVvXCDzNpubU"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"},"src/interfaces/common/IStaticDelegateCallable.sol":{"keccak256":"0xa335d4e81b9071b7de66ef92b43ff20671d86516eb1be46fef29a3483cd3f5d5","urls":["bzz-raw://d464b9db863c14c05547d2b23352f2e9b7b784799cf09f6bbc4906a2a74e3516","dweb:/ipfs/QmUVWzFvJz7eEbDQKiFTTzwi7TEbjcs3VmwdM4kuptAKvi"],"license":"MIT"},"src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x9a5e1c1e4a7ac7efb38bef2c1fdf7291bab50f0132254e785b369108d824644a","urls":["bzz-raw://24eee610901bd2c1cd13bb34e947a0f5ee3c35b9955b47ce31413ceccd1364f7","dweb:/ipfs/QmNT85tdWph5XaPUDnL9HXbAEW3yiQhCHkkZCCdvGpkyQq"],"license":"MIT"},"src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x24adabf74f067faa60d944c14419ca1af2ff9b599158e47e4c475ebc69e91cbb","urls":["bzz-raw://9588876a5c3c710e3139ff40fc5b206a4a789a01dcae3b515cff09856cac5c1f","dweb:/ipfs/QmfHuuxVXvF9og6zPZrS2V39bMe4suBjTG3BxxMTKhijYQ"],"license":"MIT"},"src/interfaces/vault/IVault.sol":{"keccak256":"0x7779a655c8e2e7561790945845c579bc1184f374fecba87132c53603b201351d","urls":["bzz-raw://ba4f583feca8188d73adb28422cd0244de54abc67cb77ce0f3fb2db7b0465c78","dweb:/ipfs/QmNqepr4Y7Z6vkQF4ecAhHpNuY7ibfJcZ27YHSRWtTfoeX"],"license":"MIT"},"src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x4a470670032807fc95aaed88dadd62360629eeec8548100e87361994934aecd1","urls":["bzz-raw://ad965bfaedcc1da6f8cd42c68222cf4ae83e70aea246c22d1da01fe0d7a587c0","dweb:/ipfs/QmP3pduNhvCyA6RMp9mt6tHkA1ATinh7zXyHXXKBmmjiWC"],"license":"MIT"}},"version":1},"id":149} \ No newline at end of file diff --git a/ethexe/ethereum/abi/VaultFactory.json b/ethexe/ethereum/abi/VaultFactory.json index baf395bd272..89b1a799a23 100644 --- a/ethexe/ethereum/abi/VaultFactory.json +++ b/ethexe/ethereum/abi/VaultFactory.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"entity_","type":"address","internalType":"address"},{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"version","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Migrate","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"newVersion","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidVersion","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"OldVersion","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b557601f61121538819003918201601f19168301916001600160401b0383118484101760b95780849260209460405283398101031260b557516001600160a01b03908181169081900360b5578015609d57600280546001600160a01b03198116831790915560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a361114790816100ce8239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea264697066735822122028e25eef202279b950fae0b3b6144d4d7a8824832024cb7fc76ff5455d7c319964736f6c63430008190033a264697066735822122044a749ed3b4cc7533f65daf7149d976a000661a24fc7eadbf8ace3eef7a619fb64736f6c63430008190033","sourceMap":"195:138:68:-:0;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;1273:26:32;;1269:95;;3004:6;195:138:68;;-1:-1:-1;;;;;;195:138:68;;;;;;;;;;;3052:40:32;-1:-1:-1;;3052:40:32;195:138:68;;;;;;;1269:95:32;195:138:68;;-1:-1:-1;;;1322:31:32;;-1:-1:-1;1322:31:32;;;195:138:68;;;1322:31:32;195:138:68;-1:-1:-1;195:138:68;;;;;;-1:-1:-1;195:138:68;;;;;-1:-1:-1;195:138:68","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260049081361015610014575f80fd5b5f915f3560e01c90816314887c581461084a5781633ac04911146106dc57816358336662146104945781635cd8b15e1461047757816364dfea061461044f578163715018a6146103f25781638da5cb5b146103c95781639b19251a146102e3578163b42ba2a214610273578163b572a966146101b9578163b6caa1191461017c578163f2fde38b146100e8575063f9661602146100af575f80fd5b346100e45760203660031901126100e4576020906100d36100ce6108a3565b610999565b90516001600160a01b039091168152f35b5080fd5b9050346101785760203660031901126101785761010361088d565b9061010c610a0f565b6001600160a01b03918216928315610162575050600254826bffffffffffffffffffffffff60a01b821617600255167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346100e45760203660031901126100e45760ff8160209367ffffffffffffffff6101a66108a3565b1681526003855220541690519015158152f35b91905034610178576020366003190112610178576101d56108a3565b916101de610a0f565b67ffffffffffffffff809316928315908115610266575b5061025857828452600360205260ff828520541661024a575081835260036020528220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b905163f53de75f60e01b8152fd5b905163a9146eeb60e01b8152fd5b905081541683115f6101f5565b8284346102e05760203660031901126102e0575081355f548110156102cd575f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015490516001600160a01b03909116815260209150f35b603283634e487b7160e01b5f525260245ffd5b80fd5b905034610178576020366003190112610178576102fe61088d565b91610307610a0f565b80516202dd3160ec1b81526001600160a01b03938416936020828581885afa9182156103bf57869261038e575b50309116036103815761034683610af2565b156103745750507feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b5163b73e95e160e01b8152fd5b5163340aafcd60e11b8152fd5b6103b191925060203d6020116103b8575b6103a98183610908565b81019061097a565b905f610334565b503d61039f565b83513d88823e3d90fd5b5050346100e457816003193601126100e45760025490516001600160a01b039091168152602090f35b83346102e057806003193601126102e05761040b610a0f565b600280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b8284346102e057806003193601126102e0575067ffffffffffffffff60209254169051908152f35b5050346100e457816003193601126100e457602091549051908152f35b83833461063d57606036600319011261063d576104af61088d565b6024359167ffffffffffffffff908184169182850361063d5760443581811161063d576104df90369089016108ba565b6001600160a01b039586165f81815260016020526040902054909792939290156106cc578451638da5cb5b60e01b81526020979088818d818d5afa9081156106c2575f916106a5575b5016330361069557845163054fd4d560e41b815287818c818c5afa90811561068b579084915f91610651575b5016861115610641576105696105a291610999565b916105948651958692630557c60960e31b8b85015289602485015288604485015260648401916108e8565b03601f198101855284610908565b863b1561063d57835163278f794360e11b8152925f91849182916105c991908d840161093e565b0381838a5af1801561063357610607575b5050519081527fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a79190a280f35b9080929650116106205784529293505f928486806105da565b604186634e487b7160e01b5f525260245ffd5b83513d5f823e3d90fd5b5f80fd5b8451630384ebd960e41b81528a90fd5b809250898092503d8311610684575b61066a8183610908565b8101031261063d5751838116810361063d5783908c610554565b503d610660565b86513d5f823e3d90fd5b84516330cd747160e01b81528a90fd5b6106bc9150893d8b116103b8576103a98183610908565b8c610528565b87513d5f823e3d90fd5b845163e3fd10ff60e01b81528a90fd5b823461063d57606036600319011261063d576106f66108a3565b6001600160a01b03926024358481169081900361063d5760443567ffffffffffffffff80821161063d576107306107bf92369086016108ba565b92905f546107b389519260208401928352610785868b1693848d8701528960608701526080808701528561076860a082018b866108e8565b039561077c601f1997888101835282610908565b5190209a610999565b968b519889946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108e8565b03908101855284610908565b8551936105c39081860192868410908411176108375750918493916107e893610b4f863961093e565b03905ff591821561082d57602092169061080182610a84565b505190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b50513d5f823e3d90fd5b604190634e487b7160e01b5f525260245ffd5b823461063d57602036600319011261063d576020906108846001600160a01b0361087261088d565b165f52600160205260405f2054151590565b90519015158152f35b600435906001600160a01b038216820361063d57565b6004359067ffffffffffffffff8216820361063d57565b9181601f8401121561063d5782359167ffffffffffffffff831161063d576020838186019501011161063d57565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761092a57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261063d57516001600160a01b038116810361063d5790565b67ffffffffffffffff80911680158015610a02575b6109f0575f1901908082116109dc576109c79116610a3b565b905460039190911b1c6001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b60405163a9146eeb60e01b8152600490fd5b50816004541681116109ae565b6002546001600160a01b03163303610a2357565b60405163118cdaa760e01b8152336004820152602490fd5b600454811015610a705760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600160205260405f2054155f14610aed575f54600160401b81101561092a5760018101805f55811015610a705781907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aed57600454600160401b81101561092a57806001610b259201600455610a3b565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe604060a08152346101df576105c38038038061001a816101e3565b92833981019082818303126101df5780516001600160a01b0392838216918281036101df5760208481015190946001600160401b0382116101df570182601f820112156101df57805161007461006f8261021c565b6101e3565b91818352868301948783830101116101df57815f9288809301875e83010152813b156101c7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b03199081168617909155937fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a25180156101bf575f809161012694845af43d156101b7573d9161011861006f8461021c565b9283523d5f8785013e610237565b505b336080527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f847fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610394855494825191861682523390820152a133156101a057163317905551610328908161029b82396080518160f10152f35b8351633173bdd160e11b81525f6004820152602490fd5b606091610237565b505050610128565b8651634c9c8ce360e01b815260048101859052602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761020857604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161020857601f01601f191660200190565b9061025e575080511561024c57805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580610291575b61026f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561026756fe6080604052600436106101f4575f3560e01c634f1ef286036101f45734610086576040366003190112610086576004356001600160a01b0381168103610086576024359067ffffffffffffffff9081831161008657366023840112156100865782600401359182116100865736602483850101116100865760246100849301906100e5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff8111838210176100c457604052565b61008a565b67ffffffffffffffff81116100c457601f01601f191660200190565b916001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036101e257610129610124826100c9565b61009e565b92818452368282011161008657815f926020928387013784010152823b156101c85782167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc816bffffffffffffffffffffffff60a01b8254161790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101bc576101b991610256565b50565b50506101c661023d565b565b604051634c9c8ce360e01b81529083166004820152602490fd5b6040516334ad5dbb60e21b8152600490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610239573d5ff35b3d5ffd5b3461024457565b60405163b398979f60e01b8152600490fd5b5f8061028893602081519101845af43d1561028b573d91610279610124846100c9565b9283523d5f602085013e61028f565b90565b6060915b906102b657508051156102a457805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806102e9575b6102c7575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156102bf56fea264697066735822122028e25eef202279b950fae0b3b6144d4d7a8824832024cb7fc76ff5455d7c319964736f6c63430008190033a264697066735822122044a749ed3b4cc7533f65daf7149d976a000661a24fc7eadbf8ace3eef7a619fb64736f6c63430008190033","sourceMap":"195:138:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;1576:7:73;195:138:68;;:::i;:::-;1576:7:73;:::i;:::-;195:138:68;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;2627:22:32;;2623:91;;195:138:68;;3004:6:32;195:138:68;;;;;;;;3004:6:32;195:138:68;;3052:40:32;195:138:68;3052:40:32;;195:138:68;;2623:91:32;195:138:68;-1:-1:-1;;;2672:31:32;;;;;195:138:68;;;;;2672:31:32;195:138:68;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;;;;;;:::i;:::-;;;;869:56:73;195:138:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;195:138:68;;;;1065:12:73;;;:39;;;;;195:138:68;1061:93:73;;;195:138:68;;;2251:11:73;195:138:68;;;;;;;;2247:78:73;;-1:-1:-1;195:138:68;;;2251:11:73;195:138:68;;;;;;-1:-1:-1;;195:138:68;2358:4:73;195:138:68;;;2378:18:73;195:138:68;;2378:18:73;195:138:68;;2247:78:73;195:138:68;;-1:-1:-1;;;2294:20:73;;;1061:93;195:138:68;;-1:-1:-1;;;1127:16:73;;;1065:39;195:138:68;;;;;1081:23:73;;1065:39;;;195:138:68;;;;;;;;-1:-1:-1;;195:138:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;-1:-1:-1;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;1500:62:32;;;:::i;:::-;195:138:68;;-1:-1:-1;;;1804:44:73;;-1:-1:-1;;;;;195:138:68;;;;;;1804:44:73;195:138:68;;1804:44:73;;;;;;;;;;;195:138:68;1860:4:73;;195:138:68;;1804:61:73;1800:122;;8409:50:61;;;:::i;:::-;1935:49:73;1931:107;;2053:26;;;;;;195:138:68;;1931:107:73;195:138:68;-1:-1:-1;;;2007:20:73;;;1800:122;195:138:68;-1:-1:-1;;;1888:23:73;;;1804:44;;;;;195:138:68;1804:44:73;195:138:68;1804:44:73;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;1710:6:32;195:138:68;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;1500:62:32;;:::i;:::-;3004:6;195:138:68;;-1:-1:-1;;;;;;195:138:68;;;;;;;-1:-1:-1;;;;;195:138:68;3052:40:32;195:138:68;;3052:40:32;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;8974:55:61;4360:26;1185:72:74;;195:138:68;;-1:-1:-1;;;3069:24:73;;195:138:68;;;;;3069:24:73;195:138:68;3069:24:73;;;;;;;;195:138:68;3069:24:73;;;195:138:68;;;3055:10:73;:38;3051:86;;195:138:68;;-1:-1:-1;;;3165:36:73;;;195:138:68;3165:36:73;195:138:68;3165:36:73;;;;;;;;;;;195:138:68;3165:36:73;;;195:138:68;;;3151:50:73;;;3147:100;;1576:7;3347:61;1576:7;;:::i;:::-;195:138:68;;;;3347:61:73;;;;;;;;;;;195:138:68;3347:61:73;;195:138:68;;;;;;;;;;;:::i;:::-;3347:61:73;2651:50;;3347:61;;;;;;:::i;:::-;3257:161;;;;;195:138:68;;-1:-1:-1;;;3257:161:73;;195:138:68;;;;;;;3257:161:73;;195:138:68;3257:161:73;;;;:::i;:::-;;;;;;;;;;;;;195:138:68;-1:-1:-1;;195:138:68;;;;3434:28:73;;195:138:68;3434:28:73;195:138:68;;3257:161:73;195:138:68;;;;;;;;;;;;-1:-1:-1;195:138:68;;;3257:161:73;;;;195:138:68;;;;;;;;;;;;3257:161:73;195:138:68;;;;;;;;;3257:161:73;195:138:68;;;3147:100:73;195:138:68;;-1:-1:-1;;;3224:12:73;;195:138:68;;3224:12:73;3165:36;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:68;;;;;;;;;;;;3165:36:73;;;;;;;;;;;195:138:68;;;;;;;;;3051:86:73;195:138:68;;-1:-1:-1;;;3116:10:73;;195:138:68;;3116:10:73;3069:24;;;;;;;;;;;;;;:::i;:::-;;;;;195:138:68;;;;;;;;;1185:72:74;195:138:68;;-1:-1:-1;;;1230:16:74;;195:138:68;;1230:16:74;195:138:68;;;;;;;-1:-1:-1;;195:138:68;;;;;;:::i;:::-;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;2746:69:73;195:138:68;;;;;;:::i;:::-;;;;;;;;2651:50:73;195:138:68;2651:50:73;;195:138:68;;;1576:7:73;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2651:50:73;;;;;;;;;;;;;:::i;:::-;195:138:68;2641:61:73;;1576:7;;:::i;:::-;195:138:68;;;2746:69:73;;;;;;195:138:68;2746:69:73;;;195:138:68;2746:69:73;;195:138:68;;;;;;;;;;;;;;;:::i;:::-;2746:69:73;;;;;;;;:::i;:::-;195:138:68;;2609:220:73;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;195:138:68;2609:220:73;;;;;;195:138:68;;;8409:50:61;;;;:::i;:::-;;195:138:68;1077:18:74;;;195:138:68;1077:18:74;;195:138:68;;;2609:220:73;195:138:68;;;;;;;;;2609:220:73;195:138:68;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;;;8974:55:61;-1:-1:-1;;;;;195:138:68;;:::i;:::-;;;;4360:14:61;195:138:68;;;;;;4360:26:61;;4264:129;;8974:55;195:138:68;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;195:138:68;;;;;;;;-1:-1:-1;;195:138:68;;;;:::o;:::-;;;2651:50:73;;195:138:68;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;195:138:68;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;195:138:68;;;;;;;:::o;999:172:73:-;195:138:68;;;;1065:12:73;;:39;;;;999:172;1061:93;;-1:-1:-1;;195:138:68;;;;;;;5016:18:61;195:138:68;;5016:18:61;:::i;:::-;195:138:68;;;;;;;;-1:-1:-1;;;;;195:138:68;;999:172:73:o;195:138:68:-;;;;;;;1602:27:73;195:138:68;;;;1061:93:73;195:138:68;;-1:-1:-1;;;1127:16:73;;;;;1065:39;195:138:68;;1374:27:73;195:138:68;;1081:23:73;;1065:39;;1796:162:32;1710:6;195:138:68;-1:-1:-1;;;;;195:138:68;735:10:47;1855:23:32;1851:101;;1796:162::o;1851:101::-;195:138:68;;-1:-1:-1;;;1901:40:32;;735:10:47;1901:40:32;;;195:138:68;;;1901:40:32;195:138:68;1602:27:73;195:138:68;;;;;;1602:27:73;-1:-1:-1;195:138:68;;;;-1:-1:-1;195:138:68;:::o;:::-;;;;;;;1602:27:73;195:138:68;;;;2241:406:61;195:138:68;;;4360:14:61;195:138:68;;;;;;4360:26:61;2320:321;195:138:68;;;;;-1:-1:-1;;;195:138:68;;;;;4360:14:61;195:138:68;;;;;;;;;;;;;;;;;;;;4360:14:61;195:138:68;;;;;;4360:14:61;2576:11;:::o;2320:321::-;2618:12;195:138:68;2618:12:61;:::o;2241:406::-;195:138:68;-1:-1:-1;195:138:68;4360:14:61;195:138:68;;;-1:-1:-1;195:138:68;;4360:26:61;2320:321;195:138:68;;;;;-1:-1:-1;;;195:138:68;;;;;;4360:14:61;195:138:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;195:138:68;4360:14:61;195:138:68;;;-1:-1:-1;195:138:68;;4360:14:61;2576:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,address,bytes)":"3ac04911","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","lastVersion()":"64dfea06","migrate(address,uint64,bytes)":"58336662","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"}],\"name\":\"Migrate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given version is still deployable.\",\"params\":{\"version\":\"version that was blacklisted\"}},\"Migrate(address,uint64)\":{\"params\":{\"entity\":\"address of the entity\",\"newVersion\":\"new version of the entity\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given version will still be deployable.\",\"params\":{\"version\":\"version to blacklist\"}},\"create(uint64,address,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"owner\":\"initial owner of the entity\",\"version\":\"entity's version to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"details\":\"Reverts when an invalid version.\",\"params\":{\"version\":\"version to get the implementation for\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"lastVersion()\":{\"details\":\"If zero, no implementations are whitelisted.\",\"returns\":{\"_0\":\"version of the last implementation\"}},\"migrate(address,uint64,bytes)\":{\"details\":\"Only the entity's owner can call this function.\",\"params\":{\"data\":\"some data to reinitialize the contract with\",\"entity\":\"address of the entity to migrate\",\"newVersion\":\"new version to migrate to\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a version is blacklisted (e.g., in case of invalid implementation).\"},\"Migrate(address,uint64)\":{\"notice\":\"Emitted when an entity is migrated to a new version.\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new implementation is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a version of entities.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a version is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,address,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given version.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"lastVersion()\":{\"notice\":\"Get the last available version.\"},\"migrate(address,uint64,bytes)\":{\"notice\":\"Migrate a given entity to a given newer version.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new implementation for entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3\",\"dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d\",\"dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f\",\"dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652\",\"dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5\",\"dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidVersion"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"OldVersion"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"uint64","name":"newVersion","type":"uint64","indexed":false}],"type":"event","name":"Migrate","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"},{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given version will still be deployable.","params":{"version":"version to blacklist"}},"create(uint64,address,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","owner":"initial owner of the entity","version":"entity's version to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"details":"Reverts when an invalid version.","params":{"version":"version to get the implementation for"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"lastVersion()":{"details":"If zero, no implementations are whitelisted.","returns":{"_0":"version of the last implementation"}},"migrate(address,uint64,bytes)":{"details":"Only the entity's owner can call this function.","params":{"data":"some data to reinitialize the contract with","entity":"address of the entity to migrate","newVersion":"new version to migrate to"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a version of entities."},"blacklisted(uint64)":{"notice":"Get if a version is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,address,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given version."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"lastVersion()":{"notice":"Get the last available version."},"migrate(address,uint64,bytes)":{"notice":"Migrate a given entity to a given newer version."},"totalEntities()":{"notice":"Get a total number of entities."},"whitelist(address)":{"notice":"Whitelist a new implementation for entities."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultFactory.sol":"VaultFactory"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa9122dd11e5f21fa97a813e90f8c4905f0a4967b9611dd03437a31377cbdecb8","urls":["bzz-raw://4c2feda1f9c0c7ddf65bccdc99494e4bfbb820fcddc3e4222e3b58ef821424a3","dweb:/ipfs/Qmdmt4rH214jDmDsF9ELvJXVCt8abhk6poSmhJqqzLse3R"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x78ba27242276232ad10a45265e3c07f0a25722456f6abb3fb3f24a1c8e1b38d1","urls":["bzz-raw://a19623df688e5085036b59fc934e35b72997f875d7ffda1cdc557c6ca468206d","dweb:/ipfs/QmaQiT5uYZu5JmqhMjTDJnsq3nqaHbKrWAjrxKKLesdHV7"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x5d1487c3456da4bd0bc2a131eeab97ab92484c923edefaebf190cc08d4080093","urls":["bzz-raw://fec38d2e52e9c5148e95599c133fd6fe66d41296d6fc06e7329d2db199a1798f","dweb:/ipfs/QmeiaydBXHHkJRUnpaZH1C6JQ7HPocTvQbUJBqKTvUeEYv"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0x4a4004836d920953a8ec6e223de9a330f43acf7a5b93c6b8b3e4a95e0f129889","urls":["bzz-raw://e8bdda207f3852c683a2b481602239a914f7e26bcd042ade618e263a43b67652","dweb:/ipfs/Qmb8GZykJWxZcfwNp3SqhFizDFydFuV6LXgemV3vnWyLyu"],"license":"BUSL-1.1"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xd4dfe9449bf005dbcbab9e0e85eaaca15a601ff971f34182a0b1832dc4b9d124","urls":["bzz-raw://ff8b73285192a9c64160b008d23a09da33e7164d10a9dc29d1a4464bd9c02be5","dweb:/ipfs/QmZQW2LLV4dQfJ3coENKeycbzXJzi7zdvupsqWA4UV29Gq"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"}},"version":1},"id":68} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"blacklist","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklisted","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"version","type":"uint64","internalType":"uint64"},{"name":"owner_","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"entity_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"entity","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[{"name":"version","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isEntity","inputs":[{"name":"entity_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"migrate","inputs":[{"name":"entity_","type":"address","internalType":"address"},{"name":"newVersion","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalEntities","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelist","inputs":[{"name":"implementation_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddEntity","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Blacklist","inputs":[{"name":"version","type":"uint64","indexed":true,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Migrate","inputs":[{"name":"entity","type":"address","indexed":true,"internalType":"address"},{"name":"newVersion","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Whitelist","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyBlacklisted","inputs":[]},{"type":"error","name":"AlreadyWhitelisted","inputs":[]},{"type":"error","name":"EntityNotExist","inputs":[]},{"type":"error","name":"InvalidImplementation","inputs":[]},{"type":"error","name":"InvalidVersion","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"OldVersion","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60803460b757601f6111e538819003918201601f19168301916001600160401b0383118484101760bb5780849260209460405283398101031260b757516001600160a01b0381169081900360b757801560a457600280546001600160a01b03198116831790915560405191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a361111590816100d08239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f5f3560e01c806314887c58146108265780633ac04911146106bc57806358336662146104745780635cd8b15e1461045757806364dfea0614610430578063715018a6146103d35780638da5cb5b146103aa5780639b19251a146102b9578063b42ba2a214610263578063b572a966146101a7578063b6caa1191461016a578063f2fde38b146100e15763f9661602146100a9575f80fd5b346100de5760203660031901126100de5760206100cc6100c761087e565b61095d565b6040516001600160a01b039091168152f35b80fd5b50346100de5760203660031901126100de576100fb610868565b610103610a15565b6001600160a01b0316801561015657600280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b50346100de5760203660031901126100de5760ff60406020926001600160401b0361019361087e565b168152600384522054166040519015158152f35b50346100de5760203660031901126100de576001600160401b036101c961087e565b6101d1610a15565b168015801561024f575b61024057808252600360205260ff60408320541661023157808252600360205260408220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b63f53de75f60e01b8252600482fd5b63a9146eeb60e01b8252600482fd5b506001600160401b036004541681116101db565b50346100de5760203660031901126100de576004359080548210156102a55780805260208082209092015460405160039290921b1c6001600160a01b03168152f35b634e487b7160e01b81526032600452602490fd5b50346100de5760203660031901126100de576102d3610868565b6102db610a15565b6040516202dd3160ec1b81526001600160a01b039190911690602081600481855afa90811561039f578391610370575b50306001600160a01b03909116036103615761032681610ab0565b15610352577feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b63b73e95e160e01b8252600482fd5b63340aafcd60e11b8252600482fd5b610392915060203d602011610398575b61038a81836108e1565b81019061093e565b5f61030b565b503d610380565b6040513d85823e3d90fd5b50346100de57806003193601126100de576002546040516001600160a01b039091168152602090f35b50346100de57806003193601126100de576103ec610a15565b600280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346100de57806003193601126100de5760206001600160401b0360045416604051908152f35b50346100de57806003193601126100de5760209054604051908152f35b50346106235760603660031901126106235761048e610868565b602435906001600160401b03821690818303610623576044356001600160401b038111610623576104c3903690600401610894565b909160018060a01b0316936104e3855f52600160205260405f2054151590565b156106ad57604051638da5cb5b60e01b8152602081600481895afa908115610618575f9161068e575b506001600160a01b0316330361067f5760405163054fd4d560e41b8152602081600481895afa8015610618575f90610636575b6001600160401b039150168411156106275761055d6105999161095d565b9161058b604051948592630557c60960e31b60208501528760248501526040604485015260648401916108c1565b03601f1981018452836108e1565b833b156106235760405163278f794360e11b8152915f91839182916105c2919060048401610902565b038183875af1801561061857610602575b5060207fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a791604051908152a280f35b61060f9193505f906108e1565b5f9160206105d3565b6040513d5f823e3d90fd5b5f80fd5b630384ebd960e41b5f5260045ffd5b506020813d602011610677575b81610650602093836108e1565b8101031261062357516001600160401b0381168103610623576001600160401b039061053f565b3d9150610643565b6330cd747160e01b5f5260045ffd5b6106a7915060203d6020116103985761038a81836108e1565b5f61050c565b63e3fd10ff60e01b5f5260045ffd5b34610623576060366003190112610623576106d561087e565b6024356001600160a01b03811690819003610623576044356001600160401b0381116106235761070c610797913690600401610894565b919061058b5f549161076860405193602085019081526001600160401b0389169485604082015288606082015260808082015261075f8161075160a082018b886108c1565b03601f1981018352826108e1565b5190209761095d565b946040519687946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108c1565b604051916105d190818401928484106001600160401b038511176108125784936107c593610b0f8639610902565b03905ff58015610618576020906001600160a01b03166107e481610a51565b5060405190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b634e487b7160e01b5f52604160045260245ffd5b3461062357602036600319011261062357602061085e6001600160a01b0361084c610868565b165f52600160205260405f2054151590565b6040519015158152f35b600435906001600160a01b038216820361062357565b600435906001600160401b038216820361062357565b9181601f84011215610623578235916001600160401b038311610623576020838186019501011161062357565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f801991011681019081106001600160401b0382111761081257604052565b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261062357516001600160a01b03811681036106235790565b6001600160401b031680158015610a01575b6109f2575f19016001600160401b0381116109de576001600160401b03166004548110156109ca5760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b63a9146eeb60e01b5f5260045ffd5b506001600160401b0360045416811161096f565b6002546001600160a01b03163303610a2957565b63118cdaa760e01b5f523360045260245ffd5b80548210156109ca575f5260205f2001905f90565b805f52600160205260405f2054155f14610aab575f54600160401b81101561081257806001610a8392015f555f610a3c565b81549060031b9083821b915f19901b19161790555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aab57600454600160401b81101561081257806001610ae592016004556004610a3c565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe60a0604052346101d8575f6105d18038038061001a816101f0565b92833981016040828203126101d8578151916001600160a01b038316908184036101d8576020810151906001600160401b0382116101d8570182601f820112156101d8578051906001600160401b0382116101dc57610082601f8301601f19166020016101f0565b93828552602083830101116101d857815f9260208093018387015e840101528151156101c957823b156101b7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101ae5761011491610215565b505b336080525f5160206105b15f395f51905f5254907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6040805160018060a01b0385168152336020820152a1331561019a57506001600160a01b03191633175f5160206105b15f395f51905f525560405161030f90816102a282396080518160aa0152f35b633173bdd160e11b81526004819052602490fd5b5050505f610116565b634c9c8ce360e01b5f5260045260245ffd5b6330a289cf60e21b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176101dc57604052565b905f8091602081519101845af4808061028e575b156102495750506040513d81523d5f602083013e60203d82010160405290565b1561026e57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d1561027f576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806102295750813b151561022956fe6080604052600436106101fe575f3560e01c634f1ef286036101fe573461008d57604036600319011261008d576004356001600160a01b038116810361008d576024359067ffffffffffffffff821161008d573660238301121561008d5781600401359067ffffffffffffffff821161008d57366024838501011161008d57602461008b9301906100a5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361013a5767ffffffffffffffff82116101355760405191601f8101601f19908116603f0116830167ffffffffffffffff81118482101761013557604052808352368185011161008d576020815f92610133968387013784010152610149565b565b610091565b6334ad5dbb60e21b5f5260045ffd5b90813b156101dd577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101c5576101c291610247565b50565b5050346101ce57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610243573d5ff35b3d5ffd5b905f8091602081519101845af480806102ad575b1561026d57505061026a6102c0565b90565b1561028d57639996b31560e01b5f526001600160a01b031660045260245ffd5b3d1561029e576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d15158061025b5750813b151561025b565b604051903d82523d5f602084013e60203d83010160405256fea264697066735822122057550d48ffa4bff26293d65e98f2652037c81b7b615f2be680c17372b139c47264736f6c63430008230033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a2646970667358221220b3be676eb1885fbefa041ca0998a2abcfbec252dda91767f416c43db7e03fb2264736f6c63430008230033","sourceMap":"196:124:121:-:0;;;;;;;;;;;;;-1:-1:-1;;196:124:121;;;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;;;;1273:26:1;;1269:95;;3004:6;196:124:121;;-1:-1:-1;;;;;;196:124:121;;;;;;;;;;;-1:-1:-1;;;;;196:124:121;3052:40:1;-1:-1:-1;;3052:40:1;196:124:121;;;;;;;1269:95:1;1322:31;;;-1:-1:-1;1322:31:1;-1:-1:-1;1322:31:1;196:124:121;;-1:-1:-1;1322:31:1;196:124:121;-1:-1:-1;196:124:121;;;;;;-1:-1:-1;196:124:121;;;;;-1:-1:-1;196:124:121","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806314887c58146108265780633ac04911146106bc57806358336662146104745780635cd8b15e1461045757806364dfea0614610430578063715018a6146103d35780638da5cb5b146103aa5780639b19251a146102b9578063b42ba2a214610263578063b572a966146101a7578063b6caa1191461016a578063f2fde38b146100e15763f9661602146100a9575f80fd5b346100de5760203660031901126100de5760206100cc6100c761087e565b61095d565b6040516001600160a01b039091168152f35b80fd5b50346100de5760203660031901126100de576100fb610868565b610103610a15565b6001600160a01b0316801561015657600280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b50346100de5760203660031901126100de5760ff60406020926001600160401b0361019361087e565b168152600384522054166040519015158152f35b50346100de5760203660031901126100de576001600160401b036101c961087e565b6101d1610a15565b168015801561024f575b61024057808252600360205260ff60408320541661023157808252600360205260408220805460ff191660011790557ffc8245c2838846b295ae66fbe0d08e20c799b737c93b56f7b209df2e5fa2d4588280a280f35b63f53de75f60e01b8252600482fd5b63a9146eeb60e01b8252600482fd5b506001600160401b036004541681116101db565b50346100de5760203660031901126100de576004359080548210156102a55780805260208082209092015460405160039290921b1c6001600160a01b03168152f35b634e487b7160e01b81526032600452602490fd5b50346100de5760203660031901126100de576102d3610868565b6102db610a15565b6040516202dd3160ec1b81526001600160a01b039190911690602081600481855afa90811561039f578391610370575b50306001600160a01b03909116036103615761032681610ab0565b15610352577feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e8280a280f35b63b73e95e160e01b8252600482fd5b63340aafcd60e11b8252600482fd5b610392915060203d602011610398575b61038a81836108e1565b81019061093e565b5f61030b565b503d610380565b6040513d85823e3d90fd5b50346100de57806003193601126100de576002546040516001600160a01b039091168152602090f35b50346100de57806003193601126100de576103ec610a15565b600280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346100de57806003193601126100de5760206001600160401b0360045416604051908152f35b50346100de57806003193601126100de5760209054604051908152f35b50346106235760603660031901126106235761048e610868565b602435906001600160401b03821690818303610623576044356001600160401b038111610623576104c3903690600401610894565b909160018060a01b0316936104e3855f52600160205260405f2054151590565b156106ad57604051638da5cb5b60e01b8152602081600481895afa908115610618575f9161068e575b506001600160a01b0316330361067f5760405163054fd4d560e41b8152602081600481895afa8015610618575f90610636575b6001600160401b039150168411156106275761055d6105999161095d565b9161058b604051948592630557c60960e31b60208501528760248501526040604485015260648401916108c1565b03601f1981018452836108e1565b833b156106235760405163278f794360e11b8152915f91839182916105c2919060048401610902565b038183875af1801561061857610602575b5060207fb91c18bf7dbfdff96560fb98128531c4c6187079fe0bd7f24a81f54ea87f35a791604051908152a280f35b61060f9193505f906108e1565b5f9160206105d3565b6040513d5f823e3d90fd5b5f80fd5b630384ebd960e41b5f5260045ffd5b506020813d602011610677575b81610650602093836108e1565b8101031261062357516001600160401b0381168103610623576001600160401b039061053f565b3d9150610643565b6330cd747160e01b5f5260045ffd5b6106a7915060203d6020116103985761038a81836108e1565b5f61050c565b63e3fd10ff60e01b5f5260045ffd5b34610623576060366003190112610623576106d561087e565b6024356001600160a01b03811690819003610623576044356001600160401b0381116106235761070c610797913690600401610894565b919061058b5f549161076860405193602085019081526001600160401b0389169485604082015288606082015260808082015261075f8161075160a082018b886108c1565b03601f1981018352826108e1565b5190209761095d565b946040519687946315fb20f360e21b6020870152602486015260448501526060606485015260848401916108c1565b604051916105d190818401928484106001600160401b038511176108125784936107c593610b0f8639610902565b03905ff58015610618576020906001600160a01b03166107e481610a51565b5060405190807fb919910dcefbf753bfd926ab3b1d3f85d877190c3d01ba1bd585047b99b99f0b5f80a28152f35b634e487b7160e01b5f52604160045260245ffd5b3461062357602036600319011261062357602061085e6001600160a01b0361084c610868565b165f52600160205260405f2054151590565b6040519015158152f35b600435906001600160a01b038216820361062357565b600435906001600160401b038216820361062357565b9181601f84011215610623578235916001600160401b038311610623576020838186019501011161062357565b908060209392818452848401375f828201840152601f01601f1916010190565b90601f801991011681019081106001600160401b0382111761081257604052565b6001600160a01b0390911681526040602080830182905283519183018290526060938291018484015e5f828201840152601f01601f1916010190565b9081602091031261062357516001600160a01b03811681036106235790565b6001600160401b031680158015610a01575b6109f2575f19016001600160401b0381116109de576001600160401b03166004548110156109ca5760045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01546001600160a01b031690565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b63a9146eeb60e01b5f5260045ffd5b506001600160401b0360045416811161096f565b6002546001600160a01b03163303610a2957565b63118cdaa760e01b5f523360045260245ffd5b80548210156109ca575f5260205f2001905f90565b805f52600160205260405f2054155f14610aab575f54600160401b81101561081257806001610a8392015f555f610a3c565b81549060031b9083821b915f19901b19161790555f54905f52600160205260405f2055600190565b505f90565b805f52600560205260405f2054155f14610aab57600454600160401b81101561081257806001610ae592016004556004610a3c565b81549060031b9083821b915f19901b1916179055600454905f52600560205260405f205560019056fe60a0604052346101d8575f6105d18038038061001a816101f0565b92833981016040828203126101d8578151916001600160a01b038316908184036101d8576020810151906001600160401b0382116101d8570182601f820112156101d8578051906001600160401b0382116101dc57610082601f8301601f19166020016101f0565b93828552602083830101116101d857815f9260208093018387015e840101528151156101c957823b156101b7577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101ae5761011491610215565b505b336080525f5160206105b15f395f51905f5254907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6040805160018060a01b0385168152336020820152a1331561019a57506001600160a01b03191633175f5160206105b15f395f51905f525560405161030f90816102a282396080518160aa0152f35b633173bdd160e11b81526004819052602490fd5b5050505f610116565b634c9c8ce360e01b5f5260045260245ffd5b6330a289cf60e21b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176101dc57604052565b905f8091602081519101845af4808061028e575b156102495750506040513d81523d5f602083013e60203d82010160405290565b1561026e57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d1561027f576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806102295750813b151561022956fe6080604052600436106101fe575f3560e01c634f1ef286036101fe573461008d57604036600319011261008d576004356001600160a01b038116810361008d576024359067ffffffffffffffff821161008d573660238301121561008d5781600401359067ffffffffffffffff821161008d57366024838501011161008d57602461008b9301906100a5565b005b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b9091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361013a5767ffffffffffffffff82116101355760405191601f8101601f19908116603f0116830167ffffffffffffffff81118482101761013557604052808352368185011161008d576020815f92610133968387013784010152610149565b565b610091565b6334ad5dbb60e21b5f5260045ffd5b90813b156101dd577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156101c5576101c291610247565b50565b5050346101ce57565b63b398979f60e01b5f5260045ffd5b50634c9c8ce360e01b5f9081526001600160a01b0391909116600452602490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e15610243573d5ff35b3d5ffd5b905f8091602081519101845af480806102ad575b1561026d57505061026a6102c0565b90565b1561028d57639996b31560e01b5f526001600160a01b031660045260245ffd5b3d1561029e576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d15158061025b5750813b151561025b565b604051903d82523d5f602084013e60203d83010160405256fea264697066735822122057550d48ffa4bff26293d65e98f2652037c81b7b615f2be680c17372b139c47264736f6c63430008230033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a2646970667358221220b3be676eb1885fbefa041ca0998a2abcfbec252dda91767f416c43db7e03fb2264736f6c63430008230033","sourceMap":"196:124:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:124:121;;;;;1535:7:126;196:124:121;;:::i;:::-;1535:7:126;:::i;:::-;196:124:121;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;;;;;;;-1:-1:-1;;196:124:121;;;;;;:::i;:::-;1500:62:1;;:::i;:::-;-1:-1:-1;;;;;196:124:121;2627:22:1;;2623:91;;3004:6;196:124:121;;-1:-1:-1;;;;;;196:124:121;;;;;;;-1:-1:-1;;;;;196:124:121;3052:40:1;;;;196:124:121;;2623:91:1;-1:-1:-1;;;2672:31:1;;196:124:121;;;;;2672:31:1;;196:124:121;;;;;;;-1:-1:-1;;196:124:121;;;;;;;;-1:-1:-1;;;;;196:124:121;;:::i;:::-;;;;870:56:126;196:124:121;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:124:121;;;;-1:-1:-1;;;;;196:124:121;;:::i;:::-;1500:62:1;;:::i;:::-;196:124:121;1052:12:126;;:39;;;;196:124:121;1048:93:126;;196:124:121;;;2182:11:126;196:124:121;;;;;;;;2178:78:126;;196:124:121;;;2182:11:126;196:124:121;;;;;;;-1:-1:-1;;196:124:121;2289:4:126;196:124:121;;;2309:18:126;196:124:121;;2309:18:126;196:124:121;;2178:78:126;-1:-1:-1;;;2225:20:126;;196:124:121;2225:20:126;;1048:93;-1:-1:-1;;;1114:16:126;;196:124:121;1114:16:126;;1052:39;196:124:121;-1:-1:-1;;;;;196:124:121;;;1068:23:126;;1052:39;;196:124:121;;;;;;;-1:-1:-1;;196:124:121;;;;;;5894:18:42;196:124:121;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;-1:-1:-1;;;196:124:121;;;;;;;;;;;;;;;-1:-1:-1;;196:124:121;;;;;;:::i;:::-;1500:62:1;;:::i;:::-;196:124:121;;-1:-1:-1;;;1749:44:126;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;1749:44:126;;;;;;;;;;;196:124:121;-1:-1:-1;1805:4:126;-1:-1:-1;;;;;196:124:121;;;1749:61:126;1745:122;;15182:50:42;;;:::i;:::-;1880:49:126;1876:107;;1998:26;;;;196:124:121;;1876:107:126;-1:-1:-1;;;1952:20:126;;196:124:121;1952:20:126;;1745:122;-1:-1:-1;;;1833:23:126;;196:124:121;1833:23:126;;1749:44;;;;196:124:121;1749:44:126;196:124:121;1749:44:126;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;196:124:121;;;;;;;;;;;;;;;;;;;;;;1710:6:1;196:124:121;;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;;;;;;;;;;;;1500:62:1;;:::i;:::-;3004:6;196:124:121;;-1:-1:-1;;;;;;196:124:121;;;;;;;-1:-1:-1;;;;;196:124:121;3052:40:1;196:124:121;;3052:40:1;196:124:121;;;;;;;;;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:124:121;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;;:::i;:::-;;;;;;;;;16144:55:42;;;196:124:121;;5238:14:42;196:124:121;;;;;;5238:26:42;;5142:129;;16144:55;1119:18:127;1115:72;;196:124:121;;-1:-1:-1;;;3000:24:126;;196:124:121;;;;3000:24:126;;;;;;;;196:124:121;3000:24:126;;;196:124:121;-1:-1:-1;;;;;;196:124:121;2986:10:126;:38;2982:86;;196:124:121;;-1:-1:-1;;;3096:36:126;;196:124:121;;;;3096:36:126;;;;;;;196:124:121;3096:36:126;;;196:124:121;-1:-1:-1;;;;;196:124:121;;;3082:50:126;;;3078:100;;1535:7;3278:61;1535:7;;:::i;:::-;196:124:121;;;;3278:61:126;;;;;;196:124:121;3278:61:126;;;;196:124:121;3278:61:126;;196:124:121;;;;;;;;;;;:::i;:::-;3278:61:126;2582:50;;3278:61;;;;;;:::i;:::-;3188:152;;;;;196:124:121;;-1:-1:-1;;;3188:152:126;;196:124:121;;;;;;;3188:152:126;;196:124:121;;3188:152:126;;;:::i;:::-;;;;;;;;;;;;;196:124:121;;;3356:28:126;196:124:121;;;;;;3356:28:126;196:124:121;;3188:152:126;;;;;196:124:121;3188:152:126;;:::i;:::-;196:124:121;;;3188:152:126;;;196:124:121;;;;;;;;;3188:152:126;196:124:121;;;3078:100:126;3155:12;;;196:124:121;3155:12:126;196:124:121;;3155:12:126;3096:36;;196:124:121;3096:36:126;;196:124:121;3096:36:126;;;;;;196:124:121;3096:36:126;;;:::i;:::-;;;196:124:121;;;;;-1:-1:-1;;;;;196:124:121;;;;;;-1:-1:-1;;;;;3096:36:126;;;;;;-1:-1:-1;3096:36:126;;2982:86;3047:10;;;196:124:121;3047:10:126;196:124:121;;3047:10:126;3000:24;;;;196:124:121;3000:24:126;196:124:121;3000:24:126;;;;;;;:::i;:::-;;;;1115:72:127;1160:16;;;196:124:121;1160:16:127;196:124:121;;1160:16:127;196:124:121;;;;;;-1:-1:-1;;196:124:121;;;;;;:::i;:::-;;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;2677:69:126;196:124:121;;;;;;:::i;:::-;;;;;;;1535:7:126;196:124:121;;2582:50:126;196:124:121;2582:50:126;;196:124:121;;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;;;;;;;;;2582:50:126;196:124:121;;;;;;;;:::i;:::-;2582:50:126;;;;;;;;;:::i;:::-;196:124:121;2572:61:126;;1535:7;;:::i;:::-;196:124:121;;;2677:69:126;;;;;;196:124:121;2677:69:126;;;196:124:121;2677:69:126;;196:124:121;;;;;;;;;;;;;;;:::i;2677:69:126:-;196:124:121;;2540:220:126;;;;;;;;;;-1:-1:-1;;;;;2540:220:126;;;;;;;;;;;;;:::i;:::-;;;196:124:121;2540:220:126;;;;;196:124:121;;-1:-1:-1;;;;;196:124:121;15182:50:42;196:124:121;15182:50:42;:::i;:::-;;196:124:121;;1021:18:127;;;196:124:121;1021:18:127;;196:124:121;;;2540:220:126;196:124:121;;;;;;;;;;;;;;;;;-1:-1:-1;;196:124:121;;;;;16144:55:42;-1:-1:-1;;;;;196:124:121;;:::i;:::-;;;;5238:14:42;196:124:121;;;;;;5238:26:42;;5142:129;;16144:55;196:124:121;;;;;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;196:124:121;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;196:124:121;;;;;;;;-1:-1:-1;;196:124:121;;;;:::o;:::-;;;2582:50:126;;196:124:121;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;;;:::o;:::-;-1:-1:-1;;;;;196:124:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;196:124:121;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;196:124:121;;;;;;;:::o;1000:158:126:-;-1:-1:-1;;;;;196:124:121;1052:12:126;;:39;;;;1000:158;1048:93;;-1:-1:-1;;196:124:121;-1:-1:-1;;;;;196:124:121;;;;-1:-1:-1;;;;;196:124:121;1561:27:126;196:124:121;;;;;;1561:27:126;-1:-1:-1;196:124:121;;;;-1:-1:-1;;;;;196:124:121;;1000:158:126:o;196:124:121:-;;;;-1:-1:-1;196:124:121;;1561:27:126;196:124:121;;-1:-1:-1;196:124:121;;;;;;;;1561:27:126;196:124:121;;;;1048:93:126;1114:16;;;196:124:121;1114:16:126;;196:124:121;1114:16:126;1052:39;196:124:121;-1:-1:-1;;;;;1347:27:126;196:124:121;;1068:23:126;;1052:39;;1796:162:1;1710:6;196:124:121;-1:-1:-1;;;;;196:124:121;735:10:23;1855:23:1;1851:101;;1796:162::o;1851:101::-;1901:40;;;-1:-1:-1;1901:40:1;735:10:23;1901:40:1;196:124:121;;-1:-1:-1;1901:40:1;196:124:121;;;;;;;;-1:-1:-1;196:124:121;;-1:-1:-1;196:124:121;;;-1:-1:-1;196:124:121;:::o;2538:406:42:-;196:124:121;;;5238:14:42;196:124:121;;;;;;5238:26:42;2617:321;2621:22;;;196:124:121;;-1:-1:-1;;;196:124:121;;;;;;5238:14:42;196:124:121;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:42;196:124:121;;;;;;5238:14:42;2873:11;:::o;2617:321::-;2915:12;196:124:121;2915:12:42;:::o;2538:406::-;196:124:121;;;5238:14:42;196:124:121;;;;;;5238:26:42;2617:321;2621:22;;;196:124:121;;-1:-1:-1;;;196:124:121;;;;;;5238:14:42;196:124:121;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;5238:14:42;196:124:121;;;;;;5238:14:42;2873:11;:::o","linkReferences":{}},"methodIdentifiers":{"blacklist(uint64)":"b572a966","blacklisted(uint64)":"b6caa119","create(uint64,address,bytes)":"3ac04911","entity(uint256)":"b42ba2a2","implementation(uint64)":"f9661602","isEntity(address)":"14887c58","lastVersion()":"64dfea06","migrate(address,uint64,bytes)":"58336662","owner()":"8da5cb5b","renounceOwnership()":"715018a6","totalEntities()":"5cd8b15e","transferOwnership(address)":"f2fde38b","whitelist(address)":"9b19251a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyBlacklisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntityNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldVersion\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"}],\"name\":\"AddEntity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Blacklist\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entity\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"}],\"name\":\"Migrate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Whitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"entity\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"}],\"name\":\"isEntity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entity_\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEntities\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"AddEntity(address)\":{\"params\":{\"entity\":\"address of the added entity\"}},\"Blacklist(uint64)\":{\"details\":\"The given version is still deployable.\",\"params\":{\"version\":\"version that was blacklisted\"}},\"Migrate(address,uint64)\":{\"params\":{\"entity\":\"address of the entity\",\"newVersion\":\"new version of the entity\"}},\"Whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"kind\":\"dev\",\"methods\":{\"blacklist(uint64)\":{\"details\":\"The given version will still be deployable.\",\"params\":{\"version\":\"version to blacklist\"}},\"create(uint64,address,bytes)\":{\"details\":\"CREATE2 salt is constructed from the given parameters.\",\"params\":{\"data\":\"initial data for the entity creation\",\"owner\":\"initial owner of the entity\",\"version\":\"entity's version to use\"},\"returns\":{\"entity_\":\"address of the entity\"}},\"entity(uint256)\":{\"params\":{\"index\":\"index of the entity to get\"},\"returns\":{\"_0\":\"address of the entity\"}},\"implementation(uint64)\":{\"details\":\"Reverts when an invalid version.\",\"params\":{\"version\":\"version to get the implementation for\"},\"returns\":{\"_0\":\"address of the implementation\"}},\"isEntity(address)\":{\"params\":{\"account\":\"address to check\"},\"returns\":{\"_0\":\"if the given address is an entity\"}},\"lastVersion()\":{\"details\":\"If zero, no implementations are whitelisted.\",\"returns\":{\"_0\":\"version of the last implementation\"}},\"migrate(address,uint64,bytes)\":{\"details\":\"Only the entity's owner can call this function.\",\"params\":{\"data\":\"some data to reinitialize the contract with\",\"entity\":\"address of the entity to migrate\",\"newVersion\":\"new version to migrate to\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"totalEntities()\":{\"returns\":{\"_0\":\"total number of entities added\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"whitelist(address)\":{\"params\":{\"implementation\":\"address of the new implementation\"}}},\"version\":1},\"userdoc\":{\"events\":{\"AddEntity(address)\":{\"notice\":\"Emitted when an entity is added.\"},\"Blacklist(uint64)\":{\"notice\":\"Emitted when a version is blacklisted (e.g., in case of invalid implementation).\"},\"Migrate(address,uint64)\":{\"notice\":\"Emitted when an entity is migrated to a new version.\"},\"Whitelist(address)\":{\"notice\":\"Emitted when a new implementation is whitelisted.\"}},\"kind\":\"user\",\"methods\":{\"blacklist(uint64)\":{\"notice\":\"Blacklist a version of entities.\"},\"blacklisted(uint64)\":{\"notice\":\"Get if a version is blacklisted (e.g., in case of invalid implementation).\"},\"create(uint64,address,bytes)\":{\"notice\":\"Create a new entity at the factory.\"},\"entity(uint256)\":{\"notice\":\"Get an entity given its index.\"},\"implementation(uint64)\":{\"notice\":\"Get the implementation for a given version.\"},\"isEntity(address)\":{\"notice\":\"Get if a given address is an entity.\"},\"lastVersion()\":{\"notice\":\"Get the last available version.\"},\"migrate(address,uint64,bytes)\":{\"notice\":\"Migrate a given entity to a given newer version.\"},\"totalEntities()\":{\"notice\":\"Get a total number of entities.\"},\"whitelist(address)\":{\"notice\":\"Whitelist a new implementation for entities.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/contracts/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0ba33f46520b83144086db1c93072c12228edc7cc70a9edd09b530f5a40ce440\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e924fb7d3a76f56a468886039b1288335a3cd4284a325360cba229eda1e5568\",\"dweb:/ipfs/Qmcv6vSGaqgGYoSSGCExEhmFL9iwt6oWQuMDb9vJe9vQFC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/Proxy.sol\":{\"keccak256\":\"0x80935e4fae2c414f4e7789e13a820d06901182a5733ab006f8d68b5b09db993f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://752d991d6ca1087587b48103bc623f74888054f58581ff29166d90889c4765c5\",\"dweb:/ipfs/QmRBsa6K2ChKxVWYY54YiyYhDBPbmY5HyKCtij5LoWh56o\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol\":{\"keccak256\":\"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df\",\"dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol\":{\"keccak256\":\"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337\",\"dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90\",\"dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR\"]},\"src/contracts/VaultFactory.sol\":{\"keccak256\":\"0xa1683c414f9ae42137056325372fa4143f882bada7de0745880489f62cae2e90\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://40dae0d6e913fababbec09c35b3dc57372576c651a1e3a44d2f1e57b3e889b87\",\"dweb:/ipfs/QmT7CdkfZGXKcpfXNftuTsFw87v46MLgX3KCgrHqLkgT3o\"]},\"src/contracts/common/MigratableEntityProxy.sol\":{\"keccak256\":\"0x5473982b058c8e16bc375a5636f8e1c044274bf76487526eb76ee85c9ba351c7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://741eaeb54ca50c013813463d41ac27ad3a24ba07648614847030a875054a7a8a\",\"dweb:/ipfs/QmaWmzsbzHL9jMAxBJ6EEoDtRQKEorJWf1qaFB1B1zmUPV\"]},\"src/contracts/common/MigratablesFactory.sol\":{\"keccak256\":\"0x48d9490ca075541822d2676b190f7e0a83c4284f2b09ec46f20afda2359fc145\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ef27de71da0f41ffd1c8f6f81b49f59bb1abeb4b13d45e73353e3ba818261e4b\",\"dweb:/ipfs/QmRnQU7G4hXpn4dbVxkt4z5xN4SxzsLKrQUZ4ugad7zeUr\"]},\"src/contracts/common/Registry.sol\":{\"keccak256\":\"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6\",\"dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH\"]},\"src/interfaces/IVaultFactory.sol\":{\"keccak256\":\"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba\",\"dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN\"]},\"src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"src/interfaces/common/IMigratableEntityProxy.sol\":{\"keccak256\":\"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f\",\"dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt\"]},\"src/interfaces/common/IMigratablesFactory.sol\":{\"keccak256\":\"0xe4f89bf0c693e99c3cdd599099c2ba65325056431e1c4165e5bef758daa7ffc7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fe9b100493ceaca9ab0b1a57a0ab3531597f91e31bb25b8916a7852eed3fe69\",\"dweb:/ipfs/QmR6m2yuvZS7yKHQLZfz27yQE9kkGwmvPzUXYP4zVmF67y\"]},\"src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a\",\"dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AlreadyBlacklisted"},{"inputs":[],"type":"error","name":"AlreadyWhitelisted"},{"inputs":[],"type":"error","name":"EntityNotExist"},{"inputs":[],"type":"error","name":"InvalidImplementation"},{"inputs":[],"type":"error","name":"InvalidVersion"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"OldVersion"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true}],"type":"event","name":"AddEntity","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":true}],"type":"event","name":"Blacklist","anonymous":false},{"inputs":[{"internalType":"address","name":"entity","type":"address","indexed":true},{"internalType":"uint64","name":"newVersion","type":"uint64","indexed":false}],"type":"event","name":"Migrate","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Whitelist","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"blacklisted","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"create","outputs":[{"internalType":"address","name":"entity_","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"entity","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"}],"stateMutability":"view","type":"function","name":"isEntity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"entity_","type":"address"},{"internalType":"uint64","name":"newVersion","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"migrate"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEntities","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"whitelist"}],"devdoc":{"kind":"dev","methods":{"blacklist(uint64)":{"details":"The given version will still be deployable.","params":{"version":"version to blacklist"}},"create(uint64,address,bytes)":{"details":"CREATE2 salt is constructed from the given parameters.","params":{"data":"initial data for the entity creation","owner":"initial owner of the entity","version":"entity's version to use"},"returns":{"entity_":"address of the entity"}},"entity(uint256)":{"params":{"index":"index of the entity to get"},"returns":{"_0":"address of the entity"}},"implementation(uint64)":{"details":"Reverts when an invalid version.","params":{"version":"version to get the implementation for"},"returns":{"_0":"address of the implementation"}},"isEntity(address)":{"params":{"account":"address to check"},"returns":{"_0":"if the given address is an entity"}},"lastVersion()":{"details":"If zero, no implementations are whitelisted.","returns":{"_0":"version of the last implementation"}},"migrate(address,uint64,bytes)":{"details":"Only the entity's owner can call this function.","params":{"data":"some data to reinitialize the contract with","entity":"address of the entity to migrate","newVersion":"new version to migrate to"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"totalEntities()":{"returns":{"_0":"total number of entities added"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"whitelist(address)":{"params":{"implementation":"address of the new implementation"}}},"version":1},"userdoc":{"kind":"user","methods":{"blacklist(uint64)":{"notice":"Blacklist a version of entities."},"blacklisted(uint64)":{"notice":"Get if a version is blacklisted (e.g., in case of invalid implementation)."},"create(uint64,address,bytes)":{"notice":"Create a new entity at the factory."},"entity(uint256)":{"notice":"Get an entity given its index."},"implementation(uint64)":{"notice":"Get the implementation for a given version."},"isEntity(address)":{"notice":"Get if a given address is an entity."},"lastVersion()":{"notice":"Get the last available version."},"migrate(address,uint64,bytes)":{"notice":"Migrate a given entity to a given newer version."},"totalEntities()":{"notice":"Get a total number of entities."},"whitelist(address)":{"notice":"Whitelist a new implementation for entities."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/","forge-std/=dependencies/forge-std-1.16.1/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/contracts/VaultFactory.sol":"VaultFactory"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0x0ba33f46520b83144086db1c93072c12228edc7cc70a9edd09b530f5a40ce440","urls":["bzz-raw://9e924fb7d3a76f56a468886039b1288335a3cd4284a325360cba229eda1e5568","dweb:/ipfs/Qmcv6vSGaqgGYoSSGCExEhmFL9iwt6oWQuMDb9vJe9vQFC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/Proxy.sol":{"keccak256":"0x80935e4fae2c414f4e7789e13a820d06901182a5733ab006f8d68b5b09db993f","urls":["bzz-raw://752d991d6ca1087587b48103bc623f74888054f58581ff29166d90889c4765c5","dweb:/ipfs/QmRBsa6K2ChKxVWYY54YiyYhDBPbmY5HyKCtij5LoWh56o"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Arrays.sol":{"keccak256":"0xb3b81029526a4c3acf39e57cc446407141ebce338cc99585942af1340e1a69e0","urls":["bzz-raw://3857ce97e8f7a51ad78ea5419b3386e18fcc8af73b65803eedd8193ab7abc9df","dweb:/ipfs/QmSQi6x2cYsUy76mfMNwuq151bVmh4kAND141kjume51Aq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/SlotDerivation.sol":{"keccak256":"0x94045fd4f268edf2b2d01ef119268548c320366d6f5294ad30c1b8f9d4f5225f","urls":["bzz-raw://edfda81f426f8948b3834115c21e83c48180e6db0d2a8cd2debb2185ed349337","dweb:/ipfs/QmdYZneFyDAux1BuWQxLAdqtABrGS2k9WYCa7C9dvpKkWv"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/structs/EnumerableSet.sol":{"keccak256":"0x5c298e834696707e274a71a224969d36faecd928a8076603210d67d091adb4ae","urls":["bzz-raw://a93fe967b4d55b31157164cbb7e3e1ebaf3535fc1d3f8d0156da7abb9b565d90","dweb:/ipfs/QmXH7nyxwEUeMPFDDmkdUwqxLEcezaSmVyunyMAuck1WqR"],"license":"MIT"},"src/contracts/VaultFactory.sol":{"keccak256":"0xa1683c414f9ae42137056325372fa4143f882bada7de0745880489f62cae2e90","urls":["bzz-raw://40dae0d6e913fababbec09c35b3dc57372576c651a1e3a44d2f1e57b3e889b87","dweb:/ipfs/QmT7CdkfZGXKcpfXNftuTsFw87v46MLgX3KCgrHqLkgT3o"],"license":"BUSL-1.1"},"src/contracts/common/MigratableEntityProxy.sol":{"keccak256":"0x5473982b058c8e16bc375a5636f8e1c044274bf76487526eb76ee85c9ba351c7","urls":["bzz-raw://741eaeb54ca50c013813463d41ac27ad3a24ba07648614847030a875054a7a8a","dweb:/ipfs/QmaWmzsbzHL9jMAxBJ6EEoDtRQKEorJWf1qaFB1B1zmUPV"],"license":"BUSL-1.1"},"src/contracts/common/MigratablesFactory.sol":{"keccak256":"0x48d9490ca075541822d2676b190f7e0a83c4284f2b09ec46f20afda2359fc145","urls":["bzz-raw://ef27de71da0f41ffd1c8f6f81b49f59bb1abeb4b13d45e73353e3ba818261e4b","dweb:/ipfs/QmRnQU7G4hXpn4dbVxkt4z5xN4SxzsLKrQUZ4ugad7zeUr"],"license":"BUSL-1.1"},"src/contracts/common/Registry.sol":{"keccak256":"0xa7d3983e562ce590c1949b1986cec4519426793cad1e066b66b4ba6ce18ed907","urls":["bzz-raw://1025b8ad8b31e30da821b79bee56044560f1bdcaa683abe0faf534ccfcb82ca6","dweb:/ipfs/QmSJ5LqrCkDmKgsYMamVfEtB6Z8bVDYQrHcDbj4yzxzyQH"],"license":"BUSL-1.1"},"src/interfaces/IVaultFactory.sol":{"keccak256":"0x6f658b264fc8d530e458a98d83a09cb55ace4d3e509f0a3e9294471bb1bcf84d","urls":["bzz-raw://a7253435e4e1d1ae19a50d14091ddb254f6a36f296440106bfc094623dd1aeba","dweb:/ipfs/QmbHK9yoQ7Ctf3nuDLmqxTWPYD8cEm1TKXzfxePtE87AQN"],"license":"MIT"},"src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"src/interfaces/common/IMigratableEntityProxy.sol":{"keccak256":"0x9030ced51ad12e0b3ddaa11bba4a3adcfa29e67b909c46065c14b19d158bb9fd","urls":["bzz-raw://2d859c21510d1a0f06a71abe21dc6424608c1b2e3194a10e4df4cc88c4de9e9f","dweb:/ipfs/QmNi6Buri2oaujc4vTv6bZ5mgMKFsjUmYmQLUNaDCXFEEt"],"license":"MIT"},"src/interfaces/common/IMigratablesFactory.sol":{"keccak256":"0xe4f89bf0c693e99c3cdd599099c2ba65325056431e1c4165e5bef758daa7ffc7","urls":["bzz-raw://9fe9b100493ceaca9ab0b1a57a0ab3531597f91e31bb25b8916a7852eed3fe69","dweb:/ipfs/QmR6m2yuvZS7yKHQLZfz27yQE9kkGwmvPzUXYP4zVmF67y"],"license":"MIT"},"src/interfaces/common/IRegistry.sol":{"keccak256":"0x4951a99746d443bde448dcbbae1d6aa44cf6022c6669fd94a581df3b3e09511b","urls":["bzz-raw://9862ee3cf39eb5a7577019f7abe3070d10d897bb4cebac7d0afff3141e2cb74a","dweb:/ipfs/QmdsuRoDudiaTH4MGZiQjyWeCjyi71xeYZUKZcSPRFrdRu"],"license":"MIT"}},"version":1},"id":122} \ No newline at end of file diff --git a/ethexe/ethereum/abi/WrappedVara.json b/ethexe/ethereum/abi/WrappedVara.json index bbc49007d54..03ef3ed0a36 100644 --- a/ethexe/ethereum/abi/WrappedVara.json +++ b/ethexe/ethereum/abi/WrappedVara.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206125c65f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516124ff90816100c782396080518181816115ec01526116bb0152f35b6001600160401b0319166001600160401b039081175f5160206125c65f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1323:2191:166:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;7983:34:30;7979:146;;-1:-1:-1;1323:2191:166;;;;;;;;1052:13:60;1323:2191:166;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;8085:29:30;;1323:2191:166;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1323:2191:166;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1323:2191:166:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2357:1:29;1323:2191:166;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1323:2191:166;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;4771:20:31;1323:2191:166;;:::i;:::-;4771:20:31;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2286:15:33;;:26;2282:97;;7051:25:77;7105:8;1323:2191:166;;;;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;2420:78:33;1323:2191:166;2420:78:33;;1323:2191:166;1279:95:33;1323:2191:166;;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;;;;;;;;1279:95:33;;1323:2191:166;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;2420:78:33;;;1323:2191:166;2420:78:33;;:::i;:::-;1323:2191:166;2410:89:33;;3980:23:40;;:::i;:::-;3993:249:80;1323:2191:166;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1323:2191:166;;;3993:249:80;1323:2191:166;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;2623:15:33;;;2619:88;;10021:4:31;;;;;:::i;2619:88:33:-;2661:35;;;;;1323:2191:166;2661:35:33;1323:2191:166;;;;;;2661:35:33;2282:97;2335:33;;;;1323:2191:166;2335:33:33;1323:2191:166;;;;2335:33:33;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;4301:16:30;1323:2191:166;;4724:16:30;;:34;;;;1323:2191:166;4803:1:30;4788:16;:50;;;;1323:2191:166;4853:13:30;:30;;;;1323:2191:166;4849:91:30;;;1323:2191:166;4803:1:30;-1:-1:-1;;;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;1323:2191:166;;;:::i;:::-;1533:14;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;1323:2191:166;;:::i;:::-;6891:76:30;;;:::i;:::-;1323:2191:166;;;;;;;:::i;:::-;4803:1:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;1653:9:166;8832:5:31;;;:::i;:::-;5064:101:30;;1323:2191:166;5064:101:30;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5140:14:30;1323:2191:166;;;4803:1:30;1323:2191:166;;5140:14:30;1323:2191:166;8703:91:31;8751:32;;;1323:2191:166;8751:32:31;1323:2191:166;;;;;8751:32:31;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;4977:67:30;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;4849:91;6496:23;;;1323:2191:166;4906:23:30;1323:2191:166;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;4545:5:31;1323:2191:166;;:::i;:::-;;;966:10:34;;4545:5:31;:::i;:::-;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5647:18:40;:43;;;1323:2191:166;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;1323:2191:166;;;;5870:4:40;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;5647:43:40;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;5669:21:40;5647:43;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;1479:5:32;1323:2191:166;;:::i;:::-;;;966:10:34;1448:5:32;966:10:34;;1448:5:32;;:::i;:::-;1479;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;1323:2191:166;;3975:40:29;1323:2191:166;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;6429:44:30;;;;;1323:2191:166;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;1323:2191:166;;;;;;;:::i;:::-;1533:14;;:::i;:::-;6891:76:30;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;6959:1:30;;-1:-1:-1;;;;;1323:2191:166;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1323:2191:166;;:::i;:::-;6891:76:30;;:::i;:::-;1323:2191:166;;;;;;:::i;:::-;6591:4:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;6654:20:30;1323:2191:166;;;2486:1;1323:2191;;6654:20:30;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;6429:44:30;2486:1:166;1323:2191;;-1:-1:-1;;;;;1323:2191:166;6448:25:30;;6429:44;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;4824:6:60;-1:-1:-1;;;;;1323:2191:166;4815:4:60;4807:23;4803:145;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;4803:145:60;4578:29;;;1323:2191:166;4908:29:60;1323:2191:166;;4908:29:60;1323:2191:166;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;1323:2191:166;4392:4:60;4384:23;;;:120;;;;1323:2191:166;4367:251:60;;;2303:62:29;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;5865:52:60;;1323:2191:166;;5865:52:60;;;1323:2191:166;-1:-1:-1;5861:437:60;;1805:47:53;;;;1323:2191:166;6227:60:60;1323:2191:166;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;2407:36:53;-1:-1:-1;;2407:36:53;1323:2191:166;;2458:15:53;:11;;1323:2191:166;4065:25:66;;4107:55;4065:25;;;;;;1323:2191:166;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;1323:2191:166:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1323:2191:166;6159:70:53;6199:19;;;1323:2191:166;6199:19:53;1323:2191:166;;6199:19:53;1744:119;1805:47;;;1323:2191:166;1805:47:53;1323:2191:166;;;;1805:47:53;5955:120:60;6026:34;;;1323:2191:166;6026:34:60;1323:2191:166;;;;6026:34:60;5865:52;;;;1323:2191:166;5865:52:60;;1323:2191:166;5865:52:60;;;;;;1323:2191:166;5865:52:60;;;:::i;:::-;;;1323:2191:166;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;4462:42:60;;;-1:-1:-1;4384:120:60;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;1005:5:32;1323:2191:166;;966:10:34;1005:5:32;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;8832:5;1323:2191:166;;;8832:5:31;;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;3980:23:40;;:::i;:::-;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;3246:2;1323:2191;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;6102:5:31;1323:2191:166;;:::i;:::-;;;:::i;:::-;;;966:10:34;6066:5:31;966:10:34;;6066:5:31;;:::i;:::-;6102;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;10021:4:31;1323:2191:166;;:::i;:::-;;;966:10:34;;10021:4:31;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;:::o;:::-;-1:-1:-1;;;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;:::o;1533:14::-;1323:2191;;;;;;;:::i;:::-;1533:14;1323:2191;;-1:-1:-1;;;1533:14:166;;;;:::o;1323:2191::-;-1:-1:-1;;;;;1323:2191:166;;;;;4771:13:31;1323:2191:166;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1323:2191:166;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1323:2191:166;;3509:1:29;3534:31;11649:476:31;;;4771:20;;;:::i;:::-;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11814:36:31;;11810:309;;11649:476;;;;;:::o;11810:309::-;11870:24;;;11866:130;;-1:-1:-1;;;;;1323:2191:166;;11045:19:31;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;11139:90;;11238:20;;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11810:309:31;;;;;;11139:90;11187:31;;;-1:-1:-1;11187:31:31;-1:-1:-1;11187:31:31;1323:2191:166;;-1:-1:-1;11187:31:31;11041:89;11087:32;;;-1:-1:-1;11087:32:31;-1:-1:-1;11087:32:31;1323:2191:166;;-1:-1:-1;11087:32:31;11866:130;11921:60;;;;;;-1:-1:-1;11921:60:31;1323:2191:166;;;;;;11921:60:31;1323:2191:166;;;;;;-1:-1:-1;11921:60:31;6509:300;-1:-1:-1;;;;;1323:2191:166;;6592:18:31;;6588:86;;-1:-1:-1;;;;;1323:2191:166;;6687:16:31;;6683:86;;1323:2191:166;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;8262:25:31;1323:2191:166;;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;6608:1:31;1323:2191:166;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;;;;;;;;;;;8262:25:31;6509:300::o;7509:115::-;7559:50;;;;6608:1;7559:50;;1323:2191:166;;;;;;6608:1:31;7559:50;6588:86;6633:30;;;6608:1;6633:30;6608:1;6633:30;1323:2191:166;;6608:1:31;6633:30;2658:162:29;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1323:2191:166;;-1:-1:-1;2763:40:29;9163:206:31;;;;-1:-1:-1;;;;;1323:2191:166;9233:21:31;;9229:89;;1323:2191:166;9252:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;9252:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;;9252:1:31;1323:2191:166;;8262:25:31;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;8262:25:31;9163:206::o;7509:115::-;7559:50;;;;;9252:1;7559:50;;1323:2191:166;;;;;;9252:1:31;7559:50;10880:487;;-1:-1:-1;;;;;1323:2191:166;;;11045:19:31;;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;;11139:90;;11319:31;11238:20;;1323:2191:166;11238:20:31;;:::i;:::-;1323:2191:166;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;11319:31:31;10880:487::o;7124:1170::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;8262:25:31;;1323:2191:166;;7822:16:31;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;7818:429:31;1323:2191:166;;;;;8262:25:31;7124:1170::o;7818:429::-;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;7818:429:31;;1323:2191:166;;;;;1653:9;;;;;1323:2191;1653:9;4016:191:40;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1323:2191:166;;4107:92:40;;;;1323:2191:166;1959:95:40;1323:2191:166;;;1959:95:40;;1323:2191:166;1959:95:40;;;1323:2191:166;4170:13:40;1959:95;;;1323:2191:166;4193:4:40;1959:95;;;1323:2191:166;1959:95:40;4107:92;;;;;;:::i;:::-;1323:2191:166;4097:103:40;;4016:191;:::o;7082:141:30:-;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5203:1551:77;;;6283:66;6270:79;;6266:164;;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1323:2191:166;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6541:24::-;1323:2191:166;;;-1:-1:-1;1323:2191:166;;;;;6266:164:77;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1323:2191:166;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1323:2191:166;7462:38:77;;1323:2191:166;;7523:23:77;;;7375:20;7523:23;1323:2191:166;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1323:2191:166;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1323:2191:166;;;7375:20:77;7763:32;1323:2191:166;;;;7375:20:77;1323:2191:166;;;;;7375:20:77;1323:2191:166;6928:687:40;1323:2191:166;;:::i;:::-;;;;7100:22:40;;;;1323:2191:166;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1323:2191:166;;:::i;:::-;;;;8017:25:40;;;;1323:2191:166;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1323:2191:166;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1323:2191:166;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1323:2191:166;;;;4933:24:66;1323:2191:166;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":5612,"length":32},{"start":5819,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","eip712Domain()":"84b0196e","initialize(address)":"c4d66de8","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token. VARA is also used for paying fees, staking and governance on Vara Network, while WVARA does all of the same things but on Ethereum. On Ethereum network, WVARA is used as an executable balance for programs (Mirrors). Please note that this version of WrappedVara is only used in local development environments, in production we use this: - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"initialize(address)\":{\"details\":\"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.\",\"params\":{\"initialOwner\":\"The address that will be able to mint tokens.\"}},\"mint(address,uint256)\":{\"details\":\"Mints `amount` tokens to `to`.\",\"params\":{\"amount\":\"The amount of tokens to mint.\",\"to\":\"The address to mint tokens to.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0\",\"dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f\",\"dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739\",\"dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb\",\"dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"burn(uint256)":{"details":"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"initialize(address)":{"details":"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.","params":{"initialOwner":"The address that will be able to mint tokens."}},"mint(address,uint256)":{"details":"Mints `amount` tokens to `to`.","params":{"amount":"The amount of tokens to mint.","to":"The address to mint tokens to."}},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Returns the address of the current owner."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022","urls":["bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0","dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f","urls":["bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f","dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659","urls":["bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739","dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e","urls":["bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23","dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd","urls":["bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb","dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":82497,"exportedSymbols":{"ERC20BurnableUpgradeable":[43269],"ERC20PermitUpgradeable":[43438],"ERC20Upgradeable":[43207],"Initializable":[42590],"OwnableUpgradeable":[42322],"UUPSUpgradeable":[46243],"WrappedVara":[82496]},"nodeType":"SourceUnit","src":"74:3441:166","nodes":[{"id":82355,"nodeType":"PragmaDirective","src":"74:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82357,"nodeType":"ImportDirective","src":"100:101:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":82356,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82359,"nodeType":"ImportDirective","src":"202:96:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":42591,"symbolAliases":[{"foreign":{"id":82358,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42590,"src":"210:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82361,"nodeType":"ImportDirective","src":"299:102:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":43208,"symbolAliases":[{"foreign":{"id":82360,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43207,"src":"307:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82363,"nodeType":"ImportDirective","src":"402:135:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":43270,"symbolAliases":[{"foreign":{"id":82362,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43269,"src":"415:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82365,"nodeType":"ImportDirective","src":"538:131:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":43439,"symbolAliases":[{"foreign":{"id":82364,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43438,"src":"551:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82367,"nodeType":"ImportDirective","src":"670:88:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":82366,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"678:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82496,"nodeType":"ContractDefinition","src":"1323:2191:166","nodes":[{"id":82383,"nodeType":"VariableDeclaration","src":"1496:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1520:10:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82381,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":82382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1533:14:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":82386,"nodeType":"VariableDeclaration","src":"1553:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1577:12:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82384,"name":"string","nodeType":"ElementaryTypeName","src":"1553:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":82385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1592:7:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":82389,"nodeType":"VariableDeclaration","src":"1605:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1630:20:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":82388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1653:9:166","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":82397,"nodeType":"FunctionDefinition","src":"1737:53:166","nodes":[],"body":{"id":82396,"nodeType":"Block","src":"1751:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82393,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1761:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82395,"nodeType":"ExpressionStatement","src":"1761:22:166"}]},"documentation":{"id":82390,"nodeType":"StructuredDocumentation","src":"1669:63:166","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82391,"nodeType":"ParameterList","parameters":[],"src":"1748:2:166"},"returnParameters":{"id":82392,"nodeType":"ParameterList","parameters":[],"src":"1751:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82432,"nodeType":"FunctionDefinition","src":"2061:297:166","nodes":[],"body":{"id":82431,"nodeType":"Block","src":"2122:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82406,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2145:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82407,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82386,"src":"2157:12:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82405,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2132:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82409,"nodeType":"ExpressionStatement","src":"2132:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82410,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2180:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2180:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82412,"nodeType":"ExpressionStatement","src":"2180:22:166"},{"expression":{"arguments":[{"id":82414,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82400,"src":"2227:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82413,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2212:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:28:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82416,"nodeType":"ExpressionStatement","src":"2212:28:166"},{"expression":{"arguments":[{"id":82418,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2269:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82417,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2250:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82420,"nodeType":"ExpressionStatement","src":"2250:30:166"},{"expression":{"arguments":[{"id":82422,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82400,"src":"2297:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82423,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82389,"src":"2311:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:2:166","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":82425,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[82479],"referencedDeclaration":82479,"src":"2340:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":82426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2334:16:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2311:39:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82421,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"2291:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:60:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82430,"nodeType":"ExpressionStatement","src":"2291:60:166"}]},"documentation":{"id":82398,"nodeType":"StructuredDocumentation","src":"1796:260:166","text":" @dev Initializes the WrappedVara contract with the token name and symbol.\n @param initialOwner The address that will be able to mint tokens.\n @dev The initialOwner receives the 1 million WVARA tokens minted during initialization."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":82403,"kind":"modifierInvocation","modifierName":{"id":82402,"name":"initializer","nameLocations":["2110:11:166"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"2110:11:166"},"nodeType":"ModifierInvocation","src":"2110:11:166"}],"name":"initialize","nameLocation":"2070:10:166","parameters":{"id":82401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82400,"mutability":"mutable","name":"initialOwner","nameLocation":"2089:12:166","nodeType":"VariableDeclaration","scope":82432,"src":"2081:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82399,"name":"address","nodeType":"ElementaryTypeName","src":"2081:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2080:22:166"},"returnParameters":{"id":82404,"nodeType":"ParameterList","parameters":[],"src":"2122:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82459,"nodeType":"FunctionDefinition","src":"2431:218:166","nodes":[],"body":{"id":82458,"nodeType":"Block","src":"2489:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82442,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2512:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82443,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82386,"src":"2524:12:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82441,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2499:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82445,"nodeType":"ExpressionStatement","src":"2499:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82446,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2547:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82448,"nodeType":"ExpressionStatement","src":"2547:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82450,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"2594:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2594:7:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82449,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2579:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:23:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82453,"nodeType":"ExpressionStatement","src":"2579:23:166"},{"expression":{"arguments":[{"id":82455,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2631:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82454,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2612:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2612:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82457,"nodeType":"ExpressionStatement","src":"2612:30:166"}]},"documentation":{"id":82433,"nodeType":"StructuredDocumentation","src":"2364:62:166","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82436,"kind":"modifierInvocation","modifierName":{"id":82435,"name":"onlyOwner","nameLocations":["2462:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2462:9:166"},"nodeType":"ModifierInvocation","src":"2462:9:166"},{"arguments":[{"hexValue":"32","id":82438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2486:1:166","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":82439,"kind":"modifierInvocation","modifierName":{"id":82437,"name":"reinitializer","nameLocations":["2472:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"2472:13:166"},"nodeType":"ModifierInvocation","src":"2472:16:166"}],"name":"reinitialize","nameLocation":"2440:12:166","parameters":{"id":82434,"nodeType":"ParameterList","parameters":[],"src":"2452:2:166"},"returnParameters":{"id":82440,"nodeType":"ParameterList","parameters":[],"src":"2489:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82469,"nodeType":"FunctionDefinition","src":"2814:84:166","nodes":[],"body":{"id":82468,"nodeType":"Block","src":"2896:2:166","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":82460,"nodeType":"StructuredDocumentation","src":"2655:154:166","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":82466,"kind":"modifierInvocation","modifierName":{"id":82465,"name":"onlyOwner","nameLocations":["2886:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2886:9:166"},"nodeType":"ModifierInvocation","src":"2886:9:166"}],"name":"_authorizeUpgrade","nameLocation":"2823:17:166","overrides":{"id":82464,"nodeType":"OverrideSpecifier","overrides":[],"src":"2877:8:166"},"parameters":{"id":82463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82462,"mutability":"mutable","name":"newImplementation","nameLocation":"2849:17:166","nodeType":"VariableDeclaration","scope":82469,"src":"2841:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82461,"name":"address","nodeType":"ElementaryTypeName","src":"2841:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2840:27:166"},"returnParameters":{"id":82467,"nodeType":"ParameterList","parameters":[],"src":"2896:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82479,"nodeType":"FunctionDefinition","src":"3172:83:166","nodes":[],"body":{"id":82478,"nodeType":"Block","src":"3229:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":82476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:2:166","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":82475,"id":82477,"nodeType":"Return","src":"3239:9:166"}]},"baseFunctions":[42727],"documentation":{"id":82470,"nodeType":"StructuredDocumentation","src":"2904:263:166","text":" @dev Returns the number of decimals used to get its user representation.\n Also see documentation about decimals:\n - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3181:8:166","overrides":{"id":82472,"nodeType":"OverrideSpecifier","overrides":[],"src":"3204:8:166"},"parameters":{"id":82471,"nodeType":"ParameterList","parameters":[],"src":"3189:2:166"},"returnParameters":{"id":82475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82479,"src":"3222:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82473,"name":"uint8","nodeType":"ElementaryTypeName","src":"3222:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3221:7:166"},"scope":82496,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82495,"nodeType":"FunctionDefinition","src":"3419:93:166","nodes":[],"body":{"id":82494,"nodeType":"Block","src":"3478:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82490,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82482,"src":"3494:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82491,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82484,"src":"3498:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82489,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"3488:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3488:17:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82493,"nodeType":"ExpressionStatement","src":"3488:17:166"}]},"documentation":{"id":82480,"nodeType":"StructuredDocumentation","src":"3261:153:166","text":" @dev Mints `amount` tokens to `to`.\n @param to The address to mint tokens to.\n @param amount The amount of tokens to mint."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":82487,"kind":"modifierInvocation","modifierName":{"id":82486,"name":"onlyOwner","nameLocations":["3468:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"3468:9:166"},"nodeType":"ModifierInvocation","src":"3468:9:166"}],"name":"mint","nameLocation":"3428:4:166","parameters":{"id":82485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82482,"mutability":"mutable","name":"to","nameLocation":"3441:2:166","nodeType":"VariableDeclaration","scope":82495,"src":"3433:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82481,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82484,"mutability":"mutable","name":"amount","nameLocation":"3453:6:166","nodeType":"VariableDeclaration","scope":82495,"src":"3445:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82483,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3432:28:166"},"returnParameters":{"id":82488,"nodeType":"ParameterList","parameters":[],"src":"3478:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":82369,"name":"Initializable","nameLocations":["1351:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42590,"src":"1351:13:166"},"id":82370,"nodeType":"InheritanceSpecifier","src":"1351:13:166"},{"baseName":{"id":82371,"name":"ERC20Upgradeable","nameLocations":["1370:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":43207,"src":"1370:16:166"},"id":82372,"nodeType":"InheritanceSpecifier","src":"1370:16:166"},{"baseName":{"id":82373,"name":"ERC20BurnableUpgradeable","nameLocations":["1392:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":43269,"src":"1392:24:166"},"id":82374,"nodeType":"InheritanceSpecifier","src":"1392:24:166"},{"baseName":{"id":82375,"name":"OwnableUpgradeable","nameLocations":["1422:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1422:18:166"},"id":82376,"nodeType":"InheritanceSpecifier","src":"1422:18:166"},{"baseName":{"id":82377,"name":"ERC20PermitUpgradeable","nameLocations":["1446:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":43438,"src":"1446:22:166"},"id":82378,"nodeType":"InheritanceSpecifier","src":"1446:22:166"},{"baseName":{"id":82379,"name":"UUPSUpgradeable","nameLocations":["1474:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1474:15:166"},"id":82380,"nodeType":"InheritanceSpecifier","src":"1474:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":82368,"nodeType":"StructuredDocumentation","src":"760:562:166","text":" @dev Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token.\n VARA is also used for paying fees, staking and governance on Vara Network,\n while WVARA does all of the same things but on Ethereum.\n On Ethereum network, WVARA is used as an executable balance for programs (Mirrors).\n Please note that this version of WrappedVara is only used in local development environments,\n in production we use this:\n - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol"},"fullyImplemented":true,"linearizedBaseContracts":[82496,46243,44833,43438,43698,44416,44823,46898,42322,43269,43207,44875,46862,46836,43484,42590],"name":"WrappedVara","nameLocation":"1332:11:166","scope":82497,"usedErrors":[42158,42163,42339,42342,43304,43311,43601,44845,44850,44855,44864,44869,44874,45427,45440,46100,46105,47372,48774,50701,50706,50711],"usedEvents":[42169,42347,44781,44803,46770,46779]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":166} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206124415f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161237a90816100c7823960805181818161153d01526116170152f35b6001600160401b0319166001600160401b039081175f5160206124415f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146118b1578063095ea7b31461188b57806318160ddd1461186257806323b872dd1461182a578063313ce5671461180f5780633644e515146117ed57806340c10f19146117b057806342966c68146117935780634f1ef2861461159157806352d1902d1461152b5780636c2eb35014610e3857806370a0823114610df4578063715018a614610d8d57806379cc679014610d5d5780637ecebe0014610d0757806384b0196e14610c515780638da5cb5b14610c1d57806395d89b4114610b27578063a9059cbb14610af6578063ad3cb1cc14610aab578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611992565b610145611e1e565b611c18565b005b5f80fd5b3461014c57604036600319011261014c57610169611992565b61017a6101746119a8565b91611be0565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611992565b6101b86119a8565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e0826119be565b51902061028461202c565b906040519161190160f01b83526002830152602282015260c43591604260a43592206120cc565b90929192612159565b6001600160a01b03168481036102cf575061014a9350611f07565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611992565b5f51602061235a5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610aa3575b6001149081610a99575b159081610a90575b50610a81578160016001600160401b03195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610a4c575b61038d611b93565b91610396611bbd565b9161039f6120a1565b6103a76120a1565b83516001600160401b038111610738576103ce5f51602061225a5f395f51905f52546119df565b601f81116109d2575b50602094601f8211600114610957579481929394955f9261094c575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b82516001600160401b0381116107385761043b5f5160206122ba5f395f51905f52546119df565b601f81116108d2575b506020601f821160011461085757819293945f9261084c575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b6104866120a1565b61048e6120a1565b6104966120a1565b61049f81611c18565b6104a7611b93565b916104b06120a1565b604051916104bf6040846119be565b60018352603160f81b60208401526104d56120a1565b83516001600160401b038111610738576104fc5f51602061229a5f395f51905f52546119df565b601f81116107d2575b50602094601f8211600114610757579481929394955f9261074c575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b82516001600160401b038111610738576105695f51602061231a5f395f51905f52546119df565b601f81116106be575b506020601f821160011461064357819293945f92610638575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b6001600160a01b0381161561062557670de0b6b3a76400006105cd91611f6a565b6105d357005b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061231a5f395f51905f525f52805f20915f5b8181106106a65750958360019596971061068e575b505050811b015f51602061231a5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610674565b9192602060018192868b01518155019401920161065f565b81811115610572575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610730575b81601f9101920160051c03905f5b828110610723575050610572565b5f82820155600101610715565b5f9150610707565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f51602061229a5f395f51905f525f52805f20915f5b8881106107ba575083600195969798106107a2575b505050811b015f51602061229a5f395f51905f5255610542565b01515f1960f88460031b161c19169055858080610788565b91926020600181928685015181550194019201610773565b81811115610505575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610844575b81601f9101920160051c03905f5b828110610837575050610505565b5f82820155600101610829565b5f915061081b565b01519050848061045d565b601f198216905f5160206122ba5f395f51905f525f52805f20915f5b8181106108ba575095836001959697106108a2575b505050811b015f5160206122ba5f395f51905f525561047e565b01515f1960f88460031b161c19169055848080610888565b9192602060018192868b015181550194019201610873565b81811115610444575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610944575b81601f9101920160051c03905f5b828110610937575050610444565b5f82820155600101610929565b5f915061091b565b0151905085806103f3565b601f198216955f51602061225a5f395f51905f525f52805f20915f5b8881106109ba575083600195969798106109a2575b505050811b015f51602061225a5f395f51905f5255610414565b01515f1960f88460031b161c19169055858080610988565b91926020600181928685015181550194019201610973565b818111156103d7575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a44575b81601f9101920160051c03905f5b828110610a375750506103d7565b5f82820155600101610a29565b5f9150610a1b565b6801000000000000000060ff60401b195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610af2604051610acc6040826119be565b60058152640352e302e360dc1b602082015260405191829160208352602083019061196e565b0390f35b3461014c57604036600319011261014c57610b1c610b12611992565b6024359033611d4d565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206122ba5f395f51905f5254610b53816119df565b8084529060018116908115610bf95750600114610b8f575b610af283610b7b818503826119be565b60405191829160208352602083019061196e565b5f5160206122ba5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bdf57509091508101602001610b7b610b6b565b919260018160209254838588010152019101909291610bc7565b60ff191660208086019190915291151560051b84019091019150610b7b9050610b6b565b3461014c575f36600319011261014c575f5160206122da5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c57610cab610c6c611a17565b610c74611ae6565b6020610cb960405192610c8783856119be565b5f84525f368137604051958695600f60f81b875260e08588015260e087019061196e565b90858203604087015261196e565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610cf057505050500390f35b835185528695509381019392810192600101610ce1565b3461014c57602036600319011261014c57610d20611992565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610d79611992565b60243590610d88823383611c89565b611e51565b3461014c575f36600319011261014c57610da5611e1e565b5f5160206122da5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610e15611992565b165f525f51602061227a5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610e50611e1e565b5f51602061235a5f395f51905f525460ff8160401c16908115611516575b50610a81575f51602061235a5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610ea4611b93565b610eac611bbd565b610eb46120a1565b610ebc6120a1565b81516001600160401b03811161073857610ee35f51602061225a5f395f51905f52546119df565b601f811161149c575b50602092601f821160011461142357928192935f92611418575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b80516001600160401b03811161073857610f4e5f5160206122ba5f395f51905f52546119df565b601f811161139e575b50602091601f8211600114611326579181925f9261131b575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b610f996120a1565b5f5160206122da5f395f51905f5254610fc5906001600160a01b0316610fbd6120a1565b6101456120a1565b610fcd611b93565b610fd56120a1565b604051610fe36040826119be565b60018152603160f81b6020820152610ff96120a1565b81516001600160401b038111610738576110205f51602061229a5f395f51905f52546119df565b601f81116112a1575b50602092601f821160011461122857928192935f9261121d575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b80516001600160401b0381116107385761108b5f51602061231a5f395f51905f52546119df565b601f81116111a3575b50602091601f821160011461112b579181925f92611120575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b0151905082806110ad565b601f198216925f51602061231a5f395f51905f525f52805f20915f5b85811061118b57508360019510611173575b505050811b015f51602061231a5f395f51905f52556110ce565b01515f1960f88460031b161c19169055828080611159565b91926020600181928685015181550194019201611147565b81811115611094575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410611215575b81601f9101920160051c03905f5b828110611208575050611094565b5f828201556001016111fa565b5f91506111ec565b015190508380611043565b601f198216935f51602061229a5f395f51905f525f52805f20915f5b8681106112895750836001959610611271575b505050811b015f51602061229a5f395f51905f5255611064565b01515f1960f88460031b161c19169055838080611257565b91926020600181928685015181550194019201611244565b81811115611029575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410611313575b81601f9101920160051c03905f5b828110611306575050611029565b5f828201556001016112f8565b5f91506112ea565b015190508280610f70565b601f198216925f5160206122ba5f395f51905f525f52805f20915f5b8581106113865750836001951061136e575b505050811b015f5160206122ba5f395f51905f5255610f91565b01515f1960f88460031b161c19169055828080611354565b91926020600181928685015181550194019201611342565b81811115610f57575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410611410575b81601f9101920160051c03905f5b828110611403575050610f57565b5f828201556001016113f5565b5f91506113e7565b015190508380610f06565b601f198216935f51602061225a5f395f51905f525f52805f20915f5b868110611484575083600195961061146c575b505050811b015f51602061225a5f395f51905f5255610f27565b01515f1960f88460031b161c19169055838080611452565b9192602060018192868501518155019401920161143f565b81811115610eec575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab06020841061150e575b81601f9101920160051c03905f5b828110611501575050610eec565b5f828201556001016114f3565b5f91506114e5565b600291506001600160401b0316101581610e6e565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036115825760206040515f51602061233a5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c576115a5611992565b602435906001600160401b03821161014c573660238301121561014c5781600401356001600160401b03811161073857604051926115ed601f8301601f1916602001856119be565b818452366024838301011161014c57815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611771575b506115825761164f611e1e565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f918161173d575b506116915783634c9c8ce360e01b5f5260045260245ffd5b805f51602061233a5f395f51905f5285920361172b5750823b15611719575f51602061233a5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156117015761014a916121cd565b50503461170a57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611769575b81611759602093836119be565b8101031261014c57519085611679565b3d915061174c565b5f51602061233a5f395f51905f52546001600160a01b03161415905083611642565b3461014c57602036600319011261014c5761014a60043533611e51565b3461014c57604036600319011261014c576117c9611992565b6117d1611e1e565b6001600160a01b038116156106255761014a9060243590611f6a565b3461014c575f36600319011261014c57602061180761202c565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b1c611846611992565b61184e6119a8565b6044359161185d833383611c89565b611d4d565b3461014c575f36600319011261014c5760205f5160206122fa5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b1c6118a7611992565b6024359033611f07565b3461014c575f36600319011261014c576040515f5f51602061225a5f395f51905f52546118dd816119df565b8084529060018116908115610bf9575060011461190457610af283610b7b818503826119be565b5f51602061225a5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b80821061195457509091508101602001610b7b610b6b565b91926001816020925483858801015201910190929161193c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761073857604052565b90600182811c92168015611a0d575b60208310146119f957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916119ee565b604051905f825f51602061229a5f395f51905f525491611a36836119df565b8083529260018116908115611ac75750600114611a5c575b611a5a925003836119be565b565b505f51602061229a5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611aab575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611a93565b60209250611a5a94915060ff191682840152151560051b820101611a4e565b604051905f825f51602061231a5f395f51905f525491611b05836119df565b8083529260018116908115611ac75750600114611b2857611a5a925003836119be565b505f51602061231a5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b77575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611b5f565b60405190611ba26040836119be565b600c82526b57726170706564205661726160a01b6020830152565b60405190611bcc6040836119be565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611c76575f5160206122da5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611c9483611be0565b60018060a01b0382165f5260205260405f2054925f198410611cb7575b50505050565b828410611d2a576001600160a01b03811615611d17576001600160a01b03821615611d0457611ce590611be0565b9060018060a01b03165f5260205260405f20910390555f808080611cb1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611e0b576001600160a01b031691821561062557815f525f51602061227a5f395f51905f5260205260405f2054818110611df257817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f51602061227a5f395f51905f5284520360405f2055845f525f51602061227a5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f5160206122da5f395f51905f52546001600160a01b03163303611e3e57565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611e0b57805f525f51602061227a5f395f51905f5260205260405f2054838110611eed576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f51602061227a5f395f51905f528452036040862055805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611d17576001600160a01b0316928315611d04577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591611f56602092611be0565b855f5282528060405f2055604051908152a3565b5f5160206122fa5f395f51905f525490828201809211612018575f5160206122fa5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060209084611ff657805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f52555b604051908152a3565b8484525f51602061227a5f395f51905f52825260408420818154019055611fed565b634e487b7160e01b5f52601160045260245ffd5b612034611a17565b60208151910120612043611ae6565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261209b60c0826119be565b51902090565b60ff5f51602061235a5f395f51905f525460401c16156120bd57565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161214e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612143575f516001600160a01b0381161561213957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156121b9578061216b575050565b600181036121825763f645eedf60e01b5f5260045ffd5b6002810361219d575063fce698f760e01b5f5260045260245ffd5b6003146121a75750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b905f8091602081519101845af48080612246575b156122015750506040513d81523d5f602083013e60203d82010160405290565b1561222657639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15612237576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806121e15750813b15156121e156fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1363:2191:165:-:0;;;;;;;1084:4:19;1076:13;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;7894:76:18;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;7983:34:18;7979:146;;-1:-1:-1;1363:2191:165;;;;;;;;1076:13:19;1363:2191:165;;;;;;;;;;;7979:146:18;-1:-1:-1;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;8085:29:18;;1363:2191:165;;8085:29:18;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:18;;-1:-1:-1;7936:23:18;1363:2191:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146118b1578063095ea7b31461188b57806318160ddd1461186257806323b872dd1461182a578063313ce5671461180f5780633644e515146117ed57806340c10f19146117b057806342966c68146117935780634f1ef2861461159157806352d1902d1461152b5780636c2eb35014610e3857806370a0823114610df4578063715018a614610d8d57806379cc679014610d5d5780637ecebe0014610d0757806384b0196e14610c515780638da5cb5b14610c1d57806395d89b4114610b27578063a9059cbb14610af6578063ad3cb1cc14610aab578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611992565b610145611e1e565b611c18565b005b5f80fd5b3461014c57604036600319011261014c57610169611992565b61017a6101746119a8565b91611be0565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611992565b6101b86119a8565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e0826119be565b51902061028461202c565b906040519161190160f01b83526002830152602282015260c43591604260a43592206120cc565b90929192612159565b6001600160a01b03168481036102cf575061014a9350611f07565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611992565b5f51602061235a5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610aa3575b6001149081610a99575b159081610a90575b50610a81578160016001600160401b03195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610a4c575b61038d611b93565b91610396611bbd565b9161039f6120a1565b6103a76120a1565b83516001600160401b038111610738576103ce5f51602061225a5f395f51905f52546119df565b601f81116109d2575b50602094601f8211600114610957579481929394955f9261094c575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b82516001600160401b0381116107385761043b5f5160206122ba5f395f51905f52546119df565b601f81116108d2575b506020601f821160011461085757819293945f9261084c575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b6104866120a1565b61048e6120a1565b6104966120a1565b61049f81611c18565b6104a7611b93565b916104b06120a1565b604051916104bf6040846119be565b60018352603160f81b60208401526104d56120a1565b83516001600160401b038111610738576104fc5f51602061229a5f395f51905f52546119df565b601f81116107d2575b50602094601f8211600114610757579481929394955f9261074c575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b82516001600160401b038111610738576105695f51602061231a5f395f51905f52546119df565b601f81116106be575b506020601f821160011461064357819293945f92610638575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b6001600160a01b0381161561062557670de0b6b3a76400006105cd91611f6a565b6105d357005b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061231a5f395f51905f525f52805f20915f5b8181106106a65750958360019596971061068e575b505050811b015f51602061231a5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610674565b9192602060018192868b01518155019401920161065f565b81811115610572575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610730575b81601f9101920160051c03905f5b828110610723575050610572565b5f82820155600101610715565b5f9150610707565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f51602061229a5f395f51905f525f52805f20915f5b8881106107ba575083600195969798106107a2575b505050811b015f51602061229a5f395f51905f5255610542565b01515f1960f88460031b161c19169055858080610788565b91926020600181928685015181550194019201610773565b81811115610505575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610844575b81601f9101920160051c03905f5b828110610837575050610505565b5f82820155600101610829565b5f915061081b565b01519050848061045d565b601f198216905f5160206122ba5f395f51905f525f52805f20915f5b8181106108ba575095836001959697106108a2575b505050811b015f5160206122ba5f395f51905f525561047e565b01515f1960f88460031b161c19169055848080610888565b9192602060018192868b015181550194019201610873565b81811115610444575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610944575b81601f9101920160051c03905f5b828110610937575050610444565b5f82820155600101610929565b5f915061091b565b0151905085806103f3565b601f198216955f51602061225a5f395f51905f525f52805f20915f5b8881106109ba575083600195969798106109a2575b505050811b015f51602061225a5f395f51905f5255610414565b01515f1960f88460031b161c19169055858080610988565b91926020600181928685015181550194019201610973565b818111156103d7575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a44575b81601f9101920160051c03905f5b828110610a375750506103d7565b5f82820155600101610a29565b5f9150610a1b565b6801000000000000000060ff60401b195f51602061235a5f395f51905f525416175f51602061235a5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610af2604051610acc6040826119be565b60058152640352e302e360dc1b602082015260405191829160208352602083019061196e565b0390f35b3461014c57604036600319011261014c57610b1c610b12611992565b6024359033611d4d565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206122ba5f395f51905f5254610b53816119df565b8084529060018116908115610bf95750600114610b8f575b610af283610b7b818503826119be565b60405191829160208352602083019061196e565b5f5160206122ba5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610bdf57509091508101602001610b7b610b6b565b919260018160209254838588010152019101909291610bc7565b60ff191660208086019190915291151560051b84019091019150610b7b9050610b6b565b3461014c575f36600319011261014c575f5160206122da5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c57610cab610c6c611a17565b610c74611ae6565b6020610cb960405192610c8783856119be565b5f84525f368137604051958695600f60f81b875260e08588015260e087019061196e565b90858203604087015261196e565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610cf057505050500390f35b835185528695509381019392810192600101610ce1565b3461014c57602036600319011261014c57610d20611992565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610d79611992565b60243590610d88823383611c89565b611e51565b3461014c575f36600319011261014c57610da5611e1e565b5f5160206122da5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610e15611992565b165f525f51602061227a5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610e50611e1e565b5f51602061235a5f395f51905f525460ff8160401c16908115611516575b50610a81575f51602061235a5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610ea4611b93565b610eac611bbd565b610eb46120a1565b610ebc6120a1565b81516001600160401b03811161073857610ee35f51602061225a5f395f51905f52546119df565b601f811161149c575b50602092601f821160011461142357928192935f92611418575b50508160011b915f199060031b1c1916175f51602061225a5f395f51905f52555b80516001600160401b03811161073857610f4e5f5160206122ba5f395f51905f52546119df565b601f811161139e575b50602091601f8211600114611326579181925f9261131b575b50508160011b915f199060031b1c1916175f5160206122ba5f395f51905f52555b610f996120a1565b5f5160206122da5f395f51905f5254610fc5906001600160a01b0316610fbd6120a1565b6101456120a1565b610fcd611b93565b610fd56120a1565b604051610fe36040826119be565b60018152603160f81b6020820152610ff96120a1565b81516001600160401b038111610738576110205f51602061229a5f395f51905f52546119df565b601f81116112a1575b50602092601f821160011461122857928192935f9261121d575b50508160011b915f199060031b1c1916175f51602061229a5f395f51905f52555b80516001600160401b0381116107385761108b5f51602061231a5f395f51905f52546119df565b601f81116111a3575b50602091601f821160011461112b579181925f92611120575b50508160011b915f199060031b1c1916175f51602061231a5f395f51905f52555b60ff60401b195f51602061235a5f395f51905f5254165f51602061235a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b0151905082806110ad565b601f198216925f51602061231a5f395f51905f525f52805f20915f5b85811061118b57508360019510611173575b505050811b015f51602061231a5f395f51905f52556110ce565b01515f1960f88460031b161c19169055828080611159565b91926020600181928685015181550194019201611147565b81811115611094575f51602061231a5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410611215575b81601f9101920160051c03905f5b828110611208575050611094565b5f828201556001016111fa565b5f91506111ec565b015190508380611043565b601f198216935f51602061229a5f395f51905f525f52805f20915f5b8681106112895750836001959610611271575b505050811b015f51602061229a5f395f51905f5255611064565b01515f1960f88460031b161c19169055838080611257565b91926020600181928685015181550194019201611244565b81811115611029575f51602061229a5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410611313575b81601f9101920160051c03905f5b828110611306575050611029565b5f828201556001016112f8565b5f91506112ea565b015190508280610f70565b601f198216925f5160206122ba5f395f51905f525f52805f20915f5b8581106113865750836001951061136e575b505050811b015f5160206122ba5f395f51905f5255610f91565b01515f1960f88460031b161c19169055828080611354565b91926020600181928685015181550194019201611342565b81811115610f57575f5160206122ba5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410611410575b81601f9101920160051c03905f5b828110611403575050610f57565b5f828201556001016113f5565b5f91506113e7565b015190508380610f06565b601f198216935f51602061225a5f395f51905f525f52805f20915f5b868110611484575083600195961061146c575b505050811b015f51602061225a5f395f51905f5255610f27565b01515f1960f88460031b161c19169055838080611452565b9192602060018192868501518155019401920161143f565b81811115610eec575f51602061225a5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab06020841061150e575b81601f9101920160051c03905f5b828110611501575050610eec565b5f828201556001016114f3565b5f91506114e5565b600291506001600160401b0316101581610e6e565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036115825760206040515f51602061233a5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c576115a5611992565b602435906001600160401b03821161014c573660238301121561014c5781600401356001600160401b03811161073857604051926115ed601f8301601f1916602001856119be565b818452366024838301011161014c57815f9260246020930183870137840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611771575b506115825761164f611e1e565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f918161173d575b506116915783634c9c8ce360e01b5f5260045260245ffd5b805f51602061233a5f395f51905f5285920361172b5750823b15611719575f51602061233a5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28051156117015761014a916121cd565b50503461170a57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611769575b81611759602093836119be565b8101031261014c57519085611679565b3d915061174c565b5f51602061233a5f395f51905f52546001600160a01b03161415905083611642565b3461014c57602036600319011261014c5761014a60043533611e51565b3461014c57604036600319011261014c576117c9611992565b6117d1611e1e565b6001600160a01b038116156106255761014a9060243590611f6a565b3461014c575f36600319011261014c57602061180761202c565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b1c611846611992565b61184e6119a8565b6044359161185d833383611c89565b611d4d565b3461014c575f36600319011261014c5760205f5160206122fa5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b1c6118a7611992565b6024359033611f07565b3461014c575f36600319011261014c576040515f5f51602061225a5f395f51905f52546118dd816119df565b8084529060018116908115610bf9575060011461190457610af283610b7b818503826119be565b5f51602061225a5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b80821061195457509091508101602001610b7b610b6b565b91926001816020925483858801015201910190929161193c565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761073857604052565b90600182811c92168015611a0d575b60208310146119f957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916119ee565b604051905f825f51602061229a5f395f51905f525491611a36836119df565b8083529260018116908115611ac75750600114611a5c575b611a5a925003836119be565b565b505f51602061229a5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611aab575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611a93565b60209250611a5a94915060ff191682840152151560051b820101611a4e565b604051905f825f51602061231a5f395f51905f525491611b05836119df565b8083529260018116908115611ac75750600114611b2857611a5a925003836119be565b505f51602061231a5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611b77575050906020611a5a92820101611a4e565b6020919350806001915483858901015201910190918492611b5f565b60405190611ba26040836119be565b600c82526b57726170706564205661726160a01b6020830152565b60405190611bcc6040836119be565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611c76575f5160206122da5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611c9483611be0565b60018060a01b0382165f5260205260405f2054925f198410611cb7575b50505050565b828410611d2a576001600160a01b03811615611d17576001600160a01b03821615611d0457611ce590611be0565b9060018060a01b03165f5260205260405f20910390555f808080611cb1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611e0b576001600160a01b031691821561062557815f525f51602061227a5f395f51905f5260205260405f2054818110611df257817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f51602061227a5f395f51905f5284520360405f2055845f525f51602061227a5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f5160206122da5f395f51905f52546001600160a01b03163303611e3e57565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611e0b57805f525f51602061227a5f395f51905f5260205260405f2054838110611eed576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f51602061227a5f395f51905f528452036040862055805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611d17576001600160a01b0316928315611d04577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591611f56602092611be0565b855f5282528060405f2055604051908152a3565b5f5160206122fa5f395f51905f525490828201809211612018575f5160206122fa5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060209084611ff657805f5160206122fa5f395f51905f5254035f5160206122fa5f395f51905f52555b604051908152a3565b8484525f51602061227a5f395f51905f52825260408420818154019055611fed565b634e487b7160e01b5f52601160045260245ffd5b612034611a17565b60208151910120612043611ae6565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261209b60c0826119be565b51902090565b60ff5f51602061235a5f395f51905f525460401c16156120bd57565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161214e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612143575f516001600160a01b0381161561213957905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156121b9578061216b575050565b600181036121825763f645eedf60e01b5f5260045ffd5b6002810361219d575063fce698f760e01b5f5260045260245ffd5b6003146121a75750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b905f8091602081519101845af48080612246575b156122015750506040513d81523d5f602083013e60203d82010160405290565b1561222657639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15612237576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806121e15750813b15156121e156fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1363:2191:165:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;2378:1:52;1363:2191:165;;:::i;:::-;2324:62:52;;:::i;:::-;2378:1;:::i;:::-;1363:2191:165;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;4789:20:54;1363:2191:165;;:::i;:::-;4789:20:54;;:::i;:::-;:29;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2301:15:56;;:26;2297:97;;8977:25:40;9031:8;1363:2191:165;;;;;;;;;;;;993:64:59;1363:2191:165;;;;;;;;;;;;;;;;2435:78:56;1363:2191:165;2435:78:56;;1363:2191:165;1294:95:56;1363:2191:165;;1294:95:56;1363:2191:165;1294:95:56;;1363:2191:165;;;;;;;;;1294:95:56;;1363:2191:165;1294:95:56;1363:2191:165;1294:95:56;;1363:2191:165;;1294:95:56;;1363:2191:165;;1294:95:56;;1363:2191:165;;2435:78:56;;;1363:2191:165;2435:78:56;;:::i;:::-;1363:2191:165;2425:89:56;;3785:23:61;;:::i;:::-;4037:249:43;1363:2191:165;4037:249:43;;-1:-1:-1;;;4037:249:43;;;;;;;;;;1363:2191:165;;;4037:249:43;1363:2191:165;;4037:249:43;;8977:25:40;:::i;:::-;9031:8;;;;;:::i;:::-;-1:-1:-1;;;;;1363:2191:165;2638:15:56;;;2634:88;;10039:4:54;;;;;:::i;2634:88:56:-;2676:35;;;;;1363:2191:165;2676:35:56;1363:2191:165;;;;;;2676:35:56;2297:97;2350:33;;;;1363:2191:165;2350:33:56;1363:2191:165;;;;2350:33:56;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;4301:16:18;1363:2191:165;;4724:16:18;;:34;;;;1363:2191:165;4803:1:18;4788:16;:50;;;;1363:2191:165;4853:13:18;:30;;;;1363:2191:165;4849:91:18;;;1363:2191:165;4803:1:18;-1:-1:-1;;;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;4977:67:18;;1363:2191:165;;;:::i;:::-;1573:14;;;:::i;:::-;6891:76:18;;;:::i;:::-;;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;6891:76:18;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;1363:2191:165;;:::i;:::-;6891:76:18;;;:::i;:::-;1363:2191:165;;;;;;;:::i;:::-;4803:1:18;1363:2191:165;;-1:-1:-1;;;1363:2191:165;;;;6891:76:18;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;8725:21:54;8721:91;;1693:9:165;8850:5:54;;;:::i;:::-;5064:101:18;;1363:2191:165;5064:101:18;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;5140:14:18;1363:2191:165;;;4803:1:18;1363:2191:165;;5140:14:18;1363:2191:165;8721:91:54;8769:32;;;1363:2191:165;8769:32:54;1363:2191:165;;;;;8769:32:54;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;4977:67:18;1363:2191:165;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;4977:67:18;;4849:91;6496:23;;;1363:2191:165;4906:23:18;1363:2191:165;;4906:23:18;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:18;;4724:34;;;-1:-1:-1;4724:34:18;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1363:2191:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;4563:5:54;1363:2191:165;;:::i;:::-;;;987:10:57;;4563:5:54;:::i;:::-;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;-1:-1:-1;;1363:2191:165;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5294:13:61;1363:2191:165;;;;5329:4:61;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;;;;;;;993:64:59;1363:2191:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;1494:5:55;1363:2191:165;;:::i;:::-;;;987:10:57;1463:5:55;987:10:57;;1463:5:55;;:::i;:::-;1494;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;;;-1:-1:-1;;;;;1363:2191:165;3996:40:52;1363:2191:165;;3996:40:52;1363:2191:165;;;;;;;-1:-1:-1;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;6429:44:18;;;;;1363:2191:165;6425:105:18;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;1363:2191:165;;;;;;;:::i;:::-;1573:14;;:::i;:::-;6891:76:18;;:::i;:::-;;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;6891:76:18;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;6959:1:18;;-1:-1:-1;;;;;1363:2191:165;6891:76:18;;:::i;:::-;;;:::i;6959:1::-;1363:2191:165;;:::i;:::-;6891:76:18;;:::i;:::-;1363:2191:165;;;;;;:::i;:::-;6591:4:18;1363:2191:165;;-1:-1:-1;;;1363:2191:165;;;;6891:76:18;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;2599:7:54;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;6654:20:18;1363:2191:165;;;2526:1;1363:2191;;6654:20:18;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;2599:7:54;1363:2191:165;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:18;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;6429:44:18;2526:1:165;1363:2191;;-1:-1:-1;;;;;1363:2191:165;6448:25:18;;6429:44;;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;4840:6:19;-1:-1:-1;;;;;1363:2191:165;4831:4:19;4823:23;4819:145;;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;4819:145:19;4594:29;;;1363:2191:165;4924:29:19;1363:2191:165;;4924:29:19;1363:2191:165;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4417:6:19;1363:2191:165;4408:4:19;4400:23;;;:120;;;;1363:2191:165;4383:251:19;;;2324:62:52;;:::i;:::-;1363:2191:165;;-1:-1:-1;;;5881:52:19;;-1:-1:-1;;;;;1363:2191:165;;;;;;;;;5881:52:19;;1363:2191:165;;5881:52:19;;;1363:2191:165;-1:-1:-1;5877:437:19;;1805:47:11;;;;1363:2191:165;6243:60:19;1363:2191:165;;;;6243:60:19;5877:437;5975:40;-1:-1:-1;;;;;;;;;;;5975:40:19;;;5971:120;;1748:29:11;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;2407:36:11;-1:-1:-1;;2407:36:11;1363:2191:165;;2458:15:11;:11;;2489:53;;;:::i;2454:148::-;6185:9;;;6181:70;;1363:2191:165;6181:70:11;6221:19;;;1363:2191:165;6221:19:11;1363:2191:165;;6221:19:11;1744:119;1805:47;;;1363:2191:165;1805:47:11;1363:2191:165;;;;1805:47:11;5971:120:19;6042:34;;;1363:2191:165;6042:34:19;1363:2191:165;;;;6042:34:19;5881:52;;;;1363:2191:165;5881:52:19;;1363:2191:165;5881:52:19;;;;;;1363:2191:165;5881:52:19;;;:::i;:::-;;;1363:2191:165;;;;;5881:52:19;;;;;;;-1:-1:-1;5881:52:19;;4400:120;-1:-1:-1;;;;;;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;4478:42:19;;;-1:-1:-1;4400:120:19;;;1363:2191:165;;;;;;-1:-1:-1;;1363:2191:165;;;;1020:5:55;1363:2191:165;;987:10:57;1020:5:55;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;;:::i;:::-;2324:62:52;;:::i;:::-;-1:-1:-1;;;;;1363:2191:165;;8725:21:54;8721:91;;8850:5;1363:2191:165;;;8850:5:54;;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;3785:23:61;;:::i;:::-;1363:2191:165;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;3286:2;1363:2191;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;6120:5:54;1363:2191:165;;:::i;:::-;;;:::i;:::-;;;987:10:57;6084:5:54;987:10:57;;6084:5:54;;:::i;:::-;6120;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;-1:-1:-1;;1363:2191:165;;;;10039:4:54;1363:2191:165;;:::i;:::-;;;987:10:57;;10039:4:54;:::i;1363:2191:165:-;;;;;;-1:-1:-1;;1363:2191:165;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;-1:-1:-1;;1363:2191:165;;;;:::o;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1363:2191:165;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1363:2191:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1363:2191:165;;;;:::o;1573:14::-;1363:2191;;;;;;;:::i;:::-;1573:14;1363:2191;;-1:-1:-1;;;1573:14:165;;;;:::o;1363:2191::-;-1:-1:-1;;;;;1363:2191:165;;;;;4789:13:54;1363:2191:165;;;;;;:::o;3426:215:52:-;-1:-1:-1;;;;;1363:2191:165;3510:22:52;;3506:91;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;1363:2191:165;;;;;;;-1:-1:-1;;;;;1363:2191:165;3996:40:52;-1:-1:-1;;3996:40:52;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;1363:2191:165;;3530:1:52;3555:31;11669:476:54;;;4789:20;;;:::i;:::-;1363:2191:165;;;;;;;-1:-1:-1;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;11834:36:54;;11830:309;;11669:476;;;;;:::o;11830:309::-;11890:24;;;11886:130;;-1:-1:-1;;;;;1363:2191:165;;11065:19:54;11061:89;;-1:-1:-1;;;;;1363:2191:165;;11163:21:54;11159:90;;11258:20;;;:::i;:::-;:29;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;-1:-1:-1;1363:2191:165;;;;;11830:309:54;;;;;;11159:90;11207:31;;;-1:-1:-1;11207:31:54;-1:-1:-1;11207:31:54;1363:2191:165;;-1:-1:-1;11207:31:54;11061:89;11107:32;;;-1:-1:-1;11107:32:54;-1:-1:-1;11107:32:54;1363:2191:165;;-1:-1:-1;11107:32:54;11886:130;11941:60;;;;;;-1:-1:-1;11941:60:54;1363:2191:165;;;;;;11941:60:54;1363:2191:165;;;;;;-1:-1:-1;11941:60:54;6527:300;-1:-1:-1;;;;;1363:2191:165;;6610:18:54;;6606:86;;-1:-1:-1;;;;;1363:2191:165;;6705:16:54;;6701:86;;1363:2191:165;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;6626:1:54;1363:2191:165;;7531:19:54;;;7527:115;;1363:2191:165;8280:25:54;1363:2191:165;;;;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;6626:1:54;1363:2191:165;;;6626:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;6626:1:54;1363:2191:165;;;;;;;;;;;;8280:25:54;6527:300::o;7527:115::-;7577:50;;;;6626:1;7577:50;;1363:2191:165;;;;;;6626:1:54;7577:50;6606:86;6651:30;;;6626:1;6651:30;6626:1;6651:30;1363:2191:165;;6626:1:54;6651:30;2679:162:52;-1:-1:-1;;;;;;;;;;;1363:2191:165;-1:-1:-1;;;;;1363:2191:165;987:10:57;2738:23:52;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:52;987:10:57;2784:40:52;1363:2191:165;;-1:-1:-1;2784:40:52;9181:206:54;;;;-1:-1:-1;;;;;1363:2191:165;9251:21:54;;9247:89;;1363:2191:165;9270:1:54;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;9270:1:54;1363:2191:165;;7531:19:54;;;7527:115;;1363:2191:165;;9270:1:54;1363:2191:165;;8280:25:54;1363:2191:165;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;8280:25:54;9181:206::o;7527:115::-;7577:50;;;;;9270:1;7577:50;;1363:2191:165;;;;;;9270:1:54;7577:50;10900:487;;-1:-1:-1;;;;;1363:2191:165;;;11065:19:54;;11061:89;;-1:-1:-1;;;;;1363:2191:165;;11163:21:54;;11159:90;;11339:31;11258:20;;1363:2191:165;11258:20:54;;:::i;:::-;1363:2191:165;-1:-1:-1;1363:2191:165;;;;;-1:-1:-1;1363:2191:165;;;;;;;11339:31:54;10900:487::o;7142:1170::-;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;-1:-1:-1;;;;;1363:2191:165;;;;8280:25:54;;1363:2191:165;;7840:16:54;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;-1:-1:-1;;;;;;;;;;;1363:2191:165;7836:429:54;1363:2191:165;;;;;8280:25:54;7142:1170::o;7836:429::-;1363:2191:165;;;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;;;;;;;;7836:429:54;;1363:2191:165;;;;;1693:9;;;;;1363:2191;1693:9;3821:191:61;1363:2191:165;;:::i;:::-;;;;;;6463:31:61;1363:2191:165;;:::i;:::-;;;;;;6801:34:61;1363:2191:165;;3912:92:61;1363:2191:165;3912:92:61;;1363:2191:165;1977:95:61;1363:2191:165;;;1977:95:61;;1363:2191:165;1977:95:61;;;1363:2191:165;3975:13:61;1977:95;;;1363:2191:165;3998:4:61;1977:95;;;1363:2191:165;1977:95:61;3912:92;;;;;;:::i;:::-;1363:2191:165;3902:103:61;;3821:191;:::o;7082:141:18:-;1363:2191:165;-1:-1:-1;;;;;;;;;;;1363:2191:165;;;;7148:18:18;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:18;;-1:-1:-1;7189:17:18;7129:1551:40;;;8209:66;8196:79;;8192:164;;1363:2191:165;;;;;;-1:-1:-1;1363:2191:165;;;;;;;;;;;;;;;;;;;8467:24:40;;;;;;;;;-1:-1:-1;8467:24:40;-1:-1:-1;;;;;1363:2191:165;;8505:20:40;8501:113;;8624:49;-1:-1:-1;8624:49:40;-1:-1:-1;7129:1551:40;:::o;8501:113::-;8541:62;-1:-1:-1;8541:62:40;8467:24;8541:62;-1:-1:-1;8541:62:40;:::o;8467:24::-;1363:2191:165;;;-1:-1:-1;1363:2191:165;;;;;8192:164:40;8291:54;;;8307:1;8291:54;8311:30;8291:54;;:::o;11617:532::-;1363:2191:165;;;;;;11703:29:40;;;11748:7;;:::o;11699:444::-;1363:2191:165;11799:38:40;;1363:2191:165;;11860:23:40;;;11712:20;11860:23;1363:2191:165;11712:20:40;11860:23;11795:348;11913:35;11904:44;;11913:35;;11971:46;;;;11712:20;11971:46;1363:2191:165;;;11712:20:40;11971:46;11900:243;12047:30;12038:39;12034:109;;11900:243;11617:532::o;12034:109::-;12100:32;;;11712:20;12100:32;1363:2191:165;;;11712:20:40;12100:32;1363:2191:165;;;;11712:20:40;1363:2191:165;;;;;11712:20:40;1363:2191:165;4691:549:25;;-1:-1:-1;4691:549:25;;3526:129:32;;;;;;;;;;4874:72:25;;4691:549;4870:364;;;4816:252:32;;;;;;;;-1:-1:-1;3526:129:32;4816:252;;;3526:129;4816:252;;;;;;4962:32:25;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:25;;;-1:-1:-1;;;;;1363:2191:165;;;;5045:24:25;1363:2191:165;;;5045:24:25;5011:223;4578:73:32;5090:33:25;4578:73:32;;1363:2191:165;;;-1:-1:-1;1363:2191:165;;;;;5086:148:25;5204:19;;;-1:-1:-1;5204:19:25;;-1:-1:-1;5204:19:25;4874:72;-1:-1:-1;4578:73:32;4886:33:25;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"1929":[{"start":5437,"length":32},{"start":5655,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","eip712Domain()":"84b0196e","initialize(address)":"c4d66de8","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.35+commit.47b9dedd\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token. VARA is also used for paying fees, staking and governance on Vara Network, while WVARA does all of the same things but on Ethereum. On Ethereum network, WVARA is used as an executable balance for programs (Mirrors). Please note that this version of WrappedVara is only used in local development environments, in production we use this: - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"initialize(address)\":{\"details\":\"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.\",\"params\":{\"initialOwner\":\"The address that will be able to mint tokens.\"}},\"mint(address,uint256)\":{\"details\":\"Mints `amount` tokens to `to`.\",\"params\":{\"amount\":\"The amount of tokens to mint.\",\"to\":\"The address to mint tokens to.\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also applies here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/\",\":@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/\",\":@symbioticfi/core/=dependencies/symbiotic-core-main/\",\":forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/\",\":forge-std/=dependencies/forge-std-1.16.1/src/\",\":frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/\",\":frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/\",\":openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/\",\":openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core-main/=dependencies/symbiotic-core-main/src/\",\":symbiotic-core/=dependencies/symbiotic-core-main/\",\":symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/\",\":symbiotic-rewards/=dependencies/symbiotic-rewards-main/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce\",\"dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol\":{\"keccak256\":\"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08\",\"dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol\":{\"keccak256\":\"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5\",\"dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol\":{\"keccak256\":\"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc\",\"dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c\",\"dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol\":{\"keccak256\":\"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5\",\"dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol\":{\"keccak256\":\"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9\",\"dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif\"]},\"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d\",\"dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xd518def45c722a6e803e1e26e625db25e01497f672ca566cca585d234ec903b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e7de3fccd96783244790cde282435ce0fd3a44ab4ccb10f17005c743202882f\",\"dweb:/ipfs/QmYSepstTqs5UPJvjeJXkWU5R659yReqrSgSGGh65hkbdK\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0x31160f7d687d8f0fca92528a76585061dd8ef1d112430ff9051cf1948cbf3a82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93c7dcbff32c852eac94ec0a0f9f64088d9a669d814ce319ac9ed696d7b4507b\",\"dweb:/ipfs/QmUz3AKuvdZxd1AkZNfvHhMr6dbfuAwF9zAeG71FLwuVBD\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x2abba89aa289a6c0e38404a5b2e0020ca133e1ae0c790bdfc4cc99a1e2af93ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://babdfa68f728f6063f378692ac75dc086d3a7d7a4c04f53779c4365d0b2d1124\",\"dweb:/ipfs/QmNZe3zu6FvpN9xBMadQsxip11VAUyqJWHTbrBGCqes9SC\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95\",\"dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE\"]},\"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd\",\"dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x102f0cccca882d643f31ddf8720664530e1196d0348ba62d86501df0711f6c8b\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://919e7e553cd084dc747238d85d684d3b71ead188f2fb3e963f34a7086cab1c05\",\"dweb:/ipfs/QmRGRPCVP3oN7nUz9r9YzmPSHq3A9DVy9VN2SEBaNZ8DcX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.35+commit.47b9dedd"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"burn(uint256)":{"details":"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"initialize(address)":{"details":"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.","params":{"initialOwner":"The address that will be able to mint tokens."}},"mint(address,uint256)":{"details":"Mints `amount` tokens to `to`.","params":{"amount":"The amount of tokens to mint.","to":"The address to mint tokens to."}},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Returns the address of the current owner."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also applies here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.6.1/=dependencies/@openzeppelin-contracts-5.6.1/","@openzeppelin-contracts-upgradeable-5.6.1/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts-upgradeable/=dependencies/@openzeppelin-contracts-upgradeable-5.6.1/","@openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.6.1/","@symbioticfi/core/=dependencies/symbiotic-core-main/","forge-std-1.16.1/=dependencies/forge-std-1.16.1/src/","forge-std/=dependencies/forge-std-1.16.1/src/","frost-secp256k1-evm-master/=dependencies/frost-secp256k1-evm-master/src/","frost-secp256k1-evm/=dependencies/frost-secp256k1-evm-master/src/","openzeppelin-foundry-upgrades-0.4.0/=dependencies/openzeppelin-foundry-upgrades-0.4.0/","openzeppelin-foundry-upgrades/=dependencies/openzeppelin-foundry-upgrades-0.4.0/src/","script/=script/","src/=src/","symbiotic-core-main/=dependencies/symbiotic-core-main/src/","symbiotic-core/=dependencies/symbiotic-core-main/","symbiotic-rewards-main/=dependencies/symbiotic-rewards-main/src/","symbiotic-rewards/=dependencies/symbiotic-rewards-main/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x3d8b816f00b4cabe9a9fb7e84908ef785d6e5b0ef988bcd3c52fe811b4559686","urls":["bzz-raw://1e41440b371ccf99aa64903f055a5aa2419bf5b9dde0cb6a89f49b1317881dce","dweb:/ipfs/QmQY4wtjmo75SvystNQwsNLXix2PHTduvJXkPK5qyu7Niz"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Bytes.sol":{"keccak256":"0xf80e4b96b6849936ea0fabd76cf81b13d7276295fddb1e1c07afb3ddf650b0ac","urls":["bzz-raw://6430007255ac11c6e9c4331a418f3af52ff66fbbae959f645301d025b20aeb08","dweb:/ipfs/QmQE5fjmBBRw9ndnzJuC2uskYss1gbaR7JdazoCf1FGoBj"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/LowLevelCall.sol":{"keccak256":"0x6ba3db1346fc75a832aa6cd075e12f6f1fa172fa2122a020f324c319fe5be75e","urls":["bzz-raw://ab92e9e1cb08144c43fa3a383a87c48f49a652d51156950b928c2a50bee6b3a5","dweb:/ipfs/QmWeKkKZBgLDKgRFGKCzsKybYF7C8g9ysg5kU1b1p7QFBi"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/Strings.sol":{"keccak256":"0x1fdc2de9585ab0f1c417f02a873a2b6343cd64bb7ffec6b00ffa11a4a158d9e8","urls":["bzz-raw://1ab223a3d969c6cd7610049431dd42740960c477e45878f5d8b54411f7a32bdc","dweb:/ipfs/QmWumhjvhpKcwx3vDPQninsNVTc3BGvqaihkQakFkQYpaS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6d8579873b9650426bfbd2a754092d1725049ca05e4e3c8c2c82dd9f3453129d","urls":["bzz-raw://1fa3127a8968d55096d37124a9e212013af112affa5e30b84a1d22263c31576c","dweb:/ipfs/QmetxaVcn5Q6nkpF9yXzaxPQ7d3rgrhV13sTH9BgiuzGJL"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/Math.sol":{"keccak256":"0x59973a93b1f983f94e10529f46ca46544a9fec2b5f56fb1390bbe9e0dc79f857","urls":["bzz-raw://c55ef8f0b9719790c2ae6f81d80a59ffb89f2f0abe6bc065585bd79edce058c5","dweb:/ipfs/QmNNmCbX9NjPXKqHJN8R1WC2rNeZSQrPZLd6FF6AKLyH5Y"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SafeCast.sol":{"keccak256":"0xc8cae21c9ae4a46e5162ff9bf5b351d6fa6a6eba72d515f3bc1bdfeda7fdf083","urls":["bzz-raw://ce830ebcf28e31643caba318996db3763c36d52cd0f23798ba83c135355d45e9","dweb:/ipfs/QmdGPcvptHN7UBCbUYBbRX3hiRVRFLRwno8b4uga6uFNif"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.6.1/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol":{"keccak256":"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16","urls":["bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d","dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xd518def45c722a6e803e1e26e625db25e01497f672ca566cca585d234ec903b0","urls":["bzz-raw://6e7de3fccd96783244790cde282435ce0fd3a44ab4ccb10f17005c743202882f","dweb:/ipfs/QmYSepstTqs5UPJvjeJXkWU5R659yReqrSgSGGh65hkbdK"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0x31160f7d687d8f0fca92528a76585061dd8ef1d112430ff9051cf1948cbf3a82","urls":["bzz-raw://93c7dcbff32c852eac94ec0a0f9f64088d9a669d814ce319ac9ed696d7b4507b","dweb:/ipfs/QmUz3AKuvdZxd1AkZNfvHhMr6dbfuAwF9zAeG71FLwuVBD"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x2abba89aa289a6c0e38404a5b2e0020ca133e1ae0c790bdfc4cc99a1e2af93ba","urls":["bzz-raw://babdfa68f728f6063f378692ac75dc086d3a7d7a4c04f53779c4365d0b2d1124","dweb:/ipfs/QmNZe3zu6FvpN9xBMadQsxip11VAUyqJWHTbrBGCqes9SC"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/NoncesUpgradeable.sol":{"keccak256":"0xe82a34ce4440f4c0a144fcd5c837c05bcd6bfbd947ba184f3e9904c14ed280ad","urls":["bzz-raw://f05905d8f1f2941589c625b74f2ca7fb3f2a8d8b9e55c0b31072404720a1cb95","dweb:/ipfs/QmVCzDUqSaUYGLSqwkeEQHBMTrJQtUMjEsBBEsGYBdyazE"],"license":"MIT"},"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0xf415d9f93e322a9fe3682712ffb72cfd3daf8f4c4acfa1bb4fea8f5fb7e1cf0d","urls":["bzz-raw://7ce394d9dd8bd6902a4d529ad3a1f3529918f26aafd4740d2f739712d89bebdd","dweb:/ipfs/QmSgrefNY63FEpgWQAsnn46VwcrP2ShEY3mtB58x7pAiuN"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x102f0cccca882d643f31ddf8720664530e1196d0348ba62d86501df0711f6c8b","urls":["bzz-raw://919e7e553cd084dc747238d85d684d3b71ead188f2fb3e963f34a7086cab1c05","dweb:/ipfs/QmRGRPCVP3oN7nUz9r9YzmPSHq3A9DVy9VN2SEBaNZ8DcX"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":84809,"exportedSymbols":{"ERC20BurnableUpgradeable":[20148],"ERC20PermitUpgradeable":[20317],"ERC20Upgradeable":[20086],"Initializable":[1913],"OwnableUpgradeable":[19465],"UUPSUpgradeable":[2079],"WrappedVara":[84808]},"nodeType":"SourceUnit","src":"114:3441:165","nodes":[{"id":84667,"nodeType":"PragmaDirective","src":"114:24:165","nodes":[],"literals":["solidity","^","0.8",".35"]},{"id":84669,"nodeType":"ImportDirective","src":"140:101:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84809,"sourceUnit":19466,"symbolAliases":[{"foreign":{"id":84668,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"148:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84671,"nodeType":"ImportDirective","src":"242:96:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":84809,"sourceUnit":19470,"symbolAliases":[{"foreign":{"id":84670,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1913,"src":"250:13:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84673,"nodeType":"ImportDirective","src":"339:102:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":84809,"sourceUnit":20087,"symbolAliases":[{"foreign":{"id":84672,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20086,"src":"347:16:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84675,"nodeType":"ImportDirective","src":"442:135:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84809,"sourceUnit":20149,"symbolAliases":[{"foreign":{"id":84674,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20148,"src":"455:24:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84677,"nodeType":"ImportDirective","src":"578:131:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-upgradeable-5.6.1/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84809,"sourceUnit":20318,"symbolAliases":[{"foreign":{"id":84676,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20317,"src":"591:22:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84679,"nodeType":"ImportDirective","src":"710:88:165","nodes":[],"absolutePath":"dependencies/@openzeppelin-contracts-5.6.1/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84809,"sourceUnit":2080,"symbolAliases":[{"foreign":{"id":84678,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"718:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84808,"nodeType":"ContractDefinition","src":"1363:2191:165","nodes":[{"id":84695,"nodeType":"VariableDeclaration","src":"1536:51:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1560:10:165","scope":84808,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":84693,"name":"string","nodeType":"ElementaryTypeName","src":"1536:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":84694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1573:14:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":84698,"nodeType":"VariableDeclaration","src":"1593:46:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1617:12:165","scope":84808,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":84696,"name":"string","nodeType":"ElementaryTypeName","src":"1593:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":84697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1632:7:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":84701,"nodeType":"VariableDeclaration","src":"1645:57:165","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1670:20:165","scope":84808,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84699,"name":"uint256","nodeType":"ElementaryTypeName","src":"1645:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":84700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1693:9:165","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":84709,"nodeType":"FunctionDefinition","src":"1777:53:165","nodes":[],"body":{"id":84708,"nodeType":"Block","src":"1791:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":84705,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1867,"src":"1801:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":84706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1801:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84707,"nodeType":"ExpressionStatement","src":"1801:22:165"}]},"documentation":{"id":84702,"nodeType":"StructuredDocumentation","src":"1709:63:165","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":84703,"nodeType":"ParameterList","parameters":[],"src":"1788:2:165"},"returnParameters":{"id":84704,"nodeType":"ParameterList","parameters":[],"src":"1791:0:165"},"scope":84808,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":84744,"nodeType":"FunctionDefinition","src":"2101:297:165","nodes":[],"body":{"id":84743,"nodeType":"Block","src":"2162:236:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":84718,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84695,"src":"2185:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":84719,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84698,"src":"2197:12:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":84717,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19537,"src":"2172:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":84720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2172:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84721,"nodeType":"ExpressionStatement","src":"2172:38:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":84722,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"2220:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":84723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2220:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84724,"nodeType":"ExpressionStatement","src":"2220:22:165"},{"expression":{"arguments":[{"id":84726,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84712,"src":"2267:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84725,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"2252:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":84727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2252:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84728,"nodeType":"ExpressionStatement","src":"2252:28:165"},{"expression":{"arguments":[{"id":84730,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84695,"src":"2309:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":84729,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20204,"src":"2290:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":84731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2290:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84732,"nodeType":"ExpressionStatement","src":"2290:30:165"},{"expression":{"arguments":[{"id":84734,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84712,"src":"2337:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84735,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84701,"src":"2351:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":84736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2374:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":84737,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[84791],"referencedDeclaration":84791,"src":"2380:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":84738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2374:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2351:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84733,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"2331:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":84741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2331:60:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84742,"nodeType":"ExpressionStatement","src":"2331:60:165"}]},"documentation":{"id":84710,"nodeType":"StructuredDocumentation","src":"1836:260:165","text":" @dev Initializes the WrappedVara contract with the token name and symbol.\n @param initialOwner The address that will be able to mint tokens.\n @dev The initialOwner receives the 1 million WVARA tokens minted during initialization."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":84715,"kind":"modifierInvocation","modifierName":{"id":84714,"name":"initializer","nameLocations":["2150:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":1753,"src":"2150:11:165"},"nodeType":"ModifierInvocation","src":"2150:11:165"}],"name":"initialize","nameLocation":"2110:10:165","parameters":{"id":84713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84712,"mutability":"mutable","name":"initialOwner","nameLocation":"2129:12:165","nodeType":"VariableDeclaration","scope":84744,"src":"2121:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84711,"name":"address","nodeType":"ElementaryTypeName","src":"2121:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2120:22:165"},"returnParameters":{"id":84716,"nodeType":"ParameterList","parameters":[],"src":"2162:0:165"},"scope":84808,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":84771,"nodeType":"FunctionDefinition","src":"2471:218:165","nodes":[],"body":{"id":84770,"nodeType":"Block","src":"2529:160:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":84754,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84695,"src":"2552:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":84755,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84698,"src":"2564:12:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":84753,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19537,"src":"2539:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":84756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2539:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84757,"nodeType":"ExpressionStatement","src":"2539:38:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":84758,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20107,"src":"2587:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":84759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84760,"nodeType":"ExpressionStatement","src":"2587:22:165"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":84762,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19376,"src":"2634:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":84763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84761,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"2619:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":84764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84765,"nodeType":"ExpressionStatement","src":"2619:23:165"},{"expression":{"arguments":[{"id":84767,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84695,"src":"2671:10:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":84766,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20204,"src":"2652:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":84768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2652:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84769,"nodeType":"ExpressionStatement","src":"2652:30:165"}]},"documentation":{"id":84745,"nodeType":"StructuredDocumentation","src":"2404:62:165","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":84748,"kind":"modifierInvocation","modifierName":{"id":84747,"name":"onlyOwner","nameLocations":["2502:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2502:9:165"},"nodeType":"ModifierInvocation","src":"2502:9:165"},{"arguments":[{"hexValue":"32","id":84750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2526:1:165","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":84751,"kind":"modifierInvocation","modifierName":{"id":84749,"name":"reinitializer","nameLocations":["2512:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":1800,"src":"2512:13:165"},"nodeType":"ModifierInvocation","src":"2512:16:165"}],"name":"reinitialize","nameLocation":"2480:12:165","parameters":{"id":84746,"nodeType":"ParameterList","parameters":[],"src":"2492:2:165"},"returnParameters":{"id":84752,"nodeType":"ParameterList","parameters":[],"src":"2529:0:165"},"scope":84808,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":84781,"nodeType":"FunctionDefinition","src":"2854:84:165","nodes":[],"body":{"id":84780,"nodeType":"Block","src":"2936:2:165","nodes":[],"statements":[]},"baseFunctions":[2033],"documentation":{"id":84772,"nodeType":"StructuredDocumentation","src":"2695:154:165","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":84778,"kind":"modifierInvocation","modifierName":{"id":84777,"name":"onlyOwner","nameLocations":["2926:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"2926:9:165"},"nodeType":"ModifierInvocation","src":"2926:9:165"}],"name":"_authorizeUpgrade","nameLocation":"2863:17:165","overrides":{"id":84776,"nodeType":"OverrideSpecifier","overrides":[],"src":"2917:8:165"},"parameters":{"id":84775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84774,"mutability":"mutable","name":"newImplementation","nameLocation":"2889:17:165","nodeType":"VariableDeclaration","scope":84781,"src":"2881:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84773,"name":"address","nodeType":"ElementaryTypeName","src":"2881:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2880:27:165"},"returnParameters":{"id":84779,"nodeType":"ParameterList","parameters":[],"src":"2936:0:165"},"scope":84808,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":84791,"nodeType":"FunctionDefinition","src":"3212:83:165","nodes":[],"body":{"id":84790,"nodeType":"Block","src":"3269:26:165","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":84788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3286:2:165","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":84787,"id":84789,"nodeType":"Return","src":"3279:9:165"}]},"baseFunctions":[19606],"documentation":{"id":84782,"nodeType":"StructuredDocumentation","src":"2944:263:165","text":" @dev Returns the number of decimals used to get its user representation.\n Also see documentation about decimals:\n - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3221:8:165","overrides":{"id":84784,"nodeType":"OverrideSpecifier","overrides":[],"src":"3244:8:165"},"parameters":{"id":84783,"nodeType":"ParameterList","parameters":[],"src":"3229:2:165"},"returnParameters":{"id":84787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84791,"src":"3262:5:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":84785,"name":"uint8","nodeType":"ElementaryTypeName","src":"3262:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3261:7:165"},"scope":84808,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":84807,"nodeType":"FunctionDefinition","src":"3459:93:165","nodes":[],"body":{"id":84806,"nodeType":"Block","src":"3518:34:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":84802,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84794,"src":"3534:2:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":84803,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84796,"src":"3538:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84801,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"3528:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":84804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3528:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84805,"nodeType":"ExpressionStatement","src":"3528:17:165"}]},"documentation":{"id":84792,"nodeType":"StructuredDocumentation","src":"3301:153:165","text":" @dev Mints `amount` tokens to `to`.\n @param to The address to mint tokens to.\n @param amount The amount of tokens to mint."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":84799,"kind":"modifierInvocation","modifierName":{"id":84798,"name":"onlyOwner","nameLocations":["3508:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":19360,"src":"3508:9:165"},"nodeType":"ModifierInvocation","src":"3508:9:165"}],"name":"mint","nameLocation":"3468:4:165","parameters":{"id":84797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84794,"mutability":"mutable","name":"to","nameLocation":"3481:2:165","nodeType":"VariableDeclaration","scope":84807,"src":"3473:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84793,"name":"address","nodeType":"ElementaryTypeName","src":"3473:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":84796,"mutability":"mutable","name":"amount","nameLocation":"3493:6:165","nodeType":"VariableDeclaration","scope":84807,"src":"3485:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84795,"name":"uint256","nodeType":"ElementaryTypeName","src":"3485:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3472:28:165"},"returnParameters":{"id":84800,"nodeType":"ParameterList","parameters":[],"src":"3518:0:165"},"scope":84808,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":84681,"name":"Initializable","nameLocations":["1391:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":1913,"src":"1391:13:165"},"id":84682,"nodeType":"InheritanceSpecifier","src":"1391:13:165"},{"baseName":{"id":84683,"name":"ERC20Upgradeable","nameLocations":["1410:16:165"],"nodeType":"IdentifierPath","referencedDeclaration":20086,"src":"1410:16:165"},"id":84684,"nodeType":"InheritanceSpecifier","src":"1410:16:165"},{"baseName":{"id":84685,"name":"ERC20BurnableUpgradeable","nameLocations":["1432:24:165"],"nodeType":"IdentifierPath","referencedDeclaration":20148,"src":"1432:24:165"},"id":84686,"nodeType":"InheritanceSpecifier","src":"1432:24:165"},{"baseName":{"id":84687,"name":"OwnableUpgradeable","nameLocations":["1462:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":19465,"src":"1462:18:165"},"id":84688,"nodeType":"InheritanceSpecifier","src":"1462:18:165"},{"baseName":{"id":84689,"name":"ERC20PermitUpgradeable","nameLocations":["1486:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":20317,"src":"1486:22:165"},"id":84690,"nodeType":"InheritanceSpecifier","src":"1486:22:165"},{"baseName":{"id":84691,"name":"UUPSUpgradeable","nameLocations":["1514:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":2079,"src":"1514:15:165"},"id":84692,"nodeType":"InheritanceSpecifier","src":"1514:15:165"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":84680,"nodeType":"StructuredDocumentation","src":"800:562:165","text":" @dev Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token.\n VARA is also used for paying fees, staking and governance on Vara Network,\n while WVARA does all of the same things but on Ethereum.\n On Ethereum network, WVARA is used as an executable balance for programs (Mirrors).\n Please note that this version of WrappedVara is only used in local development environments,\n in production we use this:\n - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol"},"fullyImplemented":true,"linearizedBaseContracts":[84808,2079,376,20317,20577,20974,366,2734,19465,20148,20086,418,2698,2672,20363,1913],"name":"WrappedVara","nameLocation":"1372:11:165","scope":84809,"usedErrors":[388,393,398,407,412,417,995,1008,1662,1665,1936,1941,3201,6168,8568,8573,8578,19301,19306,20183,20190,20480],"usedEvents":[324,346,1670,2606,2615,19312]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":165} \ No newline at end of file diff --git a/ethexe/ethereum/src/abi/events/mirror.rs b/ethexe/ethereum/src/abi/events/mirror.rs index 3c597c744df..26245de48b0 100644 --- a/ethexe/ethereum/src/abi/events/mirror.rs +++ b/ethexe/ethereum/src/abi/events/mirror.rs @@ -125,12 +125,3 @@ impl From for ReplyTransferFailedEvent { } } } - -impl From for ValueClaimFailedEvent { - fn from(value: IMirror::ValueClaimFailed) -> Self { - Self { - claimed_id: bytes32_to_message_id(value.claimedId), - value: value.value, - } - } -} diff --git a/ethexe/ethereum/src/abi/gear.rs b/ethexe/ethereum/src/abi/gear.rs index 2fb76a90bc4..f9ab8b09c14 100644 --- a/ethexe/ethereum/src/abi/gear.rs +++ b/ethexe/ethereum/src/abi/gear.rs @@ -2,9 +2,11 @@ // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 use crate::abi::{Gear, utils::*}; -use ethexe_common::gear::*; +use ethexe_common::{ToDigest, gear::*}; use gear_core::message::ReplyDetails; use gear_core_errors::{ReplyCode, SuccessReplyReason}; +use gprimitives::H256; +use sp_runtime::traits::Keccak256; // // // From Rust types to alloy // @@ -160,6 +162,12 @@ impl From for Gear::ReplyDetails { impl From for Gear::StateTransition { fn from(value: StateTransition) -> Self { + let value_claims: Vec<_> = value + .value_claims + .into_iter() + .map(|value_claim| H256(value_claim.to_digest().0)) + .collect(); + let merkle_root = binary_merkle_tree::merkle_root_raw::(value_claims); Self { actorId: actor_id_to_address_lossy(value.actor_id), newStateHash: h256_to_bytes32(value.new_state_hash), @@ -167,22 +175,12 @@ impl From for Gear::StateTransition { inheritor: actor_id_to_address_lossy(value.inheritor), valueToReceive: value.value_to_receive, valueToReceiveNegativeSign: value.value_to_receive_negative_sign, - valueClaims: value.value_claims.into_iter().map(Into::into).collect(), + merkleRoot: h256_to_bytes32(merkle_root), messages: value.messages.into_iter().map(Into::into).collect(), } } } -impl From for Gear::ValueClaim { - fn from(value: ValueClaim) -> Self { - Self { - messageId: message_id_to_bytes32(value.message_id), - destination: actor_id_to_address_lossy(value.destination), - value: value.value, - } - } -} - impl From for GenesisBlockInfo { fn from(value: Gear::GenesisBlockInfo) -> Self { Self { diff --git a/ethexe/ethereum/src/abi/mod.rs b/ethexe/ethereum/src/abi/mod.rs index 11eeda7936c..4c07ec3efbb 100644 --- a/ethexe/ethereum/src/abi/mod.rs +++ b/ethexe/ethereum/src/abi/mod.rs @@ -7,7 +7,7 @@ mod gear; use alloy::sol; pub use gear_abi::Gear as GearLib; pub use middleware_abi::IMiddleware; -pub use mirror_abi::IMirror; +pub use mirror_abi::{Gear as GearMirror, IMirror}; pub use router_abi::{Gear, IRouter}; pub mod gear_abi { diff --git a/ethexe/ethereum/src/lib.rs b/ethexe/ethereum/src/lib.rs index cece30db34d..3e1880e1e29 100644 --- a/ethexe/ethereum/src/lib.rs +++ b/ethexe/ethereum/src/lib.rs @@ -378,6 +378,18 @@ impl Ethereum { self.sender_address } + pub fn sender_actor_id(&self) -> ActorId { + self.sender_address().into() + } + + pub async fn sender_balance(&self) -> Result { + self.provider() + .get_balance(self.sender_address().into()) + .await + .map(abi_utils::uint256_to_u128_lossy) + .map_err(Into::into) + } + pub fn provider(&self) -> AlloyProvider { self.provider.clone() } diff --git a/ethexe/ethereum/src/mirror/events.rs b/ethexe/ethereum/src/mirror/events.rs index 52ea1bbb4d6..98ab604ec60 100644 --- a/ethexe/ethereum/src/mirror/events.rs +++ b/ethexe/ethereum/src/mirror/events.rs @@ -16,8 +16,7 @@ use ethexe_common::events::{ ExecutableBalanceTopUpRequestedEvent, MessageCallFailedEvent, MessageEvent, MessageQueueingRequestedEvent, OwnedBalanceTopUpRequestedEvent, ReplyCallFailedEvent, ReplyEvent, ReplyQueueingRequestedEvent, ReplyTransferFailedEvent, StateChangedEvent, - TransferLockedValueToInheritorFailedEvent, ValueClaimFailedEvent, ValueClaimedEvent, - ValueClaimingRequestedEvent, + TransferLockedValueToInheritorFailedEvent, ValueClaimedEvent, ValueClaimingRequestedEvent, }, }; use futures::{Stream, StreamExt}; @@ -43,7 +42,6 @@ pub mod signatures { VALUE_CLAIMING_REQUESTED: ValueClaimingRequested, TRANSFER_LOCKED_VALUE_TO_INHERITOR_FAILED: TransferLockedValueToInheritorFailed, REPLY_TRANSFER_FAILED: ReplyTransferFailed, - VALUE_CLAIM_FAILED: ValueClaimFailed, } pub const REQUESTS: &[B256] = &[ @@ -98,9 +96,6 @@ pub fn try_extract_event(log: &Log) -> Result> { REPLY_TRANSFER_FAILED => MirrorEvent::ReplyTransferFailed( decode_log::(log)?.into(), ), - VALUE_CLAIM_FAILED => { - MirrorEvent::ValueClaimFailed(decode_log::(log)?.into()) - } _ => unreachable!("filtered above"), }; @@ -147,7 +142,6 @@ impl<'a> AllEventsBuilder<'a> { signatures::VALUE_CLAIMING_REQUESTED, signatures::TRANSFER_LOCKED_VALUE_TO_INHERITOR_FAILED, signatures::REPLY_TRANSFER_FAILED, - signatures::VALUE_CLAIM_FAILED, ])); Ok(self .query @@ -547,27 +541,3 @@ impl<'a> ReplyTransferFailedEventBuilder<'a> { .map(|result| result.map(|(event, log)| (event.into(), log)))) } } - -pub struct ValueClaimFailedEventBuilder<'a> { - event: Event<&'a RootProvider, IMirror::ValueClaimFailed>, -} - -impl<'a> ValueClaimFailedEventBuilder<'a> { - pub(crate) fn new(query: &'a MirrorQuery) -> Self { - Self { - event: query.0.ValueClaimFailed_filter(), - } - } - - pub async fn subscribe( - self, - ) -> Result> + Unpin + use<>> - { - Ok(self - .event - .subscribe() - .await? - .into_stream() - .map(|result| result.map(|(event, log)| (event.into(), log)))) - } -} diff --git a/ethexe/ethereum/src/mirror/mod.rs b/ethexe/ethereum/src/mirror/mod.rs index bf6aaff0a01..08c0a023ab0 100644 --- a/ethexe/ethereum/src/mirror/mod.rs +++ b/ethexe/ethereum/src/mirror/mod.rs @@ -11,13 +11,13 @@ use alloy::{ eips::BlockId, network, primitives::{Address as AlloyAddress, Bytes, U256 as AlloyU256}, - providers::{PendingTransactionBuilder, Provider, RootProvider, WalletProvider}, + providers::{PendingTransactionBuilder, Provider, RootProvider}, rpc::types::TransactionReceipt, }; use anyhow::{Result, anyhow}; use ethexe_common::{ - Address, - events::mirror::{ReplyEvent, StateChangedEvent, ValueClaimedEvent}, + Address, OutgoingAction, + events::mirror::{ReplyEvent, StateChangedEvent}, }; pub use events::signatures; use events::{ @@ -25,23 +25,15 @@ use events::{ MessageEventBuilder, MessageQueueingRequestedEventBuilder, OwnedBalanceTopUpRequestedEventBuilder, ReplyCallFailedEventBuilder, ReplyEventBuilder, ReplyQueueingRequestedEventBuilder, ReplyTransferFailedEventBuilder, StateChangedEventBuilder, - TransferLockedValueToInheritorFailedEventBuilder, ValueClaimFailedEventBuilder, - ValueClaimedEventBuilder, ValueClaimingRequestedEventBuilder, + TransferLockedValueToInheritorFailedEventBuilder, ValueClaimedEventBuilder, + ValueClaimingRequestedEventBuilder, }; use futures::StreamExt; use gear_core::{ids::prelude::MessageIdExt, rpc::ReplyInfo}; use gprimitives::{ActorId, H256, MessageId, U256}; -use serde::Serialize; pub mod events; -#[derive(Debug, Clone, Serialize)] -pub struct ClaimInfo { - pub message_id: MessageId, - pub actor_id: ActorId, - pub value: u128, -} - type Instance = IMirror::IMirrorInstance; type QueryInstance = IMirror::IMirrorInstance; @@ -210,39 +202,29 @@ impl Mirror { .map(|receipt| (*receipt.transaction_hash).into()) } + pub async fn claim_value_pending( + &self, + claimed_id: MessageId, + ) -> Result> { + self.instance + .claimValue(claimed_id.into_bytes().into()) + .send() + .await + .map_err(Into::into) + } + pub async fn claim_value_with_receipt( &self, claimed_id: MessageId, ) -> Result { - let builder = self.instance.claimValue(claimed_id.into_bytes().into()); - let receipt = builder - .send() + let receipt = self + .claim_value_pending(claimed_id) .await? .try_get_receipt_check_reverted() .await?; Ok(receipt) } - pub async fn wait_for_value_claim(&self, message_id: MessageId) -> Result { - let mut stream = self.query().events().value_claimed().subscribe().await?; - - while let Some(result) = stream.next().await { - if let Ok((ValueClaimedEvent { claimed_id, value }, _)) = result - && claimed_id == message_id - { - let actor_id = - Address::from(self.instance.provider().default_signer_address()).into(); - return Ok(ClaimInfo { - message_id: claimed_id, - actor_id, - value, - }); - } - } - - Err(anyhow!("Failed to wait for value claimed")) - } - pub async fn executable_balance_top_up(&self, value: u128) -> Result { self.executable_balance_top_up_with_receipt(value) .await @@ -310,6 +292,48 @@ impl Mirror { Ok(receipt) } + pub async fn process_outgoing_action( + &self, + state_hash: H256, + total_leaves: U256, + leaf_index: U256, + outgoing_action: OutgoingAction, + proof: Vec, + ) -> Result { + self.process_outgoing_action_with_receipt( + state_hash, + total_leaves, + leaf_index, + outgoing_action, + proof, + ) + .await + .map(|receipt| (*receipt.transaction_hash).into()) + } + + pub async fn process_outgoing_action_with_receipt( + &self, + state_hash: H256, + total_leaves: U256, + leaf_index: U256, + outgoing_action: OutgoingAction, + proof: Vec, + ) -> Result { + let builder = self.instance.processOutgoingAction( + abi::utils::h256_to_bytes32(state_hash), + abi::utils::u256_to_uint256(total_leaves), + abi::utils::u256_to_uint256(leaf_index), + outgoing_action.to_bytes().into(), + proof.into_iter().map(abi::utils::h256_to_bytes32).collect(), + ); + let receipt = builder + .send() + .await? + .try_get_receipt_check_reverted() + .await?; + Ok(receipt) + } + pub async fn owned_balance_top_up(&self, value: u128) -> Result { self.owned_balance_top_up_with_receipt(value) .await @@ -474,8 +498,4 @@ impl<'a> MirrorEvents<'a> { pub fn reply_transfer_failed(&self) -> ReplyTransferFailedEventBuilder<'a> { ReplyTransferFailedEventBuilder::new(self.query) } - - pub fn value_claim_failed(&self) -> ValueClaimFailedEventBuilder<'a> { - ValueClaimFailedEventBuilder::new(self.query) - } } diff --git a/ethexe/ethereum/src/router/mod.rs b/ethexe/ethereum/src/router/mod.rs index 045ffad48f6..c283d3e0b87 100644 --- a/ethexe/ethereum/src/router/mod.rs +++ b/ethexe/ethereum/src/router/mod.rs @@ -5,7 +5,7 @@ use crate::{ AlloyEthereum, AlloyProvider, Eip712PermitData, Ethereum, IntoBlockId, Sender, TryGetReceipt, abi::{ GearLib, IRouter, - utils::{uint48_to_u64, uint256_to_u256}, + utils::{uint48_to_u64, uint256_to_u128_lossy, uint256_to_u256}, }, router::events::AllEventsBuilder, wvara::WVara, @@ -599,6 +599,15 @@ impl RouterQuery { RouterEvents { query: self } } + pub async fn balance(&self) -> Result { + self.instance + .provider() + .get_balance(*self.instance.address()) + .await + .map(uint256_to_u128_lossy) + .map_err(Into::into) + } + // TODO: move StorageView into ethexe-common and export pub async fn storage_view(&self) -> Result { diff --git a/ethexe/malachite/service/src/externalities.rs b/ethexe/malachite/service/src/externalities.rs index c3fa9ae7a3d..9050fff41cc 100644 --- a/ethexe/malachite/service/src/externalities.rs +++ b/ethexe/malachite/service/src/externalities.rs @@ -1272,6 +1272,7 @@ mod tests { mailbox_hash: MaybeHashOf::empty(), balance: 0, executable_balance: MIN_EXECUTABLE_BALANCE_FOR_INJECTED_MESSAGES * 100, + outgoing_actions_counter: 0, }; let state_hash = db.write_program_state(state); let mut program_states = ethexe_common::ProgramStates::default(); diff --git a/ethexe/malachite/service/src/tx_validity.rs b/ethexe/malachite/service/src/tx_validity.rs index 9c0cc7a7457..d95aee4f21a 100644 --- a/ethexe/malachite/service/src/tx_validity.rs +++ b/ethexe/malachite/service/src/tx_validity.rs @@ -424,6 +424,7 @@ mod tests { mailbox_hash: MaybeHashOf::empty(), balance: 0, executable_balance, + outgoing_actions_counter: 0, } } diff --git a/ethexe/node-loader/src/batch.rs b/ethexe/node-loader/src/batch.rs index 63fa29a573d..f9b6789a4f4 100644 --- a/ethexe/node-loader/src/batch.rs +++ b/ethexe/node-loader/src/batch.rs @@ -24,7 +24,7 @@ use anyhow::Result; use ethexe_common::{Address as EthexeAddress, events::MirrorEvent, injected::Promise}; use ethexe_ethereum::{ Ethereum, TryGetReceipt, - abi::{IMirror, IRouter::commitBatchCall}, + abi::{IMirror, IRouter::commitBatchCall, utils::bytes32_to_h256}, mirror::events::try_extract_event, }; use futures::{FutureExt, StreamExt, stream::FuturesUnordered}; @@ -164,6 +164,32 @@ struct TransitionedMessage { replied_to: Option, } +fn apply_requested_value_claim_update( + context_update: &mut ContextUpdate, + actor_id: ActorId, + message_id: MessageId, +) { + context_update.upsert_message_owner(message_id, actor_id); + context_update.remove_mailbox_message(actor_id, message_id); + context_update.add_pending_value_claim(actor_id, message_id); + context_update + .stats_mut(actor_id) + .increment_claims_requested(); +} + +fn apply_processed_value_claim_update( + context_update: &mut ContextUpdate, + actor_id: ActorId, + message_id: MessageId, +) { + context_update.upsert_message_owner(message_id, actor_id); + context_update.remove_mailbox_message(actor_id, message_id); + context_update.remove_pending_value_claim(actor_id, message_id); + context_update + .stats_mut(actor_id) + .increment_claims_succeeded(); +} + fn apply_mirror_event_update(context_update: &mut ContextUpdate, event: &Event) { let actor_id = event.actor_id; match &event.event { @@ -210,31 +236,15 @@ fn apply_mirror_event_update(context_update: &mut ContextUpdate, event: &Event) context_update.stats_mut(actor_id).increment_state_changes(); } MirrorEvent::ValueClaimed(ev) => { - context_update.upsert_message_owner(ev.claimed_id, actor_id); - context_update.remove_mailbox_message(actor_id, ev.claimed_id); - context_update.remove_pending_value_claim(actor_id, ev.claimed_id); - context_update - .stats_mut(actor_id) - .increment_claims_succeeded(); + apply_processed_value_claim_update(context_update, actor_id, ev.claimed_id); } MirrorEvent::ValueClaimingRequested(ev) => { - context_update.upsert_message_owner(ev.claimed_id, actor_id); - context_update.add_pending_value_claim(actor_id, ev.claimed_id); - context_update - .stats_mut(actor_id) - .increment_claims_requested(); + apply_requested_value_claim_update(context_update, actor_id, ev.claimed_id); } MirrorEvent::TransferLockedValueToInheritorFailed(_) | MirrorEvent::ReplyTransferFailed(_) => { context_update.stats_mut(actor_id).increment_failures(); } - MirrorEvent::ValueClaimFailed(ev) => { - context_update.upsert_message_owner(ev.claimed_id, actor_id); - context_update.remove_pending_value_claim(actor_id, ev.claimed_id); - let stats = context_update.stats_mut(actor_id); - stats.increment_claims_failed(); - stats.increment_failures(); - } } } @@ -680,6 +690,8 @@ async fn run_batch_impl( let wait_for_event_blocks = blocks_window(tx_count, 2, 6); let mut report = process_events( api, + rpc_pool, + endpoint_idx, messages, rx, block_number, @@ -796,6 +808,8 @@ async fn run_batch_impl( send_message_wait_window(dispatched_txs, use_send_message_multicall); process_events( api, + rpc_pool, + endpoint_idx, messages, rx, block_number, @@ -807,7 +821,7 @@ async fn run_batch_impl( } PreparedBatch::ClaimValue(args) => { - let removed_from_mailbox = args.clone().into_iter().map(|ClaimValueArgs(mid)| mid); + let requested_claims = args.clone().into_iter().map(|ClaimValueArgs(mid)| mid); for (call_id, arg) in args.iter().enumerate() { let mid = arg.0; @@ -822,13 +836,9 @@ async fn run_batch_impl( } let mut context_update = ContextUpdate::default(); - for mid in removed_from_mailbox { + for mid in requested_claims { if let Some(actor_id) = mid_map.read().await.get(&mid).copied() { - context_update.remove_mailbox_message(actor_id, mid); - context_update.remove_pending_value_claim(actor_id, mid); - context_update - .stats_mut(actor_id) - .increment_claims_succeeded(); + apply_requested_value_claim_update(&mut context_update, actor_id, mid); } } @@ -863,6 +873,8 @@ async fn run_batch_impl( let event_mid_map = mid_map.clone(); let mut report = process_events( api, + rpc_pool, + endpoint_idx, messages, rx, block_number, @@ -913,6 +925,8 @@ async fn run_batch_impl( let wait_for_event_blocks = blocks_window(tx_count, 1, 6); let mut report = process_events( api, + rpc_pool, + endpoint_idx, messages, rx, block_number, @@ -1311,12 +1325,15 @@ fn batch_watchdog_timeout(batch: &PreparedBatch, use_send_message_multicall: boo #[allow(clippy::too_many_arguments)] async fn parse_router_transitions( api: &Ethereum, + rpc_pool: &mut EthexeRpcPool, + endpoint_idx: usize, current_bn: FixedBytes<32>, to: Address, sent_message_ids: &BTreeSet, context_update: &mut ContextUpdate, mid_map: &MidMap, transition_outcomes: &mut BTreeMap>, + processed_value_claims: &mut BTreeSet<(ActorId, MessageId)>, ) -> Result<()> { let full_block = api .provider() @@ -1345,11 +1362,27 @@ async fn parse_router_transitions( tracing::debug!(program = %actor_id, "Program exited"); } - let value_claim_ids: Vec<_> = tr - .valueClaims - .iter() - .map(|vc| MessageId::new(vc.messageId.0)) - .collect(); + let state_hash = bytes32_to_h256(tr.newStateHash); + let value_claim_ids = match rpc_pool + .process_outgoing_value_claims( + endpoint_idx, + api, + actor_id, + state_hash, + ) + .await + { + Ok(value_claim_ids) => value_claim_ids, + Err(err) => { + tracing::warn!( + program = %actor_id, + %state_hash, + error = %err, + "Failed to process outgoing value claims" + ); + Vec::new() + } + }; let transitioned_messages: Vec<_> = tr .messages @@ -1388,10 +1421,19 @@ async fn parse_router_transitions( context_update, actor_id, tr.exited, - value_claim_ids, + value_claim_ids.iter().copied(), transitioned_messages.iter().cloned(), ); + for message_id in value_claim_ids { + apply_processed_value_claim_update( + context_update, + actor_id, + message_id, + ); + processed_value_claims.insert((actor_id, message_id)); + } + for msg in tr.messages.iter() { let is_reply = msg.replyDetails.to.0 != [0u8; 32]; if is_reply { @@ -1456,6 +1498,7 @@ async fn parse_mirror_logs( mid_map: &MidMap, events: &mut Vec, context_update: &mut ContextUpdate, + processed_value_claims: &BTreeSet<(ActorId, MessageId)>, ) -> Result<()> { let logs = api .provider() @@ -1495,8 +1538,25 @@ async fn parse_mirror_logs( } } - apply_mirror_event_update(context_update, &event); - events.push(event); + let already_applied_value_claim = matches!( + &event.event, + MirrorEvent::ValueClaimed(ev) + if processed_value_claims.contains(&(actor_id, ev.claimed_id)) + ); + + if already_applied_value_claim { + tracing::trace!( + %actor_id, + claimed_id = %match &event.event { + MirrorEvent::ValueClaimed(ev) => ev.claimed_id, + _ => unreachable!(), + }, + "Skipping already applied value-claim event" + ); + } else { + apply_mirror_event_update(context_update, &event); + events.push(event); + } } } @@ -1526,8 +1586,11 @@ async fn recv_next_header(rx: &mut Receiver) -> Result { /// /// The resulting [`BatchReport`] captures new codes, programs, mailbox mutations, /// exits, and reply outcomes for the batch that was just submitted. +#[allow(clippy::too_many_arguments)] async fn process_events( api: Ethereum, + rpc_pool: &mut EthexeRpcPool, + endpoint_idx: usize, mut messages: BTreeMap, mut rx: Receiver
, block_number: u64, @@ -1572,22 +1635,34 @@ async fn process_events( let to: Address = api.provider().default_signer_address(); let sent_message_ids: BTreeSet = messages.keys().copied().collect(); let mut transition_outcomes: BTreeMap> = BTreeMap::new(); + let mut processed_value_claims: BTreeSet<(ActorId, MessageId)> = BTreeSet::new(); let mut v = Vec::new(); let mut current_bn = block.hash(); for _ in 0..wait_for_event_blocks { parse_router_transitions( &api, + rpc_pool, + endpoint_idx, current_bn, to, &sent_message_ids, &mut context_update, &mid_map, &mut transition_outcomes, + &mut processed_value_claims, ) .await?; - parse_mirror_logs(&api, current_bn, &mid_map, &mut v, &mut context_update).await?; + parse_mirror_logs( + &api, + current_bn, + &mid_map, + &mut v, + &mut context_update, + &processed_value_claims, + ) + .await?; block = recv_next_header(&mut rx).await?; current_bn = block.hash(); @@ -1663,6 +1738,7 @@ async fn process_events( mod tests { use super::{ Event, MIN_BATCH_TIMEOUT, TransitionedMessage, apply_mirror_event_update, + apply_processed_value_claim_update, apply_requested_value_claim_update, apply_router_transition_update, batch_watchdog_timeout, schedule_initial_workers, send_message_wait_window, }; @@ -1674,8 +1750,8 @@ mod tests { MirrorEvent, mirror::{ ExecutableBalanceTopUpRequestedEvent, OwnedBalanceTopUpRequestedEvent, - ReplyCallFailedEvent, ReplyEvent, StateChangedEvent, ValueClaimFailedEvent, - ValueClaimedEvent, ValueClaimingRequestedEvent, + ReplyCallFailedEvent, ReplyEvent, StateChangedEvent, ValueClaimedEvent, + ValueClaimingRequestedEvent, }, }; use gear_call_gen::SendMessageArgs; @@ -1748,23 +1824,12 @@ mod tests { }), }, ); - apply_mirror_event_update( - &mut update, - &Event { - actor_id, - event: MirrorEvent::ValueClaimFailed(ValueClaimFailedEvent { - claimed_id: mid, - value: 0, - }), - }, - ); let program = update.programs.get(&actor_id).expect("program update"); assert!(program.pending_value_claims_removed.contains(&mid)); assert_eq!(program.last_state_hash, Some(hash(3))); assert_eq!(program.stats_delta.claims_requested, 1); assert_eq!(program.stats_delta.claims_succeeded, 1); - assert_eq!(program.stats_delta.claims_failed, 1); assert_eq!(program.stats_delta.state_changes, 1); assert_eq!(program.stats_delta.executable_topups, 1); assert_eq!(program.stats_delta.owned_topups, 1); @@ -1841,6 +1906,37 @@ mod tests { assert_eq!(update.message_owners.get(&replied_to), Some(&actor_id)); } + #[test] + fn processed_outgoing_value_claim_removes_pending_and_mailbox() { + let actor_id = actor(10); + let claim_mid = message(11); + + let mut update = ContextUpdate::default(); + apply_processed_value_claim_update(&mut update, actor_id, claim_mid); + + let program = update.programs.get(&actor_id).expect("program update"); + assert!(program.mailbox_removed.contains(&claim_mid)); + assert!(program.pending_value_claims_removed.contains(&claim_mid)); + assert_eq!(program.stats_delta.claims_succeeded, 1); + assert_eq!(update.message_owners.get(&claim_mid), Some(&actor_id)); + } + + #[test] + fn requested_value_claim_removes_mailbox_and_tracks_pending() { + let actor_id = actor(12); + let claim_mid = message(13); + + let mut update = ContextUpdate::default(); + apply_requested_value_claim_update(&mut update, actor_id, claim_mid); + + let program = update.programs.get(&actor_id).expect("program update"); + assert!(program.mailbox_removed.contains(&claim_mid)); + assert!(program.pending_value_claims_added.contains(&claim_mid)); + assert_eq!(program.stats_delta.claims_requested, 1); + assert_eq!(program.stats_delta.claims_succeeded, 0); + assert_eq!(update.message_owners.get(&claim_mid), Some(&actor_id)); + } + #[test] fn direct_send_mode_waits_longer_for_events() { assert_eq!(send_message_wait_window(3, true), 9); diff --git a/ethexe/node-loader/src/batch/context.rs b/ethexe/node-loader/src/batch/context.rs index 91f4aa6cbf1..dcf01ce2629 100644 --- a/ethexe/node-loader/src/batch/context.rs +++ b/ethexe/node-loader/src/batch/context.rs @@ -11,7 +11,6 @@ pub struct ProgramStats { pub mailbox_additions: u64, pub claims_requested: u64, pub claims_succeeded: u64, - pub claims_failed: u64, pub state_changes: u64, pub executable_topups: u64, pub owned_topups: u64, @@ -39,10 +38,6 @@ impl ProgramStats { self.claims_succeeded = self.claims_succeeded.saturating_add(1); } - pub fn increment_claims_failed(&mut self) { - self.claims_failed = self.claims_failed.saturating_add(1); - } - pub fn increment_state_changes(&mut self) { self.state_changes = self.state_changes.saturating_add(1); } @@ -65,7 +60,6 @@ impl ProgramStats { self.mailbox_additions = self.mailbox_additions.saturating_add(rhs.mailbox_additions); self.claims_requested = self.claims_requested.saturating_add(rhs.claims_requested); self.claims_succeeded = self.claims_succeeded.saturating_add(rhs.claims_succeeded); - self.claims_failed = self.claims_failed.saturating_add(rhs.claims_failed); self.state_changes = self.state_changes.saturating_add(rhs.state_changes); self.executable_topups = self.executable_topups.saturating_add(rhs.executable_topups); self.owned_topups = self.owned_topups.saturating_add(rhs.owned_topups); diff --git a/ethexe/node-loader/src/batch/report.rs b/ethexe/node-loader/src/batch/report.rs index c40a8b8d394..825306f5e0c 100644 --- a/ethexe/node-loader/src/batch/report.rs +++ b/ethexe/node-loader/src/batch/report.rs @@ -128,8 +128,8 @@ impl LoadRunReport { ); let _ = writeln!( out, - "claims: {} requested, {} succeeded, {} failed", - stats.claims_requested, stats.claims_succeeded, stats.claims_failed + "claims: {} requested, {} succeeded", + stats.claims_requested, stats.claims_succeeded ); let _ = writeln!( out, @@ -296,7 +296,7 @@ mod tests { let summary = report.render_pretty(); assert!(summary.contains("status: completed")); assert!(summary.contains("programs: 0 total, 0 active, 0 exited")); - assert!(summary.contains("claims: 0 requested, 0 succeeded, 0 failed")); + assert!(summary.contains("claims: 0 requested, 0 succeeded")); } #[test] diff --git a/ethexe/node-loader/src/batch/rpc_pool.rs b/ethexe/node-loader/src/batch/rpc_pool.rs index 2d264059097..61fd4d84265 100644 --- a/ethexe/node-loader/src/batch/rpc_pool.rs +++ b/ethexe/node-loader/src/batch/rpc_pool.rs @@ -2,10 +2,10 @@ // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 use anyhow::{Result, anyhow}; -use ethexe_common::{gear::CodeState, injected::Promise}; +use ethexe_common::{OutgoingAction, gear::CodeState, injected::Promise}; use ethexe_ethereum::Ethereum; use ethexe_sdk::VaraEthApi; -use gprimitives::{ActorId, CodeId, MessageId}; +use gprimitives::{ActorId, CodeId, H256, MessageId}; use rand::RngCore; use tokio::time::{Duration, Instant}; @@ -372,6 +372,131 @@ impl EthexeRpcPool { Err(anyhow!("send_message_injected_and_watch exhausted retries")) } + + /// Processes value-claim outgoing actions for a committed program state. + pub(crate) async fn process_outgoing_value_claims( + &mut self, + preferred_endpoint_idx: usize, + api: &Ethereum, + actor_id: ActorId, + state_hash: H256, + ) -> Result> { + let mut last_err: Option = None; + + for attempt in 1..=RPC_MAX_ATTEMPTS { + for endpoint_idx in self.endpoint_indices_from(preferred_endpoint_idx) { + let client = match self.get_or_connect_client(endpoint_idx, api).await { + Ok(client) => client, + Err(err) => { + tracing::warn!( + endpoint_idx, + attempt, + max_attempts = RPC_MAX_ATTEMPTS, + error = %err, + "failed to acquire ethexe RPC client; will try another endpoint" + ); + last_err = Some(err); + continue; + } + }; + + let mirror = client.mirror(actor_id); + let result = async { + let outgoing_actions = mirror.outgoing_actions(state_hash).await?.into_inner(); + let action_count = outgoing_actions.len(); + let mut processed = Vec::new(); + let mut failures = 0usize; + + for outgoing_action in outgoing_actions { + let OutgoingAction::ValueClaim(value_claim) = outgoing_action; + let proof = match mirror + .outgoing_action_merkle_proof(state_hash, value_claim.message_id) + .await + { + Ok(proof) => proof, + Err(err) => { + failures = failures.saturating_add(1); + tracing::warn!( + %actor_id, + %state_hash, + message_id = %value_claim.message_id, + error = %err, + "failed to get outgoing value-claim proof" + ); + continue; + } + }; + + if let Err(err) = mirror + .process_outgoing_action_with_receipt( + state_hash, + proof.total_leaves, + proof.leaf_index, + proof.outgoing_action, + proof.proof, + ) + .await + { + failures = failures.saturating_add(1); + tracing::warn!( + %actor_id, + %state_hash, + message_id = %value_claim.message_id, + error = %err, + "failed to process outgoing value claim" + ); + continue; + } + + processed.push(value_claim.message_id); + } + + if processed.is_empty() && failures != 0 { + return Err(anyhow!( + "failed to process all {failures}/{action_count} outgoing value claims" + )); + } + + Ok(processed) + } + .await; + + match result { + Ok(processed) => return Ok(processed), + Err(err) => { + tracing::warn!( + endpoint_idx, + attempt, + max_attempts = RPC_MAX_ATTEMPTS, + %actor_id, + %state_hash, + error = %err, + "process_outgoing_value_claims failed; scheduling delayed reconnect" + ); + self.schedule_reconnect( + endpoint_idx, + "process_outgoing_value_claims failure", + ); + last_err = Some(err); + } + } + } + + if attempt < RPC_MAX_ATTEMPTS { + tracing::warn!( + attempt, + max_attempts = RPC_MAX_ATTEMPTS, + "process_outgoing_value_claims retrying with available endpoints" + ); + } + } + + if let Some(err) = last_err { + return Err(err); + } + + Err(anyhow!("process_outgoing_value_claims exhausted retries")) + } } #[cfg(test)] diff --git a/ethexe/processor/src/handling/events.rs b/ethexe/processor/src/handling/events.rs index 508349ec9c9..653c9b23474 100644 --- a/ethexe/processor/src/handling/events.rs +++ b/ethexe/processor/src/handling/events.rs @@ -157,6 +157,11 @@ impl ProcessingHandler { return Ok(()); }; + state.outgoing_actions_counter = state + .outgoing_actions_counter + .checked_add(1) + .expect("Overflow in state.outgoing_actions_counter += 1"); + transitions.claim_value( actor_id, ValueClaim { @@ -207,6 +212,11 @@ impl ProcessingHandler { return Ok(()); }; + state.outgoing_actions_counter = state + .outgoing_actions_counter + .checked_add(1) + .expect("Overflow in state.outgoing_actions_counter += 1"); + transitions.claim_value( actor_id, ValueClaim { diff --git a/ethexe/processor/src/handling/run/mod.rs b/ethexe/processor/src/handling/run/mod.rs index 3a73390e53a..2e169abbd28 100644 --- a/ethexe/processor/src/handling/run/mod.rs +++ b/ethexe/processor/src/handling/run/mod.rs @@ -614,6 +614,7 @@ mod tests { mailbox_hash: MaybeHashOf::empty(), balance: 1_000_000_000_000, executable_balance: 100_000_000_000_000, + outgoing_actions_counter: 0, }; pid_state.canonical_queue.modify_queue(&db, |queue| { diff --git a/ethexe/rpc/Cargo.toml b/ethexe/rpc/Cargo.toml index 1d645724df2..83c5c4f578e 100644 --- a/ethexe/rpc/Cargo.toml +++ b/ethexe/rpc/Cargo.toml @@ -25,6 +25,7 @@ parity-scale-codec.workspace = true ethexe-common = { workspace = true, features = ["std"] } ethexe-runtime-common = { workspace = true, features = ["std"] } sp-core = { workspace = true, features = ["serde"] } +sp-runtime.workspace = true gear-core = { workspace = true, features = ["std"] } serde = { workspace = true, features = ["std"] } tracing.workspace = true @@ -34,7 +35,8 @@ metrics-derive.workspace = true gear-workspace-hack.workspace = true thiserror.workspace = true scopeguard.workspace = true -moka = {workspace = true, features = ["sync"]} +moka = { workspace = true, features = ["sync"] } +binary-merkle-tree.workspace = true [dev-dependencies] jsonrpsee = { workspace = true, features = ["client"] } diff --git a/ethexe/rpc/src/apis/mod.rs b/ethexe/rpc/src/apis/mod.rs index 1aa71c84bce..b063e1e5b57 100644 --- a/ethexe/rpc/src/apis/mod.rs +++ b/ethexe/rpc/src/apis/mod.rs @@ -13,7 +13,7 @@ pub use crate::apis::{ code::CodeClient, dev::DevClient, injected::InjectedClient, - program::{CalculateReplyForHandleResult, FullProgramState, ProgramClient}, + program::{CalculateReplyForHandleResult, FullProgramState, ProgramClient, Proof}, }; #[cfg(feature = "server")] pub use block::{BlockApi, BlockServer}; diff --git a/ethexe/rpc/src/apis/program.rs b/ethexe/rpc/src/apis/program.rs index ddf2ce057c3..387da79892b 100644 --- a/ethexe/rpc/src/apis/program.rs +++ b/ethexe/rpc/src/apis/program.rs @@ -3,30 +3,31 @@ #[cfg(feature = "server")] use crate::{errors, utils}; -use ethexe_common::gear::Message; #[cfg(feature = "server")] use ethexe_common::{ - HashOf, - db::{CodesStorageRO, MbStorageRO}, + HashOf, ToDigest, + db::{CodesStorageRO, MbStorageRO, OutgoingActionStorageRO}, }; +use ethexe_common::{OutgoingAction, OutgoingActions, gear::Message}; #[cfg(feature = "server")] use ethexe_db::Database; #[cfg(feature = "server")] use ethexe_processor::{ExecutableDataForReply, OverlaidProcessor}; use ethexe_runtime_common::state::{ - DispatchStash, Mailbox, MemoryPages, MessageQueue, Program, ProgramState, Waitlist, + DispatchStash, Mailbox, MemoryPages, MessageQueue, Program, ProgramState, UserMailbox, Waitlist, }; #[cfg(feature = "server")] use ethexe_runtime_common::state::{QueryableStorage, Storage}; use gear_core::rpc::ReplyInfo; -use gprimitives::{H160, H256}; +use gprimitives::{H160, H256, MessageId, U256}; #[cfg(feature = "server")] use jsonrpsee::core::async_trait; use jsonrpsee::proc_macros::rpc; -#[cfg(feature = "server")] -use parity_scale_codec::Encode; +use parity_scale_codec::{Decode, Encode}; use serde::{Deserialize, Serialize}; use sp_core::Bytes; +#[cfg(feature = "server")] +use sp_runtime::traits::Keccak256; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct FullProgramState { @@ -38,6 +39,15 @@ pub struct FullProgramState { pub mailbox: Option, pub balance: u128, pub executable_balance: u128, + pub outgoing_actions_counter: u64, +} + +#[derive(Clone, Debug, Encode, Decode, PartialEq, Eq, serde::Deserialize, serde::Serialize)] +pub struct Proof { + pub total_leaves: U256, + pub leaf_index: U256, + pub outgoing_action: OutgoingAction, + pub proof: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -81,6 +91,9 @@ pub trait Program { #[method(name = "program_readMailbox")] async fn read_mailbox(&self, hash: H256) -> jsonrpsee::core::RpcResult; + #[method(name = "program_readUserMailbox")] + async fn read_user_mailbox(&self, hash: H256) -> jsonrpsee::core::RpcResult; + #[method(name = "program_readFullState")] async fn read_full_state(&self, hash: H256) -> jsonrpsee::core::RpcResult; @@ -89,6 +102,19 @@ pub trait Program { #[method(name = "program_readPageData")] async fn read_page_data(&self, hash: H256) -> jsonrpsee::core::RpcResult; + + #[method(name = "program_readOutgoingActions")] + async fn read_outgoing_actions( + &self, + hash: H256, + ) -> jsonrpsee::core::RpcResult; + + #[method(name = "program_outgoingActionMerkleProof")] + async fn read_outgoing_action_merkle_proof( + &self, + state_hash: H256, + message_id: MessageId, + ) -> jsonrpsee::core::RpcResult; } #[cfg(feature = "server")] @@ -212,6 +238,12 @@ impl ProgramServer for ProgramApi { .ok_or_else(|| errors::db("Failed to read mailbox by hash")) } + async fn read_user_mailbox(&self, hash: H256) -> jsonrpsee::core::RpcResult { + self.db + .user_mailbox(unsafe { HashOf::new(hash) }) + .ok_or_else(|| errors::db("Failed to read user mailbox by hash")) + } + async fn read_full_state(&self, hash: H256) -> jsonrpsee::core::RpcResult { let Some(ProgramState { program, @@ -222,6 +254,7 @@ impl ProgramServer for ProgramApi { mailbox_hash, balance, executable_balance, + outgoing_actions_counter, }) = self.db.program_state(hash) else { return Err(errors::db("Failed to read state by hash")); @@ -242,6 +275,7 @@ impl ProgramServer for ProgramApi { mailbox, balance, executable_balance, + outgoing_actions_counter, }) } @@ -257,4 +291,52 @@ impl ProgramServer for ProgramApi { .map(|buf| buf.encode().into()) .ok_or_else(|| errors::db("Failed to read page data by hash")) } + + async fn read_outgoing_actions( + &self, + hash: H256, + ) -> jsonrpsee::core::RpcResult { + self.db + .outgoing_actions(hash) + .ok_or_else(|| errors::db("Failed to read outgoing actions by hash")) + } + + async fn read_outgoing_action_merkle_proof( + &self, + state_hash: H256, + message_id: MessageId, + ) -> jsonrpsee::core::RpcResult { + let outgoing_actions = self + .db + .outgoing_actions(state_hash) + .ok_or_else(|| errors::db("Failed to read outgoing actions by hash"))? + .into_inner(); + + let leaf_index = outgoing_actions + .iter() + .position(|action| action.message_id() == message_id) + .ok_or_else(|| errors::db("Failed to find outgoing action with given message id"))?; + + let outgoing_action = outgoing_actions + .get(leaf_index) + .ok_or_else(|| errors::db("Failed to get outgoing action by index"))? + .clone(); + + let outgoing_actions_hashes: Vec<_> = outgoing_actions + .iter() + .map(|action| H256(action.to_digest().0)) + .collect(); + + let merkle_proof = binary_merkle_tree::merkle_proof_raw::( + outgoing_actions_hashes, + leaf_index, + ); + + Ok(Proof { + total_leaves: merkle_proof.number_of_leaves.into(), + leaf_index: merkle_proof.leaf_index.into(), + outgoing_action, + proof: merkle_proof.proof, + }) + } } diff --git a/ethexe/rpc/src/lib.rs b/ethexe/rpc/src/lib.rs index ae59299f7f1..0fc625445bb 100644 --- a/ethexe/rpc/src/lib.rs +++ b/ethexe/rpc/src/lib.rs @@ -36,7 +36,7 @@ #[cfg(feature = "client")] pub use crate::apis::{ BlockClient, CalculateReplyForHandleResult, CodeClient, DevClient, FullProgramState, - InjectedClient, ProgramClient, + InjectedClient, ProgramClient, Proof, }; #[cfg(feature = "server")] diff --git a/ethexe/runtime/common/src/proptest.rs b/ethexe/runtime/common/src/proptest.rs index 1833a104ea8..bd08a728d56 100644 --- a/ethexe/runtime/common/src/proptest.rs +++ b/ethexe/runtime/common/src/proptest.rs @@ -773,6 +773,7 @@ impl Arbitrary for ProgramState { maybe_hash_of_strategy::(), any::(), any::(), + any::(), ) .prop_map( |( @@ -784,6 +785,7 @@ impl Arbitrary for ProgramState { mailbox_hash, balance, executable_balance, + outgoing_actions_counter, )| Self { program, canonical_queue, @@ -793,6 +795,7 @@ impl Arbitrary for ProgramState { mailbox_hash, balance, executable_balance, + outgoing_actions_counter, }, ) .boxed() diff --git a/ethexe/runtime/common/src/schedule.rs b/ethexe/runtime/common/src/schedule.rs index d05941be16d..246dbf62cdc 100644 --- a/ethexe/runtime/common/src/schedule.rs +++ b/ethexe/runtime/common/src/schedule.rs @@ -41,6 +41,11 @@ impl TaskHandler for Handler<'_, S> { .expect("failed to find message in mailbox") }); + state.outgoing_actions_counter = state + .outgoing_actions_counter + .checked_add(1) + .expect("Overflow in state.outgoing_actions_counter += 1"); + transitions.modify_transition(program_id, |transition| { transition.claims.push(ValueClaim { message_id, diff --git a/ethexe/runtime/common/src/state.rs b/ethexe/runtime/common/src/state.rs index bd04b07f638..4812dda1a05 100644 --- a/ethexe/runtime/common/src/state.rs +++ b/ethexe/runtime/common/src/state.rs @@ -356,6 +356,8 @@ pub struct ProgramState { pub balance: Value, /// Executable balance. pub executable_balance: Value, + /// Counter of outgoing actions, used for generating unique state hash. + pub outgoing_actions_counter: u64, } impl ProgramState { @@ -380,6 +382,7 @@ impl ProgramState { mailbox_hash: MaybeHashOf::empty(), balance: 0, executable_balance: 0, + outgoing_actions_counter: 0, } } @@ -807,6 +810,10 @@ impl UserMailbox { MaybeHashOf::from_inner((!self.0.is_empty()).then(|| storage.write_user_mailbox(self))) } + pub fn into_inner(self) -> BTreeMap> { + self.0 + } + #[cfg(any(test, feature = "mock"))] pub fn from_inner(inner: BTreeMap>) -> Self { Self(inner) @@ -841,6 +848,14 @@ pub struct Mailbox { } impl Mailbox { + pub fn into_inner(self) -> BTreeMap> { + self.inner + } + + pub fn changed(&self) -> bool { + self.changed + } + pub fn add_and_store_user_mailbox( &mut self, storage: &S, diff --git a/ethexe/scripts/update-clones-sol.rs b/ethexe/scripts/update-clones-sol.rs index c580701454c..257cedbc783 100755 --- a/ethexe/scripts/update-clones-sol.rs +++ b/ethexe/scripts/update-clones-sol.rs @@ -47,8 +47,9 @@ struct SolidityBuildArtifact { } const CLONES_CONTRACT_START: &[u8] = br#" +// Copyright (C) Gear Technologies Inc. // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 -pragma solidity ^0.8.33; +pragma solidity ^0.8.35; import {Memory} from "frost-secp256k1-evm/utils/Memory.sol"; diff --git a/ethexe/sdk/src/mirror.rs b/ethexe/sdk/src/mirror.rs index dcafcc56f26..64b49479cdc 100644 --- a/ethexe/sdk/src/mirror.rs +++ b/ethexe/sdk/src/mirror.rs @@ -5,7 +5,9 @@ use crate::VaraEthApi; use alloy::rpc::types::TransactionReceipt; use anyhow::{Context, Result, anyhow, bail, ensure}; use ethexe_common::{ - Address, SimpleBlockData, + Address, HashOf, OutgoingAction, OutgoingActions, SimpleBlockData, + events::mirror::StateChangedEvent, + gear::ValueClaim, gear_core::rpc::ReplyInfo, injected::{ AddressedInjectedTransaction, InjectedTransaction, InjectedTransactionAcceptance, Promise, @@ -15,13 +17,15 @@ use ethexe_common::{ use ethexe_ethereum::{ IntoBlockId, mirror::{ - ClaimInfo, Mirror as EthereumMirror, MirrorEvents as EthereumMirrorEvents, + Mirror as EthereumMirror, MirrorEvents as EthereumMirrorEvents, MirrorQuery as EthereumMirrorQuery, }, }; -use ethexe_rpc::{CalculateReplyForHandleResult, FullProgramState, InjectedClient, ProgramClient}; -use ethexe_runtime_common::state::ProgramState; -use futures::TryFutureExt; +use ethexe_rpc::{ + CalculateReplyForHandleResult, FullProgramState, InjectedClient, ProgramClient, Proof, +}; +use ethexe_runtime_common::state::{Mailbox, ProgramState, UserMailbox}; +use futures::{StreamExt, TryFutureExt}; use gprimitives::{ActorId, CodeId, H256, MessageId, U256}; use gsigner::secp256k1::Secp256k1SignerExt; @@ -79,6 +83,45 @@ impl<'a> Mirror<'a> { .await } + pub async fn mailbox(&self, mailbox_hash: HashOf) -> Result { + self.api + .vara_eth_client + .read_mailbox(mailbox_hash.inner()) + .map_err(Into::into) + .await + } + + pub async fn user_mailbox( + &self, + user_mailbox_hash: HashOf, + ) -> Result { + self.api + .vara_eth_client + .read_user_mailbox(user_mailbox_hash.inner()) + .map_err(Into::into) + .await + } + + pub async fn outgoing_actions(&self, state_hash: H256) -> Result { + self.api + .vara_eth_client + .read_outgoing_actions(state_hash) + .map_err(Into::into) + .await + } + + pub async fn outgoing_action_merkle_proof( + &self, + state_hash: H256, + message_id: MessageId, + ) -> Result { + self.api + .vara_eth_client + .read_outgoing_action_merkle_proof(state_hash, message_id) + .map_err(Into::into) + .await + } + pub async fn state_hash(&self) -> Result { self.mirror_query_client.state_hash().await } @@ -303,8 +346,45 @@ impl<'a> Mirror<'a> { .await } - pub async fn wait_for_value_claim(&self, message_id: MessageId) -> Result { - self.mirror_client.wait_for_value_claim(message_id).await + pub async fn wait_for_value_claim(&self, message_id: MessageId) -> Result { + self.wait_for_value_claim_with_receipt(message_id) + .await + .map(|(_, claim_info)| claim_info) + } + + pub async fn wait_for_value_claim_with_receipt( + &self, + message_id: MessageId, + ) -> Result<(TransactionReceipt, ValueClaim)> { + let mut stream = self.events().state_changed().subscribe().await?; + + while let Some(result) = stream.next().await { + if let Ok((StateChangedEvent { state_hash }, _)) = result + && let Ok(Proof { + total_leaves, + leaf_index, + outgoing_action, + proof, + }) = self + .outgoing_action_merkle_proof(state_hash, message_id) + .await + { + // TODO: in future it will be `if let` + let OutgoingAction::ValueClaim(value_claim) = outgoing_action.clone(); + let receipt = self + .process_outgoing_action_with_receipt( + state_hash, + total_leaves, + leaf_index, + outgoing_action, + proof, + ) + .await?; + return Ok((receipt, value_claim)); + } + } + + Err(anyhow!("Failed to wait for value claimed")) } pub async fn executable_balance_top_up(&self, value: u128) -> Result { @@ -349,6 +429,38 @@ impl<'a> Mirror<'a> { .await } + pub async fn process_outgoing_action( + &self, + state_hash: H256, + total_leaves: U256, + leaf_index: U256, + outgoing_action: OutgoingAction, + proof: Vec, + ) -> Result { + self.mirror_client + .process_outgoing_action(state_hash, total_leaves, leaf_index, outgoing_action, proof) + .await + } + + pub async fn process_outgoing_action_with_receipt( + &self, + state_hash: H256, + total_leaves: U256, + leaf_index: U256, + outgoing_action: OutgoingAction, + proof: Vec, + ) -> Result { + self.mirror_client + .process_outgoing_action_with_receipt( + state_hash, + total_leaves, + leaf_index, + outgoing_action, + proof, + ) + .await + } + pub async fn owned_balance_top_up(&self, value: u128) -> Result { self.owned_balance_top_up_with_receipt(value) .await diff --git a/ethexe/sdk/src/router.rs b/ethexe/sdk/src/router.rs index 4130b70ca14..7f9bb2dce99 100644 --- a/ethexe/sdk/src/router.rs +++ b/ethexe/sdk/src/router.rs @@ -30,6 +30,10 @@ impl<'a> Router<'a> { self.router_query_client.events() } + pub async fn balance(&self) -> Result { + self.router_query_client.balance().await + } + // TODO: move StorageView into ethexe-common and export pub async fn storage_view(&self) -> Result { diff --git a/ethexe/service/Cargo.toml b/ethexe/service/Cargo.toml index 00eb0b3c584..7666efd4d19 100644 --- a/ethexe/service/Cargo.toml +++ b/ethexe/service/Cargo.toml @@ -68,10 +68,13 @@ ethexe-rpc = { workspace = true, features = ["client", "server"] } tracing.workspace = true tracing-subscriber.workspace = true ethexe-common = { workspace = true, features = ["mock"] } +ethexe-sdk.workspace = true jsonrpsee = { workspace = true, features = ["client"] } async-broadcast.workspace = true wat.workspace = true tempfile.workspace = true +binary-merkle-tree = { workspace = true, features = ["std"] } +sp-runtime = { workspace = true, features = ["std"] } demo-ping = { workspace = true, features = ["debug", "ethexe"] } demo-value-sender-ethexe = { workspace = true, features = ["debug", "ethexe"] } diff --git a/ethexe/service/src/lib.rs b/ethexe/service/src/lib.rs index ecc4dbca4e5..c08fd2a3ca8 100644 --- a/ethexe/service/src/lib.rs +++ b/ethexe/service/src/lib.rs @@ -184,9 +184,9 @@ impl Service { /// Number of reserved dev accounts (deployer, validator). const RESERVED_DEV_ACCOUNTS: u32 = 2; /// Expected Foundry toolchain commit sha. - const FOUNDRY_TOOLCHAIN_COMMIT_SHA: &str = "f83bad912a9dba7bf0371def1e70bb1896048356"; + const FOUNDRY_TOOLCHAIN_COMMIT_SHA: &str = "4072e48705af9d93e3c0f6e29e93b5e9a40caed8"; /// Expected Foundry toolchain version. - const FOUNDRY_TOOLCHAIN_VERSION: &str = "1.7.0"; + const FOUNDRY_TOOLCHAIN_VERSION: &str = "1.7.1"; fn check_foundry_toolchain_version(client_commit_sha: Option) -> Result<()> { if let Some(client_commit_sha) = client_commit_sha diff --git a/ethexe/service/src/tests/mod.rs b/ethexe/service/src/tests/mod.rs index 2f4b9be7e6c..167f7c6bc1b 100644 --- a/ethexe/service/src/tests/mod.rs +++ b/ethexe/service/src/tests/mod.rs @@ -6,21 +6,26 @@ pub(crate) mod utils; use crate::tests::utils::{ - EnvNetworkConfig, InfiniteStreamExt, NodeConfig, TestEnv, TestEnvConfig, TestingEvent, - TestingNetworkEvent, TestingRpcEvent, ValidatorsConfig, init_logger, stop_nodes, test_info, + EnvNetworkConfig, InfiniteStreamExt, NodeConfig, ObserverEventReceiver, TestEnv, TestEnvConfig, + TestingEvent, TestingNetworkEvent, TestingRpcEvent, ValidatorsConfig, init_logger, stop_nodes, + test_info, }; use alloy::{ primitives::U256, providers::{Provider as _, WalletProvider, ext::AnvilApi}, }; use ethexe_common::{ - db::{CodesStorageRO, GlobalsStorageRO, InjectedStorageRO, MbStorageRO, OnChainStorageRO}, + OutgoingAction, ToDigest, + db::{ + CodesStorageRO, GlobalsStorageRO, InjectedStorageRO, MbStorageRO, OnChainStorageRO, + OutgoingActionStorageRO, + }, ecdsa::ContractSignature, events::{ BlockEvent, MirrorEvent, - mirror::{MessageEvent, ReplyEvent}, + mirror::{MessageEvent, ReplyEvent, StateChangedEvent, ValueClaimedEvent}, }, - gear::BatchCommitment, + gear::{BatchCommitment, ValueClaim}, injected::{ AddressedInjectedTransaction, InjectedTransaction, InjectedTransactionAcceptance, Receipt, TransactionPurgedReason, @@ -36,7 +41,7 @@ use gear_core::{ message::{ReplyCode, SuccessReplyReason}, }; use gear_core_errors::{ErrorReplyReason, SimpleExecutionError, SimpleUnavailableActorError}; -use gprimitives::{ActorId, H160, H256, MessageId}; +use gprimitives::{ActorId, H160, H256, MessageId, U256 as GpU256}; use gsigner::secp256k1::{Secp256k1SignerExt, Signer}; use parity_scale_codec::{Decode, Encode}; use std::{collections::HashSet, sync::Arc, time::Duration}; @@ -44,6 +49,110 @@ use tokio::sync::Mutex; const ETHER: u128 = 1_000_000_000_000_000_000; +/// Walks StateChanged events for `actor_id` and returns the +/// `(state_hash, total_leaves, leaf_index, proof)` of the MB transition that +/// committed a value claim for `message_id`. The tests trigger exactly one +/// claim per MB, so the merkle proof is always empty. +async fn find_value_claim_proof( + receiver: ObserverEventReceiver, + db: ðexe_db::Database, + actor_id: ActorId, + message_id: MessageId, +) -> (H256, GpU256, GpU256, Vec) { + let db = db.clone(); + receiver + .filter_map_block_synced() + .find_map(|event| { + let BlockEvent::Mirror { + actor_id: ev_actor, + event: MirrorEvent::StateChanged(StateChangedEvent { state_hash }), + } = event + else { + return None; + }; + if ev_actor != actor_id { + return None; + } + let actions = db.outgoing_actions(state_hash)?.into_inner(); + let idx = actions.iter().position(|a| a.message_id() == message_id)?; + assert_eq!( + actions.len(), + 1, + "expected single-action MB, got {actions:?}" + ); + Some(( + state_hash, + GpU256::from(1u64), + GpU256::from(idx as u64), + Vec::::new(), + )) + }) + .await +} + +async fn find_value_claim_proofs( + receiver: ObserverEventReceiver, + db: ðexe_db::Database, + actor_id: ActorId, + message_ids: &[MessageId], +) -> Vec<(H256, GpU256, GpU256, OutgoingAction, Vec)> { + let db = db.clone(); + let message_ids = message_ids.to_vec(); + receiver + .filter_map_block_synced() + .find_map(|event| { + let BlockEvent::Mirror { + actor_id: ev_actor, + event: MirrorEvent::StateChanged(StateChangedEvent { state_hash }), + } = event + else { + return None; + }; + if ev_actor != actor_id { + return None; + } + + let actions = db.outgoing_actions(state_hash)?.into_inner(); + if !message_ids + .iter() + .all(|message_id| actions.iter().any(|a| a.message_id() == *message_id)) + { + return None; + } + + let action_hashes = actions + .iter() + .map(|action| H256(action.to_digest().0)) + .collect::>(); + Some( + message_ids + .iter() + .map(|message_id| { + let leaf_index = actions + .iter() + .position(|action| action.message_id() == *message_id) + .expect("checked above"); + let merkle_proof = binary_merkle_tree::merkle_proof_raw::< + sp_runtime::traits::Keccak256, + _, + >( + action_hashes.clone(), leaf_index + ); + + ( + state_hash, + merkle_proof.number_of_leaves.into(), + merkle_proof.leaf_index.into(), + actions[leaf_index].clone(), + merkle_proof.proof, + ) + }) + .collect(), + ) + }) + .await +} + #[derive(Clone)] struct RecordingCommitter { router: Router, @@ -669,27 +778,78 @@ async fn mailbox() { assert_eq!(mailbox.into_values(&node.db), expected_mailbox); + // Receiver MUST be created BEFORE the trigger so it captures every + // MBCommitted/StateChanged event emitted from this point on. + let receiver = env.new_observer_events(); + test_info!("📗 Claiming value for message {mid_expected_message_id}"); mirror.claim_value(mid_expected_message_id).await.unwrap(); - let mut claimed = false; + // Force-process the claim by sending a follow-up no-op message + // through the program. Once its reply lands, the claim has been + // executed in the executor and committed to the mirror. + let _ = env + .send_message(async_pid, b"") + .await + .unwrap() + .wait_for() + .await + .unwrap(); + + // `mirror.state_hash()` is the LATEST stateHash on chain — it may belong + // to a follow-up MB without claims, in which case `_merkleRoots[stateHash]` + // is bytes32(0) and `processOutgoingAction` reverts with + // `OutgoingActionMerkleRootNotFound`. Walk StateChanged events for this + // actor and pick the stateHash whose outgoing_actions in the local DB + // contain our message_id. + let db = node.db.clone(); + let (claim_state_hash, total_leaves, leaf_index, proof) = + find_value_claim_proof(receiver.clone(), &db, async_pid, mid_expected_message_id).await; + // The MB containing this transition is the one whose outcome lists + // `claim_state_hash` as a new state hash. Router.MBCommitted is emitted + // after the Mirror.StateChanged in the same eth block, so we scan a fresh + // receiver clone for any MBCommitted whose outcome matches. let mb_hash = receiver + .clone() + .filter_map_block_synced() + .find_map(|event| { + let BlockEvent::Router(ethexe_common::events::RouterEvent::MBCommitted( + ethexe_common::events::router::MBCommittedEvent(hash), + )) = event + else { + return None; + }; + let outcome = db.mb_outcome(hash)?; + outcome + .iter() + .any(|t| t.new_state_hash == claim_state_hash) + .then_some(hash) + }) + .await; + + let sender_address = env.ethereum.provider().default_signer_address(); + mirror + .process_outgoing_action( + claim_state_hash, + total_leaves, + leaf_index, + OutgoingAction::ValueClaim(ValueClaim { + message_id: mid_expected_message_id, + destination: sender_address.into(), + value: 0, + }), + proof, + ) + .await + .unwrap(); + + let claimed = receiver .filter_map_block_synced() .find_map(|event| match event { BlockEvent::Mirror { actor_id, - event: - MirrorEvent::ValueClaimed(ethexe_common::events::mirror::ValueClaimedEvent { - claimed_id, - .. - }), - } if actor_id == async_pid && claimed_id == mid_expected_message_id => { - claimed = true; - None - } - BlockEvent::Router(ethexe_common::events::RouterEvent::MBCommitted( - ethexe_common::events::router::MBCommittedEvent(ah), - )) if claimed => Some(ah), + event: MirrorEvent::ValueClaimed(ValueClaimedEvent { claimed_id, .. }), + } if actor_id == async_pid && claimed_id == mid_expected_message_id => Some(true), _ => None, }) .await; @@ -931,6 +1091,8 @@ async fn value_send_program_to_user_and_claimed() { let user_mailbox = mailbox.into_values(&node.db)[&sender_address.into()].clone(); let mailboxed_msg_id = user_mailbox.into_keys().next().unwrap(); + let receiver = env.new_observer_events(); + piggy_bank.claim_value(mailboxed_msg_id).await.unwrap(); // Force-process the claim by sending a follow-up no-op message @@ -944,6 +1106,188 @@ async fn value_send_program_to_user_and_claimed() { .await .unwrap(); + // See the `mailbox` test for the rationale — `mirror.state_hash()` is + // the LATEST stateHash and may have an empty merkleRoot. + let db = node.db.clone(); + let (claim_state_hash, total_leaves, leaf_index, proof) = + find_value_claim_proof(receiver, &db, piggy_bank_id, mailboxed_msg_id).await; + piggy_bank + .process_outgoing_action( + claim_state_hash, + total_leaves, + leaf_index, + OutgoingAction::ValueClaim(ValueClaim { + message_id: mailboxed_msg_id, + destination: sender_address.into(), + value: VALUE_SENT, + }), + proof, + ) + .await + .unwrap(); + + let measurement_error: U256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs + let default_anvil_balance: U256 = (10_000 * ETHER).try_into().unwrap(); + let balance = env + .ethereum + .provider() + .get_balance(sender_address) + .await + .unwrap(); + assert!(default_anvil_balance - balance <= measurement_error); + + stop_nodes([node]).await; +} + +#[tokio::test] +#[ntest::timeout(120_000)] +async fn value_send_program_to_user_and_claimed_in_one_eth_block() { + init_logger(); + + let mut env = TestEnv::default().await; + + let mut node = env + .new_node(NodeConfig::default().validator(env.validators[0])) + .await; + node.start_service().await; + + let res = env + .upload_code(demo_piggy_bank::WASM_BINARY) + .await + .unwrap() + .wait_for() + .await + .unwrap(); + + let code_id = res.code_id; + let res = env + .create_program(code_id, 500_000_000_000_000) + .await + .unwrap() + .wait_for() + .await + .unwrap(); + + let _ = env + .send_message(res.program_id, b"") + .await + .unwrap() + .wait_for() + .await + .unwrap(); + + let piggy_bank_id = res.program_id; + let piggy_bank = env.ethereum.mirror(piggy_bank_id.to_address_lossy().into()); + + const CLAIMS_AMOUNT: usize = 2; + const VALUE_PER_CLAIM: u128 = 1_000 * ETHER; + + let mut mailboxed_msg_ids = Vec::with_capacity(CLAIMS_AMOUNT); + for _ in 0..CLAIMS_AMOUNT { + piggy_bank + .owned_balance_top_up(VALUE_PER_CLAIM) + .await + .unwrap(); + + // Force the validator to fold the deposit into a finalised MB by + // sending a no-op message and waiting for the reply. + let res = env + .send_message(piggy_bank_id, b"") + .await + .unwrap() + .wait_for() + .await + .unwrap(); + assert_eq!(res.code, ReplyCode::Success(SuccessReplyReason::Auto)); + + let res = env + .send_message(piggy_bank_id, b"smash") + .await + .unwrap() + .wait_for() + .await + .unwrap(); + assert_eq!(res.code, ReplyCode::Success(SuccessReplyReason::Auto)); + assert_eq!(res.value, 0); + + mailboxed_msg_ids.push(MessageId::generate_outgoing(res.message_id, 0)); + } + + let state_hash = piggy_bank.query().state_hash().await.unwrap(); + let local_balance = node.db.program_state(state_hash).unwrap().balance; + assert_eq!(local_balance, 0); + + let router_address = env.ethereum.router().address(); + let router_balance = env + .ethereum + .provider() + .get_balance(router_address.into()) + .await + .map(ethexe_ethereum::abi::utils::uint256_to_u128_lossy) + .unwrap(); + assert_eq!(router_balance, CLAIMS_AMOUNT as u128 * VALUE_PER_CLAIM); + + let auto_mine = env.provider.anvil_get_auto_mine().await.unwrap(); + env.provider.anvil_set_auto_mine(false).await.unwrap(); + + let receiver = env.new_observer_events(); + let mut pending_claims = Vec::with_capacity(CLAIMS_AMOUNT); + for message_id in &mailboxed_msg_ids { + pending_claims.push(piggy_bank.claim_value_pending(*message_id).await.unwrap()); + } + + env.provider.evm_mine(None).await.unwrap(); + + let mut claim_receipts = Vec::with_capacity(CLAIMS_AMOUNT); + for pending_claim in pending_claims { + claim_receipts.push( + pending_claim + .try_get_receipt_check_reverted() + .await + .unwrap(), + ); + } + env.provider.anvil_set_auto_mine(auto_mine).await.unwrap(); + + let claim_block_number = claim_receipts[0] + .block_number + .expect("claim receipt must have block number"); + assert!( + claim_receipts + .iter() + .all(|receipt| receipt.block_number == Some(claim_block_number)), + "claimValue transactions must be mined in one Ethereum block" + ); + + let _ = env + .send_message(piggy_bank_id, b"") + .await + .unwrap() + .wait_for() + .await + .unwrap(); + + let db = node.db.clone(); + let proofs = find_value_claim_proofs(receiver, &db, piggy_bank_id, &mailboxed_msg_ids).await; + assert_eq!(proofs.len(), CLAIMS_AMOUNT); + + let sender_address = env.ethereum.provider().default_signer_address(); + for (message_id, (state_hash, total_leaves, leaf_index, outgoing_action, proof)) in + mailboxed_msg_ids.iter().zip(proofs) + { + let expected_action = OutgoingAction::ValueClaim(ValueClaim { + message_id: *message_id, + destination: sender_address.into(), + value: VALUE_PER_CLAIM, + }); + assert_eq!(outgoing_action, expected_action); + + piggy_bank + .process_outgoing_action(state_hash, total_leaves, leaf_index, outgoing_action, proof) + .await + .unwrap(); + } + let measurement_error: U256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs let default_anvil_balance: U256 = (10_000 * ETHER).try_into().unwrap(); let balance = env @@ -1070,6 +1414,8 @@ async fn value_send_program_to_user_and_replied() { let user_mailbox = mailbox.into_values(&node.db)[&sender_address.into()].clone(); let mailboxed_msg_id = user_mailbox.into_keys().next().unwrap(); + let receiver = env.new_observer_events(); + piggy_bank .send_reply(mailboxed_msg_id, "", 0) .await @@ -1084,6 +1430,25 @@ async fn value_send_program_to_user_and_replied() { .await .unwrap(); + // See the `mailbox` test for the rationale. + let db = node.db.clone(); + let (claim_state_hash, total_leaves, leaf_index, proof) = + find_value_claim_proof(receiver, &db, piggy_bank_id, mailboxed_msg_id).await; + piggy_bank + .process_outgoing_action( + claim_state_hash, + total_leaves, + leaf_index, + OutgoingAction::ValueClaim(ValueClaim { + message_id: mailboxed_msg_id, + destination: sender_address.into(), + value: VALUE_SENT, + }), + proof, + ) + .await + .unwrap(); + let measurement_error: U256 = (ETHER / 50).try_into().unwrap(); // 0.02 ETH for gas costs let default_anvil_balance: U256 = (10_000 * ETHER).try_into().unwrap(); let balance = env diff --git a/ethexe/service/src/tests/utils/env.rs b/ethexe/service/src/tests/utils/env.rs index 7ed110894cc..5886c91e7cf 100644 --- a/ethexe/service/src/tests/utils/env.rs +++ b/ethexe/service/src/tests/utils/env.rs @@ -48,6 +48,7 @@ use ethexe_observer::{ }; use ethexe_processor::{DEFAULT_CHUNK_SIZE, Processor}; use ethexe_rpc::{DEFAULT_BLOCK_GAS_LIMIT_MULTIPLIER, RpcConfig, RpcServer}; +use ethexe_sdk::VaraEthApi; use futures::StreamExt; use gear_core_errors::ReplyCode; use gprimitives::{ActorId, CodeId, H160, H256, MessageId}; @@ -1315,9 +1316,16 @@ impl Node { self.receiver = None; } + #[allow(dead_code)] + pub async fn vara_eth_api(&self, ethereum: Ethereum) -> Option { + let listen_addr = self.service_rpc_config.clone()?.listen_addr; + let url = format!("ws://{listen_addr}"); + VaraEthApi::new(&url, ethereum).await.ok() + } + pub fn rpc_http_client(&self) -> Option { let listen_addr = self.service_rpc_config.clone()?.listen_addr; - let url = format!("http://{}", listen_addr); + let url = format!("http://{listen_addr}"); Some(HttpClient::builder().build(&url).unwrap()) } diff --git a/utils/crates-io/src/handler.rs b/utils/crates-io/src/handler.rs index 47ee624182d..b4745029d15 100644 --- a/utils/crates-io/src/handler.rs +++ b/utils/crates-io/src/handler.rs @@ -51,9 +51,15 @@ pub fn patch_alias(index: &mut Vec<&str>) { pub fn patch_workspace(name: &str, table: &mut toml_edit::InlineTable) { match name { "core-processor" | "gear-core-processor" => core_processor::patch_workspace(name, table), - sub if ["sc-", "sp-", "frame-", "try-runtime-cli"] - .iter() - .any(|p| sub.starts_with(p)) => + sub if [ + "sc-", + "sp-", + "frame-", + "try-runtime-cli", + "binary-merkle-tree", + ] + .iter() + .any(|p| sub.starts_with(p)) => { substrate::patch_workspace(name, table) } @@ -216,6 +222,11 @@ mod substrate { table.insert("version", GP_RUNTIME_INTERFACE_VERSION.into()); table.insert("package", "gp-runtime-interface".into()); } + // Related to ethexe-common. + // We need to use newer version of binary-merkle-tree because we backport some features + "binary-merkle-tree" => { + table.insert("version", "16.1.1".into()); + } _ => return, } diff --git a/utils/gear-workspace-hack/Cargo.toml b/utils/gear-workspace-hack/Cargo.toml index 7eee68f341c..50d24edd252 100644 --- a/utils/gear-workspace-hack/Cargo.toml +++ b/utils/gear-workspace-hack/Cargo.toml @@ -17,198 +17,198 @@ publish = false # they have features like `runtime-benchmarks` and `try-runtime` # so we cannot, for example, run `cargo build -p gear-cli` without `--all-features` -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.frame-executive] +[dependencies.frame-executive] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.frame-support] +[dependencies.frame-support] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" features = ["experimental"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.frame-try-runtime] +[dependencies.frame-try-runtime] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-authority-discovery] +[dependencies.pallet-authority-discovery] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-authorship] +[dependencies.pallet-authorship] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-babe] +[dependencies.pallet-babe] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-bags-list] +[dependencies.pallet-bags-list] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-balances] +[dependencies.pallet-balances] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-bounties] +[dependencies.pallet-bounties] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-child-bounties] +[dependencies.pallet-child-bounties] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-conviction-voting] +[dependencies.pallet-conviction-voting] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-election-provider-multi-phase] +[dependencies.pallet-election-provider-multi-phase] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-grandpa] +[dependencies.pallet-grandpa] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-identity] +[dependencies.pallet-identity] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-im-online] +[dependencies.pallet-im-online] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-multisig] +[dependencies.pallet-multisig] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-nomination-pools] +[dependencies.pallet-nomination-pools] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-offences] +[dependencies.pallet-offences] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-preimage] +[dependencies.pallet-preimage] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-proxy] +[dependencies.pallet-proxy] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-ranked-collective] +[dependencies.pallet-ranked-collective] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-referenda] +[dependencies.pallet-referenda] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-scheduler] +[dependencies.pallet-scheduler] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-session] +[dependencies.pallet-session] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["historical", "std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-sudo] +[dependencies.pallet-sudo] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-timestamp] +[dependencies.pallet-timestamp] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-transaction-payment] +[dependencies.pallet-transaction-payment] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-treasury] +[dependencies.pallet-treasury] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-utility] +[dependencies.pallet-utility] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-vesting] +[dependencies.pallet-vesting] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.pallet-whitelist] +[dependencies.pallet-whitelist] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["std"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.sc-client-db] +[dependencies.sc-client-db] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" default-features = false features = ["rocksdb", "test-helpers"] -[target.'cfg(not(any(target_arch = "wasm32", loom)))'.dependencies.sc-service] +[dependencies.sc-service] git = "https://github.com/gear-tech/polkadot-sdk.git" branch = "gear-polkadot-stable2409-updated-wasmtime" features = ["test-helpers"] @@ -262,6 +262,7 @@ const-hex = { version = "1", features = ["core-error", "serde"] } cranelift-bitset = { version = "0.131", default-features = false, features = ["enable-serde"] } crc32fast = { version = "1" } crossbeam-channel = { version = "0.5" } +crossbeam-epoch = { version = "0.9" } crossbeam-utils = { version = "0.8" } crunchy = { version = "0.2", features = ["std"] } crypto-common = { version = "0.1", default-features = false, features = ["getrandom", "std"] } @@ -429,7 +430,7 @@ sp-crypto-hashing-c65f7effa3be6d31 = { package = "sp-crypto-hashing", version = sp-externalities = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } sp-genesis-builder = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } sp-inherents = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } -sp-io = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime", features = ["disable_oom", "disable_panic_handler"] } +sp-io = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime", features = ["disable_allocator", "disable_oom", "disable_panic_handler"] } sp-keyring = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } sp-keystore = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } sp-metadata-ir = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime", default-features = false, features = ["std"] } @@ -551,6 +552,7 @@ const-hex = { version = "1", features = ["core-error", "serde"] } cranelift-bitset = { version = "0.131", default-features = false, features = ["enable-serde"] } crc32fast = { version = "1" } crossbeam-channel = { version = "0.5" } +crossbeam-epoch = { version = "0.9" } crossbeam-utils = { version = "0.8" } crunchy = { version = "0.2", features = ["std"] } crypto-common = { version = "0.1", default-features = false, features = ["getrandom", "std"] } @@ -724,7 +726,7 @@ sp-debug-derive = { git = "https://github.com/gear-tech/polkadot-sdk.git", branc sp-externalities = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } sp-genesis-builder = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } sp-inherents = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } -sp-io = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime", features = ["disable_oom", "disable_panic_handler"] } +sp-io = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime", features = ["disable_allocator", "disable_oom", "disable_panic_handler"] } sp-keyring = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } sp-keystore = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime" } sp-metadata-ir = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-updated-wasmtime", default-features = false, features = ["std"] } @@ -796,7 +798,6 @@ x25519-dalek = { version = "2", features = ["static_secrets"] } zeroize = { version = "1", features = ["derive", "std"] } [target.'cfg(all(target_arch = "x86_64", target_vendor = "unknown", target_os = "linux", target_env = "gnu", not(any(target_arch = "wasm32", loom))))'.dependencies] -crossbeam-epoch = { version = "0.9" } errno = { version = "0.3" } hickory-proto = { version = "0.25", default-features = false, features = ["mdns", "tokio"] } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } @@ -821,7 +822,6 @@ unicode-normalization = { version = "0.1" } zerocopy = { version = "0.8", default-features = false, features = ["derive", "simd"] } [target.'cfg(all(target_arch = "x86_64", target_vendor = "unknown", target_os = "linux", target_env = "gnu", not(any(target_arch = "wasm32", loom))))'.build-dependencies] -crossbeam-epoch = { version = "0.9" } errno = { version = "0.3" } hickory-proto = { version = "0.25", default-features = false, features = ["mdns", "tokio"] } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } @@ -846,7 +846,6 @@ unicode-normalization = { version = "0.1" } zerocopy = { version = "0.8", default-features = false, features = ["derive", "simd"] } [target.'cfg(all(target_arch = "aarch64", target_vendor = "unknown", target_os = "linux", target_env = "gnu", not(any(target_arch = "wasm32", loom))))'.dependencies] -crossbeam-epoch = { version = "0.9" } errno = { version = "0.3" } hickory-proto = { version = "0.25", default-features = false, features = ["mdns", "tokio"] } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } @@ -871,7 +870,6 @@ unicode-normalization = { version = "0.1" } zerocopy = { version = "0.8", default-features = false, features = ["derive", "simd"] } [target.'cfg(all(target_arch = "aarch64", target_vendor = "unknown", target_os = "linux", target_env = "gnu", not(any(target_arch = "wasm32", loom))))'.build-dependencies] -crossbeam-epoch = { version = "0.9" } errno = { version = "0.3" } hickory-proto = { version = "0.25", default-features = false, features = ["mdns", "tokio"] } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } @@ -896,7 +894,6 @@ unicode-normalization = { version = "0.1" } zerocopy = { version = "0.8", default-features = false, features = ["derive", "simd"] } [target.'cfg(all(target_arch = "aarch64", target_vendor = "apple", target_os = "macos", not(any(target_arch = "wasm32", loom))))'.dependencies] -crossbeam-epoch = { version = "0.9" } errno = { version = "0.3" } hickory-proto = { version = "0.25", default-features = false, features = ["mdns", "tokio"] } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] } @@ -919,7 +916,6 @@ unicode-normalization = { version = "0.1" } zerocopy = { version = "0.8", default-features = false, features = ["derive", "simd"] } [target.'cfg(all(target_arch = "aarch64", target_vendor = "apple", target_os = "macos", not(any(target_arch = "wasm32", loom))))'.build-dependencies] -crossbeam-epoch = { version = "0.9" } errno = { version = "0.3" } hickory-proto = { version = "0.25", default-features = false, features = ["mdns", "tokio"] } hyper-rustls = { version = "0.27", default-features = false, features = ["aws-lc-rs", "http1", "http2", "logging", "ring", "tls12", "webpki-tokio"] }